1. 程式人生 > >Rajawali-天空盒的使用

Rajawali-天空盒的使用

距離上一篇rajawali初探過去很久了,一直沒有更過,直接進入正題

與很多引擎一樣,rajawali給天空盒的運用封裝了一層api,直接呼叫即可

首先我們需要明確rajawali的使用:activity 、surface、 render是必須要有的

在render中我們要繼承RajawaliRenderer並重寫initScene方法,基本上所有的3D場景中的東西都在這個方法中實現

這裡我們在場景中建立了一個球體,並貼上了地球的材質貼圖,然後通過

getCurrentScene().setSkybox方法傳入六張天空盒貼圖
 public void initScene(){
        Material material = new Material();
        material.enableLighting(true);
        material.setDiffuseMethod(new DiffuseMethod.Lambert());
        material.setColor(0);
        earthSphere = new Sphere(1, 24, 24);
        earthSphere.setMaterial(material);
        getCurrentScene().addChild(earthSphere);
        getCurrentCamera().setZ(4.2f);
        Texture earthTexture = new Texture("Earth", R.drawable.earthtruecolor_nasa_big);
        try{
            material.addTexture(earthTexture);

        } catch (ATexture.TextureException error){
            Log.d("DEBUG", "TEXTURE ERROR");
        }
        try {
            getCurrentScene().setSkybox(R.drawable.posx, R.drawable.negx,
                    R.drawable.posy, R.drawable.negy, R.drawable.posz, R.drawable.negz);
        } catch (ATexture.TextureException e) {
            e.printStackTrace();
        }
        directionalLight = new DirectionalLight(1f, .2f, -1.0f);
        directionalLight.setColor(1.0f, 1.0f, 1.0f);
        directionalLight.setPower(2);
        getCurrentScene().addLight(directionalLight);

    }

到此一個最基本的rajawali的3d場景搭建完畢。