JSR184解读(一)
来源:互联网 发布:大道行知文化传媒 编辑:程序博客网 时间:2024/06/05 21:17
JSR184规范是J2ME3D图形的核心.
包名: Package javax.microedition.m3g.
WTK2.5.2 lib 中包含了jsr184.jar,不用额外添加.
JSR184一共定义了30个类.
Object3D是其中最重要的类,是J2ME的核心.现在就解析一下Object3D类.
Object3D 3D对象类.抽象类.抽象了3D物体的某些共同操作.,例如:变形,位移,动画等.其子类AnimationController, AnimationTrack, Appearance, Background, CompositingMode, Fog, Image2D, IndexBuffer, KeyframeSequence, Material, PolygonMode, Transformable, VertexArray, VertexBuffer:
其重要的关系网.除了Graphics3D和Transform,其他的类都继承于Object3D
一.3D场景的实现:
3D的场景中的 最底层是World,是Graphics3D直接绘制在GameCanvas中的实例.
World类中只有2个重要方法.setActiveCamera , setBackgound.设置背景和设置照相机.
Background在世界中的是无位置的,视角上时刻位于3d世界的-Z无穷远处.可以设置颜色或Image2D图片作为背景.默认情况下,Background是一幅静止不动的图片,3D世界中的视角转动的时候,图片依旧不变.但是可以自己编写代码,使Background呈现上下左右的移动视角.
Camera就是视角,设定在3D视角中看到的范围,在固定的范围显示物体.其最重要的方法是setPerspective.
Mesh就是多面体的意思.所有的3D实物都归纳为多面体.我们构造的实例,如人物,高山,飞机等都是多面体的实例.多面体添加到world中就形式3D空间中的物体.
Group 组节点的意思.它的作用就是把多个Mesh放到一组中,然后移动或变换Group就能实现对一组Mehs的操作. Camera和Light通常都放在一个Group中,方便视角移动的时候光线也移动.
注意:任何一个节点都只有一个父节点,换个话说,就是一个节点只有一个直接上级.一个上级下面可以有多个不同的下级.
Sprite3D 3D精灵.用2D图片实现3纬效果.2D游戏时代就用这种方法了.
二.3D效果的应用:
1.Mesh的外观Appearance类.Appearance引用到Material Fog Texture2D等类.
多边形的表面属性是通过Mesh.setAppearance(int index,Appearance appearance)来设置,也可以在Mesh构造方法内设置.
Appearanc直接New一个就Ok.但是新建立的Appearance没什么意义.需要用一下方法扩充: setCompositingMode(颜色合成模式),颜色的融合,Alpha门限(透明属性)等
setFog(雾化参数),目的就是使Mesh轮廓不太尖锐.
setLayer(将要显示的层),
setPOlygonmode(多边形模式), 修饰Mesh是否平滑,显示正面背面等性质.
setMaterial(材质,有光线效果的时候用), 设置物体表面反射光线的属性.
SetTexture(纹理.) 设置纹理.Mesh的贴图就是靠设置这个属性.
通常理想的情况下只需要使用到Image2D把大部分的特效绘制出来,这样可以减少手机的运算.
共同构成立体物件的类组合:
2.动画特效:
2.1用Sprite3D 3D精灵来实现,这样比较简单,而且少负荷.
2.2动画的对象是Mesh! Mesh运动轨迹AnimationTrack.动画的运动时间,速度或多个动画轨迹在一个Mesh中使用需要设置AnimationController.动画轨迹的核心KeyframeSequence负责设置有限的数帧Mesh位置,由CPU计算出Mesh运动中其他帧的位置.
此过程设置的动画分为 关键帧动画,骨骼蒙皮动画,变形物体动画.
(具体方法我会在另外的文章中提及.)
- JSR184解读(一)
- camera jsr184
- Camera In JSR184
- 解读NTFS(一)
- 解读ibatis(一)
- 解读NTFS 一
- Flume源代码解读一
- 解读AbsSeekBar【一】
- ConcurrentHashMap 解读(一)
- 深入解读Tomcat (一)
- IndexedRDD 源码解读一
- jQuery源码解读一
- THUCTC源码解读(一)
- jQuery源码解读一
- Caffe解读(一)
- Docker命令解读-一
- Volatile关键字解读(一)
- 区块链解读一
- 嵌入式网络视频采集源程序servfox解析01
- VIM 技巧
- 15个谷歌面试题
- C#获取完整的CPU信息
- 网关按区域聚集玩家
- JSR184解读(一)
- 图片保存到数据库和从数据库读取图片并显示(C#)
- virtualBox 大搬家 从C盘移走
- Web压力测试工具 Microsoft Web Application Stress Tool
- 再读C++Primer
- JavaScript导出excel word……
- java第6天课堂代码
- 拥有普通人的快乐
- window.open 居中显示