为J2ME开发移动3D游戏之立即模式

一、简述

现在,移动游戏和移动应用开发极为热门!游戏中需要有时髦漂亮的图形,其设计标准比以前任何时候都要高。本文将告诉你怎样用酷毙的移动3D图形API为J2ME设备开发3D图形游戏。

如果你在用MIDP1.0进行用户接口编程,那么有两条路你可以选择:使用高级的UI类或者一切由你自己从头开始。作为游戏开发者,第一种选择往往是不可能的;这是为什么游戏开发者不得不为他们的高级游戏开发自己的3D引擎的原因。无疑,这需要付出大量的时间和努力,而缺乏浮点数支持的CLDC 1.0(MIDP 1.0正是建于其上)对问题的解决没有多大帮助。

在MIDP 2.0中,有一个可选的叫移动3D图形API的软件包,或者叫JSR 184。该API是第一个基于Java标准开发的移动设备上的三维图形软件包。该API既有高级又有低级图形特征;其中,高级特征称为保留模式,低级特征称为立即模式。保留模式使得开发者有可能使用场景图形并使场景中的物体根据虚拟相机和灯光的位置进行自身的着色。立即模式能够允许应用程序直接进行物体绘制。如果需要,可以在同一个应用程序中使用这两种模式。

本文着重介绍立即模式。

二、3D API

让我们以列举和解释该3D API中的类作为开始。除了这些API外,JSR 184还包含了一个场景图形结构和一个相应的文件格式以有效地管理和配置3D内容。该文件格式定义了一种m3g文件,这种文件典型地从3D建模文件应用程序中转换而来。

表1.3D API类

描述
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的浮点数矩阵,用来描述一个变换。
Transformable Node和Texture2D类的抽象基类。
TriangleStripArray 定义了一个三角形带数组。
VertexArray 一个整型矢量数组,描述了顶点位置,法线,颜色或者纹理坐标。
VertexBuffer 存储对于VertexArrays的引用,它包含了一个顶点集的位置,颜色,法线,以及纹理坐标。
World 一个特别的Group结点,它作为场景图最顶层的容器。
时间: 2025-01-20 20:25:00

为J2ME开发移动3D游戏之立即模式的相关文章

为J2ME开发移动3D游戏之保留模式

如今,3D图形几乎是任何一部游戏的关键部分,甚至一些应用程序也通过用3D形式来描述信息而获得了成功.如前文中所述,以立即模式和手工编码建立所有的3D对象的方式进行开发速度很慢且很复杂.应用程序中多边形的所有角点必须在数组中独立编码.在JSR 184中,这称为立即模式. 另外一种更高级的模式称为保留模式,它允许设计者使用诸如3D Max Studio等3D建模软件来设计场景图,然后把它们应用在程序中. 一.3D编辑器 现在,最流行的商业动画制作软件应是3D Studio Max,它支持输出模型或场

为基于J2ME的手机开发移动3D游戏

一.简述 既然现在你已对3D API比较熟悉并了解了3D图形是如何加入到移动Java应用程序中的.下面将继续告诉你怎样使用3D造型软件以使编码和设计更为简单. 如今,3D图形几乎是任何一部游戏的关键部分,甚至一些应用程序也通过用3D形式来描述信息而获得了成功.如前文中所述,以立即模式和手工编码建立所有的3D对象的方式进行开发速度很慢且很复杂.应用程序中多边形的所有角点必须在数组中独立编码.在JSR 184中,这称为立即模式. 另外一种更高级的模式称为保留模式,它允许设计者使用诸如3D Max S

利用J2ME开发移动3D游戏之3D图形API

简述 现在,移动游戏和移动应用开发极为热门!游戏中需要有时髦漂亮的图形,其设计标准比以前任何时候都要高.本文将告诉你怎样用酷毙的移动3D图形API为J2ME设备开发3D图形游戏. 如果你在用MIDP1.0进行用户接口编程,那么有两条路你可以选择:使用高级的UI类或者一切由你自己从头开始.作为游戏开发者,第一种选择往往是不可能的:这是为什么游戏开发者不得不为他们的高级游戏开发自己的3D引擎的原因.无疑,这需要付出大量的时间和努力,而缺乏浮点数支持的CLDC 1.0(MIDP 1.0正是建于其上)对

