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包下载,导入后可以使用。需要使用的是这些包
初步使用:如果工程直接编译通过。可以看看包里的例程。如果编译通不过,没关系。把上图中那些包,复制到一个新的工程。
下载:谷歌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模型的最小引擎。只是纹理映射有点麻烦,后面会讲到。
相关文章推荐
- Android关闭自定义相机拍照声音
- android常用命令
- Android中实现用命令行同步网络时间
- Android Studio 依赖注入框架 butterknife
- Android bundle 传值方法
- Pro Android学习笔记(一七零):发布应用(3):打开商店、许可和ProGuard
- Android SD卡数据的读取
- 【iOS-Android开发对比】之 数据存储
- Android 23种设计模式
- Android 图片压缩也即生成缩略图方法
- android 图片格式和像素引发的问题
- 【Android】手势输入拨号器
- Android图像处理之Bitmap类
- Android开发之技术文章索引
- android下载安装APK
- Android中EditText中的InputType类型中文含义与如何定义
- Android API Level与sdk版本对照表
- Xamarin.Android开发实践(十)
- android SQLite用法
- android利用多线程加载图片【不使用第三方库】