Rajawali-天空盒的使用
阿新 • • 發佈:2019-02-06
距離上一篇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場景搭建完畢。