min3d 引擎学习笔记之一
2014-05-12 00:00
295 查看
min3d是一个小巧的android 3d UI引擎, 最近想对其进行深入源码分析, 在深入学习之前, 还是先学会怎么用它吧。
min3d是基于opengl es 1.x的, 它封装了opengl 的一些基本的绘图操作以及绘图管理和渲染操作,形成了一个框架。核心类主要包括场景类(Scene), 渲染类(Render)以及场景上的对象类(Object3d)及其子类。它提供了一个活动类RenderActivity, 使用者只需要实现其中的initScene()和updateScene()方法即可。
下面给出一个使用的例子:
如下代码绘制一个正方形,并进行纹理贴图。
min3d是基于opengl es 1.x的, 它封装了opengl 的一些基本的绘图操作以及绘图管理和渲染操作,形成了一个框架。核心类主要包括场景类(Scene), 渲染类(Render)以及场景上的对象类(Object3d)及其子类。它提供了一个活动类RenderActivity, 使用者只需要实现其中的initScene()和updateScene()方法即可。
下面给出一个使用的例子:
如下代码绘制一个正方形,并进行纹理贴图。
import min3d.Shared; import min3d.Utils; import min3d.core.Object3d; import min3d.core.RendererActivity; import min3d.vos.Number3d; import min3d.vos.RenderType; import min3d.vos.Uv; import android.graphics.Bitmap; public class TestAndroid8Activity extends RendererActivity { Object3d square; @Override public void initScene() { Bitmap b = Utils.makeBitmapFromResourceId(this, R.drawable.icon); /** * 采用glDrawElements()方法, 一个face代表一个三角形 */ square = new Object3d(4, 2, true, false, false); square.vertices().addVertex(new Number3d(-1.0f, -1.0f, 0), new Uv(0, 0), null, null); square.vertices().addVertex(new Number3d(1.0f, -1.0f, 0), new Uv(0, 1), null, null); square.vertices().addVertex(new Number3d(-1.0f, 1.0f, 0), new Uv(1, 0), null, null); square.vertices().addVertex(new Number3d(1.0f, 1.0f, 0), new Uv(1, 1), null, null); square.renderType(RenderType.TRIANGLE_STRIP); // square.faces().add(0, 1, 2); // square.faces().add(1, 3, 2); Utils.addQuad(square, 2, 3, 1, 0); square.doubleSidedEnabled(true); /** * 采用glDrawArrays()方法, 忽略face */ // square = new Object3d(4, 0, false, false, false); // square.vertices().addVertex(new Number3d(-1.0f, -1.0f, 0), null, null, null); // square.vertices().addVertex(new Number3d(1.0f, -1.0f, 0), null, null, null); // square.vertices().addVertex(new Number3d(-1.0f, 1.0f, 0), null, null, null); // square.vertices().addVertex(new Number3d(1.0f, 1.0f, 0), null, null, null); // square.renderType(RenderType.TRIANGLE_STRIP); // square.ignoreFaces(true); // square.doubleSidedEnabled(true); Shared.textureManager().addTextureId(b, "icon", false); square.textures().addById("icon"); b.recycle(); scene.addChild(square); } @Override public void updateScene() { // TODO Auto-generated method stub square.rotation().y++; } }
相关文章推荐
- min3d 引擎学习笔记之一
- HGE引擎学习笔记
- cocos2d学习笔记(七)物理引擎box2d之一
- 学习Android Opengles 做游戏引擎笔记(二)
- 规则引擎中如何审核发布规则学习笔记
- Flixel引擎学习笔记
- Sandy引擎学习笔记:纹理贴图
- Sandy引擎学习笔记:纹理贴图
- UE4引擎学习笔记:Blueprints Visual Scripting->Basic Scripting
- 开源3D图形渲染引擎OGRE学习笔记
- Hawq学习笔记 --- 构建于HDFS之上的Greenplum(实时查询引擎)
- cocos2d-x 3.0开发笔记---物理引擎封装 Physics深入学习
- 18.笔记 MySQL学习——MYSQL存储引擎
- Away3D引擎学习入门笔记
- MySQL 5.6学习笔记(数据库基本操作,查看和修改表的存储引擎)
- 【Unity 3D】学习笔记三十六:物理引擎——刚体
- Spark学习笔记——构建基于Spark的推荐引擎
- WiEngine引擎学习笔记-1 环境搭建
- sandy引擎学习笔记: 创建一个立方体
- cocos-lua学习笔记(三)引擎目录介绍