作者:mingjava 文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=761
索尼爱立信K700手机的Java 3D引擎提供了访问全新开发领域的可能性。K700同时支持JSR 184和Mascot Capsule 第三版的API,本文将主要关注使用Mascot Capsule第三版API的技巧。
通用3D建模技巧
Mascot Capsule引擎第三版只支持0%,5%和100%的多边形透明度,因此创建3D模型的时候确保只使用了上述数值。
将每个模型导出为一个BAC文件。虽然也可以把多个模型导出到一个BAC文件中,但是这样只能使得你的编程工作更加复杂。
导出模型的时候,让你的模型位于0,0,0。这样可以使得编程更简单。
Camera和Light不能被导出到BAC文件,因此不要在你的3D模型中浪费时间来设置这些内容。
骨架的重量值只能取100%或者0%,其他的任何值都无效。
3D显示技巧
使用下面的3种方法可以减小你的3D MIDlet的纹理失真的情况:
1、 在失真区域使用更多的多边形
2、 使用非常难辨认出来是否发生扭曲的帖图,如果可能的话,使用随机模式会使帖图更清楚
3、 尽量把这些区域隐藏在2D图形后面
Mascat Capsule使用Z排序算法来计算多边形的顺序。像所有的Z排序一样,这意味着有时候多边形的绘制顺序和眼睛看到的可能不一致。细分多边形可以解决这个问题。另一方面,如果顺序的问题出在模型之间,通过刷新不同模型之间的绘画缓存可以减小这个问题的影响程度。
程序性能技巧
绞尽脑汁多想一些办法来创建同样的效果,然后选择消耗处理器和内存最小的方式。
3D模型中多边形的数量是影响性能的关键因素。然而,这并非唯一的因素。在移动电话这种处理能力有限的设备上,你应该多计算绘画的像素数量而不光是多边形的数量。具有多个多边形的小模型绘画速度比多边形数目少的大模型快。
可能的话,创建3D模型的时候使用方形代替三角形。
纹理总是会保留足够的内存来填充8比特深,256*256像素的纹理区域,即使你的纹理文件比这个要小。因此使用一个256*256的纹理比使用4个128*128的纹理的效果更好。
由于内存有限,因此尽量复用你的纹理。例如,在使用脸部纹理的时候,你可以只创建一个耳朵,把它用在脸部的两边。
如果你已经定义了一组关键帧,那么可以通过程序自动创建3D动画。动画里的关键帧准确的创建了你的模型。这样程序可以在你的关键帧之间绘画所有的帧,可以节约很多工作量。然而,你不能用的帧太多,或者错误的帧。否则会影响性能。
向3D模型中添加骨架的时候应该当心,尽量使用少量的骨架。例如,如果手指在你的模型中并不是很重要的话,那么没有必要为其添加骨架。可以考虑把手和手腕直接连接来代替。
原文地址: http://developer.sonyericsson.com/site/global/tipstrickscode/java/p_java_0703.jsp
分享到:
相关推荐
Java 3D手机游戏开发实例集锦,书中的实例源码,对学习java 3D游戏开发帮助较大。 Hello3D 最基础的MIDlet例子,用于测试开发环境 第3章 EventDemo 事件处理演示 MMAPIDemo 声音播放演示 RMSMIDlet ...
在Java移动领域,MIDLet(Mobile Information Device Profile Application)是J2ME(Java 2 Micro Edition)平台上的一个应用程序接口,主要用于开发在小型设备如手机或掌上电脑上的应用程序。MIDLet与Servlet的通信...
做midlet开发,如果需要用到乘幂运算,会用到这个函数。 文件名是float.java 里面包含了pow函数等midlet原本不具备的数学运算函数。
Midlet(Mobile Information Device Profile Application)是基于Java ME平台的应用程序。为了确保Midlet的安全性和可靠性,Java ME平台引入了程序签名机制。本文将详细介绍Midlet程序签名的相关概念、原理以及在...
在使用Java 2 Micro Edition (J2ME) 开发MIDlet应用时,经常会出现一个弹窗提示用户授权的情况。这种现象通常发生在非受信MIDlet(Untrusted MIDlet)上。当这类应用程序试图访问系统的敏感API时,出于安全考虑,...
该项目是一个基于Eclipse的MIDlet应用程序示例,其核心目标是演示如何在Java 2 Micro Edition (J2ME) 平台上使用MIDlet控件。MIDlet是J2ME中的一个关键概念,它是一个可下载的移动应用单元,能够在小型设备如手机或...
标题“Animated_Midlet.rar_j2me mtk_javame”揭示了这是一个关于Java ME(Micro Edition)平台的动画应用,特别针对MTK(MediaTek)芯片组的设备。Java ME是Java的一种轻量级版本,用于在移动设备、嵌入式系统和...
标题中的"midlet_servlet.rar_midlet-servlet"暗示了这是一个关于Java ME(Midlet)与Servlet交互的项目。在移动设备(如早期的智能手机)上,Java ME(Micro Edition)提供了一个名为Midlet的框架,用于开发移动...
【标题】"Midlet2.rar_midlet_simple" 涉及的是Java 2 Micro Edition (J2ME) 平台中的MIDlet应用开发,利用Lightweight User Interface Toolkit (LWUIT) 库来创建一个简单的用户界面。MIDlet是J2ME中的一个核心概念...
在移动设备上开发应用程序,尤其是早期的Java ME(Mobile Information Device Profile)平台,开发者常常使用MIDlet来创建可运行在手机上的小程序。MIDlet是Java Micro Edition(Java ME)的一部分,它允许开发者为...
- **简表**:建立在配置之上,提供了更高级别的API和服务,如Mobile Information Device Profile (MIDP),用于创建移动设备应用程序。 #### 三、MIDP与MIDlet ##### 3.1 什么是MIDP MIDP是由Sun Microsystems、...
在Java 2 Micro Edition (J2ME)的开发环境中,MIDlet是用于移动设备和嵌入式系统的应用程序框架。MIDlet提供了丰富的功能,使得开发者能够创建交互式的、功能强大的移动应用。而在这些应用中,图标作为用户界面的...
J2ME 3D手机游戏开发详解 源代码 -----------------------------光盘程序代码(源代码目录下)说明--------------------------------------- 第2章 Hello3D 最基础的MIDlet例子,用于测试开发环境 第3章...
首先,让我们看一个简单的示例代码,该代码创建了一个名为`DetectMIDlet`的MIDlet,它展示了一些关键的系统属性: ```java import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class...
RMS(Record Management System)是Java 2 Micro Edition (J2ME) 平台中的一个核心组件,主要用于在有限的移动设备上实现数据存储。它为开发者提供了一种灵活、高效的方式来保存和检索应用程序的数据,比如游戏得分...
标题“midlet2.zip_png”暗示这可能是一个与Java MIDP(Mobile Information Device Profile)相关的压缩文件,MIDP是Java Micro ...核心代码集中在`midlet2.java`中,涉及图像处理、用户界面创建和事件响应等多个方面。
在Java 2 Micro Edition (J2ME)平台上,MIDlet是移动设备上运行的应用程序。这个案例聚焦于如何让MIDlet利用蓝牙技术与电脑进行数据通信。蓝牙技术允许设备间短距离无线通信,使得MIDlets可以扩展其功能,如传输文件...
1. **项目创建**:在集成开发环境中新建一个MIDlet项目。 2. **UI设计**:根据需求设计用户界面,可以使用AWT/SWT组件库或自定义组件。 3. **功能实现**:编写业务逻辑代码,实现所需的功能模块。 4. **调试与测试**...
这个标准为Java ME应用程序,尤其是游戏开发,提供了一个强大的3D图形编程接口,使得开发者可以创建具有丰富视觉效果的应用。 在提供的压缩包"jsr_184_midlet.rar_DEMO_jsr184_jsr184-m3g.jar_m3g"中,我们可以看到...