min3d是一个小巧的android 3d UI引擎, 最近想对其进行深入源码分析, 在深入学习之前, 还是先学会怎么用它吧。

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;@Overridepublic 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);}@Overridepublic void updateScene() {// TODO Auto-generated method stubsquare.rotation().y++;}}

转载于:https://my.oschina.net/fuyajun1983cn/blog/263961

min3d 引擎学习笔记之一相关推荐

  1. 【vn.py学习笔记(三)】vn.py事件引擎 学习笔记

    [vn.py学习笔记(三)]vn.py事件引擎 学习笔记 1 时间驱动 2 事件驱动 3 事件引擎工作流程 4 事件引擎结构 4.1 事件队列 4.2 事件处理线程 4.3 事件处理函数字典/通用事件 ...

  2. Nd2d引擎学习笔记

    写在前面: 最近很长一段时间都在致力于移动互联网游戏的开发,安卓,IOS,也包括服务器,最近把服务器搞完以后,接到上级指示,需要服务器兼容手游和页游.所以我就着手准备制作一个页游客户端的DEMO. 一 ...

  3. Volecity模板引擎学习笔记一

    最近项目中用到了volecity模板,这里做一下笔记,学习中...相比较 FreeMarker 而言,Velocity 更加简单.轻量级,但它的功能却没有 FreeMarker强大. 1,首先结合开发 ...

  4. sandy引擎学习笔记: 创建一个立方体

    问题:如何利用sandy的类库去创建一个立方体呢? 首先,我们要先了解sandy类库的结构 可以看到上面就官方网放出的类库表,有一些很容易理解,像sandy.events 这个和flash.event ...

  5. 虚幻引擎学习笔记——Month1 Week2

    Day1 学习程序的方法: 先模仿课堂案例,再将其灵活运用到作业中 把每次遇到的问题和错误及相应的解决方法记录下来 程序基础: 变量:程序运行时存储数据的手段(计算机内存中开辟一块存储空间,当程序用到 ...

  6. 虚幻引擎学习笔记——Month1 Week3

    Day1 上周简单总结 创建基础数据类型变量,如布尔.浮点.整型等,系统会自动加默认值.而自己创建的变量系统不会赋默认值,为防止变量为空所带来的问题,需要自己对其赋值 对象类型的变量:既可以存该对象本 ...

  7. Chipmunk-js物理引擎学习笔记

    一.基本概念 空间:在Chipmunk中,空间是所有对象容器.因此,刚体.形状.链接节点等对象都需要添加到空间中.空间控制这些对象的相互作用. 刚体:物理上的刚体指的是在运动和受力作用后,形状和大小不 ...

  8. tesseract-ocr引擎学习笔记

    文章目录 历史 安装 安装tesseract-ocr引擎 安装识别语言包 安装pyocr tesseract的使用 参考链接 历史 光学字符识别(OCR,Optical Character Recog ...

  9. 【UE4 虚幻引擎 学习笔记一】常见的基类(二) Actor、Pawn、Character、Controller

    Actor Actor在官方文档的里意思是:Actor类是游戏中一切实体Actor的基类.其实这更像是一句废话,Actor作为一个常用基类,要明白一个问题: 什么时候该继承Actor类? 问:一个实体 ...

最新文章

  1. scrapy 怎么添加cookie_scrapy学习之爬虫练习平台5
  2. 手动安装K8s第六节:node节点部署-kubelet
  3. docker如何修改挂载路径(挂载目录)?(没弄完,先去弄别的)
  4. crc16 modbus php代码,crc16 - 产生Modbus RTU格式的CRC码
  5. Linux安装nginx进行make的报错 原因pcre及其源代码路径
  6. 扒开系统调用的三层皮(下)
  7. 夏天快到了,教你怎样干掉讨厌的蚊子『转』
  8. 探索C#之6.0语法糖剖析
  9. 严蔚敏算法约瑟夫环_极客算法训练笔记(三),链表详细图解,别再逃避了朋友...
  10. webpack 4.0 中 clean-webpack-plugin 的使用
  11. Qt面试题(一)Qt信号槽第五个参数
  12. Python爬虫之JS逆向分析技巧
  13. 学生信息管理系统总结
  14. Win7自带驱动备份功能使用教程
  15. react native 高德定位 react-native-amap-geolocation
  16. python中文意思是什么-python是什么意思中文翻译
  17. BZOJ:3441 乌鸦喝水
  18. 大数据预测:未来最吸金的领域
  19. 支付宝钱包系统架构图解,真的太优秀了!
  20. 刚出社会的学弟:“毕业两年月薪才35K,真是没出息啊....”

热门文章

  1. s5pv210 uboot-2012-10移植(三) 之支持SPL
  2. CCNP第四天(2) 配置、校验OSPF特殊区域类型-完全Stub区域
  3. 如何:从 Windows 窗体 DataGridView 控件中移除自动生成的列
  4. Java笔记:成员变量,局部变量,类变量,实例变量以及注意事项
  5. Redis 系列之一
  6. 不可不知的Python模块: collections
  7. Android事件流程详解
  8. 【2015-10-19】内存管理---深浅拷贝,autorelease,ARC(自动引用计数)
  9. Android 4.0的图形硬件加速及绘制技巧
  10. 30天敏捷生活(8): 生成你的20/80待做事项列表