min3d引擎使用指南(Android)

  • 說明:min3d引擎,是一個體積只有幾百KB的框架。基於opengl es 1.x,對應open gl 1.x + 2;需要繼承RenderActivity,在initScene()裏面初始化,在updateScene()更新姿態。有兩種方式顯示,第一種是整個屏幕都用來顯示3D,效率高。  另一種是在FrameLayout或者TextrueView等小範圍內,獲取到對象後,加入到_glSurfaceView裏面顯示。這種方式控制隨意,但顯示效率不高,經過測試,顯示1MB之內的導入模型,運行流暢度高(2GB運行內存)
  • 下載:谷歌min3d包  不方便翻牆的同學,自己在CSDN裏面下載,也可以在百度雲min3d包下載,導入後可以使用。需要使用的是這些包
  • 初步使用:如果工程直接編譯通過。可以看看包裏的例程。如果編譯通不過,沒關係。把上圖中那些包,複製到一個新的工程。
    public class MainActivity extends RendererActivity {
    //繼承RendererActivity,如果還有其他需要集成的,可以在RendererActivity.java裏面繼承。
    	Object3dContainer faceObject3D;		//3D對象
    	float x, y, z;
    	String str = "";
        protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_main);
    	FrameLayout ll = (FrameLayout) this.findViewById(R.id.frame_3d);//在xml中,指定顯示的控件,這裏是一個FrameLayout。
    
    	ll.addView(_glSurfaceView);//加入到_glSurfaceView中顯示。
    	Toast.makeText(MainActivity.this, "執行正常", Toast.LENGTH_SHORT).show();
        }	
  • //在繼承了RendererActivity之後,會提示你  重寫initScene,updateScene方法。
  • public void initScene() {
         scene.backgroundColor().setAll(0x0);//設置場景底色      
         scene.lights().add(new Light()); //設置燈光,否則一片黑,看不見
    	faceObject3D = new Box(1,1,1);//新建一個立方體,大小是長寬高各一個單位
    	faceObject3D.position().x =0;//設置初始位置,平截頭體中xyz的座標位置
            faceObject3D.position().y =0;
            faceObject3D.position().z =0;                                         
                scene.addChild(faceObject3D);//把模型加入到場景,這樣模型才能顯示,還可以在faceObject3D中加入新模型,同步顯示。
    	//這樣這個函數的基本功能就寫完了多個模型需要多個 3D對象,天空盒是SkyBox,還有橢圓,紋理,初始化的部分,都在這個方法裏面實現。
    }
    
  • public void updateScene() {    
    	faceObject3D.rotation().x++;//圍繞着X軸旋轉,正數爲順時針,速度由X的數值變化決定  
    	faceObject3D.rotation().y++;//可以單獨圍繞着Y軸(或XZ)旋轉,這個任意,根據外部傳感器同步姿態也可以。  
    	faceObject3D.rotation().z++;//旋轉在飛行器上的參數,對應的是pitch,roll,yaw 
    	}

  • 這裏可以看到一個正方體,順着XYZ三個軸的方向翻滾,看起來不是很舒服。但框架出來了,後面再美化吧。順便說一句,min3d引擎支持MPL協議(做商業用途也免費,聲明一下使用了這個模塊即可),從功能上說,是支持 導入3DS和OBJ模型的最小引擎。只是紋理映射有點麻煩,後面會講到。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章