Rajawari로 간단한 3D 장면을 만들어 보도록 하겠습니다.

6956 단어 Android
안드로이드를 사용하여 OpenGL3D 라이브러리Rajawali에 최소한의 장면을 설정해 보았습니다.
먼저 app/build.gradle에 Rajawari를 추가합니다.
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);
    }
}
My Renderer 클래스도 작성합니다.
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) {
    }
}

실행 결과



공이 보여!잘 모르겠지만!

좋은 웹페이지 즐겨찾기