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模型的最小引擎。只是纹理映射有点麻烦,后面会讲到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值