4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rajawaliで簡単な3Dシーンを作ってみる

Last updated at Posted at 2017-08-09

Android向けOpenGL 3DライブラリRajawaliを使って、最小限のシーンをセットアップしてみました。
まず、app/build.gradleにRajawaliを追加します。

build.gradle
dependencies {
    compile 'org.rajawali3d:rajawali:1.1.970'
}

MainActivityを以下のように書き換えます。

MainActivity.java
import android.app.Activity;
import android.os.Bundle;

import org.rajawali3d.view.SurfaceView; // これ重要!! android.view.SurfaceView ではない!!

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SurfaceView surfaceView = new SurfaceView(this);
        surfaceView.setSurfaceRenderer(new MyRenderer(this)); // setRenderer() ではなく setSurfaceRenderer()
        setContentView(surfaceView);
    }
}

MyRendererクラスも作成します。

MyRenderer.java
import android.content.Context;
import android.graphics.Color;
import android.view.MotionEvent;

import org.rajawali3d.Object3D;
import org.rajawali3d.materials.Material;
import org.rajawali3d.primitives.Sphere;
import org.rajawali3d.renderer.Renderer;
import org.rajawali3d.scene.Scene;

class MyRenderer extends Renderer {

    MyRenderer(Context context) {
        super(context);
    }

    @Override
    protected void initScene() {

        Scene scene = getCurrentScene();

        // 球を作る
        Object3D obj = new Sphere(1, 16, 16); // 半径1の球。16,16は頂点の分割数で、数を大きくするほど球に近づく。
        obj.setPosition(0, 0, -5);            // 視点は0,0,0で0,0,-1の方向を向いている。0,0,-5は画面の奥の方になる
        scene.addChild(obj);

        // 球の見た目を定義する
        Material material = new Material();
        material.setColor(Color.CYAN);
        obj.setMaterial(material);
    }

    @Override
    public void onOffsetsChanged(float xOffset, float yOffset, float xOffsetStep, float yOffsetStep, int xPixelOffset, int yPixelOffset) {
    }

    @Override
    public void onTouchEvent(MotionEvent event) {
    }
}

実行結果

device-2017-08-09-134413.png

球が見えます!よくわかんないけど!

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?