|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
一旦你有了思想,那你编的程序就有了灵魂,不管是什么语言到了你的手里都会是你的工具而已,他们的价值是能尽快帮助你实现你想要的目标。但是如果你没有了思想,那就像是海里的帆船失去了船帆,是很难到打海的另一边的。
简述
如今,挪动游戏和挪动使用开辟极其抢手!游戏中必要偶然髦大度的图形,其计划尺度比之前任什么时候候都要高。本文将告知你如何用酷毙的挪动3D图形API为J2ME设备开辟3D图形游戏。
假如你在用MIDP1.0举行用户接口编程,那末有两条路你能够选择:利用初级的UI类大概统统由你本人重新入手下手。作为游戏开辟者,第一种选择常常是不成能的;这是为何游戏开辟者不能不为他们的初级游戏开辟本人的3D引擎的缘故原由。无疑,这必要支付大批的工夫和勉力,而缺少浮点数撑持的CLDC1.0(MIDP1.0恰是建于其上)对成绩的办理没有多年夜匡助。
在MIDP2.0中,有一个可选的叫挪动3D图形API的软件包,大概叫JSR184。该API是第一个基于Java尺度开辟的挪动设备上的三维图形软件包。该API既有初级又有初级图形特性;个中,初级特性称为保存形式,初级特性称为当即形式。保存形式使得开辟者有大概利用场景图形并使场景中的物体依据假造相机和灯光的地位举行本身的着色。当即形式可以同意使用程序间接举行物体绘制。假如必要,能够在统一个使用程序中利用这两种形式。本文侧重先容当即形式。
3DAPI
让我们以枚举息争释该3DAPI中的类作为入手下手。除这些API外,JSR184还包括了一个场景图形布局和一个响应的文件格局以无效地办理和设置3D内容。该文件格局界说了一种m3g文件,这类文件典范地从3D建模文件使用程序直达换而来。
表1.3DAPI类
类形貌AnimationController把持动画按次。AnimationTrack把一个KeyframeSequence统一个AnimationController相干联。Appearance界说一个网眼(Mesh)或一个Spring3D的着色属性的一组对象。Background界说视图是如何被扫除的。Camera一个场景图极点,它界说了场景中察看者的地位和从3D到2D的投影。CompositingMode一个Appearance类,它封装了每个像素的分解属性。Fog一个Appearance类,它包括了雾化的有关属性。Graphics3D一个独自的3D图形高低文。一切的着色操纵都是在该类中的render()办法中完成的。Group一个场景图形结点,它存储了一个无序的结点集作为它的子结点。Image2D一个二维图象,可用于纹理,背景,大概精灵图象。IndexBuffer该类界说了怎样把极点毗连起来以构成一个多少体。KeyframeSequence封装了一系列的具偶然间戳和矢量值的关头帧的动画数据。Light形貌了分歧范例的光源。Loader下载和反串行化图形结点及结点成份,和全部场景图形。Material封装了举行光学盘算的材质属性。Mesh形貌了一个3D对象,它是用多边形面界说的。MorphingMesh形貌了一个极点-变形的多边形网眼。Node一切场景图形结点的笼统基类。其五个详细子类是:Camera,Mesh,Sprite3D,Light和Group。Object3D一切能够成为3D天下中构成部分的对象的笼统基类。PolygonMode封装了多边形级别属性。RayIntersection存储了关于支解的Mesh或Sprite3D的援用,和有关支解点的信息。SkinnedMesh形貌了一个框架动画的多边形网眼。Sprite3D用3D地位来形貌一个2D图象。Texture2D封装了一个2D纹理图象和一个属性汇合,这些属性指出该图象是怎样使用到子网眼上的。Transform一个通用的4x4的浮点数矩阵,用来形貌一个变更。TransformableNode和Texture2D类的笼统基类。TriangleStripArray界说了一个三角形带数组。VertexArray一个整型矢量数组,形貌了极点地位,法线,色彩大概纹理坐标。VertexBuffer存储关于VertexArrays的援用,它包括了一个极点集的地位,色彩,法线,和纹理坐标。World一个出格的Group结点,它作为场景图最顶层的容器。
<p>
恰恰证明了java的简单,要不怎么没有通过c/c++来搞个这种框架? |
|