《Android 3D 游戏案例开发大全》——6.4节主控制类——TXZActivity类的开发

6.4 主控制类--TXZActivity类的开发 Android 3D 游戏案例开发大全 Android程序中,Activity是最重要的类之一.在本游戏中,TXZActivity继承自Activity类,为本游戏的主控制类,本节将具体介绍TXZActivity的开发,其具体步骤如下. (1)主控制类代码非常多,首先搭建主控制类的框架,以帮助读者理解,主控制类框架代码如下. 1 package com.bn.txz; //声明包 2 --//此处省略了本类中导入类的代码,读者可以自行查阅随书光

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.4节Hello Android应用程序的开发

1.4 Hello Android应用程序的开发 Android 3D游戏开发技术宝典--OpenGL ES 2.0 本节首先将介绍如何在Eclipse中创建一个基于Android的Hello World应用程序,之后将简单介绍Android应用程序的调试,为读者以后学习高级开发铺平道路. 1.4.1 第一个Android应用程序 本小节将向读者介绍如何在Eclipse中创建一个基于Android的Hello World应用程序,基本步骤如下所列. (1)首先打开Eclipse,然后依次选择Fi

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.5节2D动画的开发

2.5 2D动画的开发 Android 3D游戏开发技术宝典--OpenGL ES 2.0 虽然本书是着重介绍3D的开发技术,但在大部分的3D应用中也需要有不少的2D界面,如菜单.帮助等.本节将介绍一般用于开发游戏中2D界面的SurfaceView类的使用.其继承自View类,但与View的不同之处在于,View更新画面必须是在UI线程中(也可以理解为主线程中),而SurfaceView更新画面可以在自定义线程中进行,大大方便了开发. 提示 关于Android下的多线程问题,读者可以参考笔者在人

美剧《斯巴达克斯》开发成社交游戏今日测试

据外媒报道,红极一时的美剧<斯巴达克斯>已开发成社交游戏,并将在Facebook平台发行,游戏的测试版本将于今日开始. 美剧<斯巴达克斯>是由电视台StarZ于2010年播放,该剧拥有电影<斯巴达300勇士>的影子.<角斗士>的真实感和剧集<罗马>的裸露程度,电视剧还未播出,就已经受到广泛关注,而电视台更是一口气预订了两季的播放权. <斯巴达克斯>同名社交游戏今日进行测试,不过只有前一万名玩家才能拿到测试资格.第一季<斯巴达克斯

新京报:任天堂索尼决战E3展示3D游戏新技术

6月16日消息,据国外媒体报道,任天堂和索尼本周二在美国洛杉矶E3电子娱乐展上,都展示了他们最新的3D新技术.两家公司均认为,随着来自一流开发商的许多3D游戏的开发,3D产品将成为主流. 索尼致力于消费者居室的大屏幕电视,由于索尼在4月份进行了软件升级,该公司PlayStation 3游戏控制台能够在这类电视上播放3D游戏.任天堂重点是更小的显示屏,该公司计划推出一款能够播放3D游戏的全新DS手持产品3DS.两家公司3D新产品各有特色.索尼不要求消费者购买新游戏机,但消费者必须拥有一台3D功能新

使用NetBeans进行J2ME开发(五):揭开游戏开发的神秘面纱

游戏开发,好大的一个命题哦.无论是游戏的剧情设计,还是游戏的美工制作,那都不是一两下子能够完成的事,而编程,只是其中的一小部分.但是,就算是这一小部分,我也不可能把它掌握得很透彻.这篇随笔,大部分都是些抄书的东西,主要是为了我的博客的完整性而存在,但是我依然会尽力把它写好,要让那些精通Java其它领域但是却没有机会做J2ME开发的高手们看看图片解解馋,让那些想做手机游戏开发的同仁们看看J2ME的Game API究竟为我们提供了哪些支持,让我们知道写游戏需要了解哪些概念. 先来了解一下MIDP 2