您的位置:首页 > 移动开发 > Android开发

min3d引擎使用指南(Android)<一>

2015-07-06 11:44 666 查看
说明: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模型的最小引擎。只是纹理映射有点麻烦,后面会讲到。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: