`
izuoyan
  • 浏览: 9221157 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

导出M3G文件指南

阅读更多

作者:碧云天 文章来源:www.sf.org.cn

概述:

这个文档罗列了一些我们在开发3D模型和使用M<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="3" unitname="g" w:st="on">3G</chmetcnv>作为最终输出模型时需要注意的一些问题。注意本指南中讨论的时使用的是3DMax3D的建模工具。

1. 通常的问题:

a) 如果你想你的应用程序能够运行一个任意的适合M3G的引擎,那们就不要使用任何额外的扩展接口。当不确定某一接口是否可用时,可以参考在http://www.forum.nokia.com的文档(JSR184)。

b) 文件打算生成一个Java压缩文件(JAR)或者普通的压缩文件时应当非压缩地导出。在程序开始时,解压同样数据两次会使程序变慢,并且相当关键地是增加内存的消耗。

c) 我们在代码中需要存取的那些对象需要有唯一的UserID值。

2. 摄像机

a) 手动设置摄像机的剪切框。

b) 尽可能的从零点移动近的剪切框。

c) 移动远的剪切框时,尽可能的接近近的剪切框。

d) 确保在场景中至少有一个可用的摄像机。

e) 如果使用了多个摄像机,确保在输出时至少其中的一个是可用的。

3. 几何学

a) 使用更好的表面纹理细节代替几何的贴图(译者注:尽量减少多边形个数)。

b) 确保无论在任何地方,网格都是实例的。

c) 删除所有不必要的顶点和多边形。

d) 不用在屏幕上不被显示的比较小的多边形。

e) 避免同一平面多边形彼此覆盖,举个例子使用二进制运算符将这些多边形连成不互相覆盖的多边形

f) 对于减少多边形的个数,使用相交的几何图形优于合并过的多变形。然而,注意过深的相交几何也增加了光栅化的负荷。在所有的接口中相交多边形可能不是抗锯齿(anti-aliased

g) 确认所有的物体形状都已经被重新设置,尽可能多的让一些形状被设置成唯一的矩阵。

h) 单一的蒙皮网格可能比使用多等级的物体处理速度快,这依赖于接口和向量数组的宽度。

i) 在实时的光线渲染时,表面的法线向量是必须的。

4. 光线

a) 为了使光线看起来比较好,物体通常被分割(分割多边形)。

b) 只渲染那些需要光线的物体,因为光线计算十分耗费资源。

c) 光线映射在很多情况下是比较快和效果十分好的,相对于实时的光线操作。

d) 在同一个物体上使用光线映射和散射映射时,请确定你的目标硬件设备是否支持多贴图(所有的Nokia都支持)。

e) 如果可能,尽量使用方向灯光而不是点光源。

f) 天空光源(环境光源),面光源,和其他的更高级的光源是不支持的。

g) 动态阴影是不支持的,可以使用贴图映射的方式显示阴影效果。

h) 方向光照不能被消减和限制成一个锥体(相当于使用点光源)。

i) 在场景中不要使用多于一两个光源,如果你想使用更多,那们在你的程序中使用屏蔽和列表的方式,在需要光照的物体上分别使用不同的光源。

j) 如果你的程序想在所有的接口上使用,在任何物体上都不要使用超过8个的虚拟光源。

5. 表现和贴图

a) 保持贴图尽可能的消以节省内存。

b) 确保如果使用一种以上的材质素材时图片是实例化的。

c) 使用透明(Alpha)或亮度(Luminance)的格式代替使用RGBRGBA的格式。

d) 使用压缩的象素格式代替原始的RGBRGBA格式。

e) 不要使用低于16×16的调色板。

f) 如果使所有的设备都能够运行你的程序,那么贴图的大小不能超过256×256。而且长和宽都必须使2的幂(1248163264128256),但不要求相同。

g) 在任何可能的地方,使用Compositing = REPLACETexture Blending = REPLACE模式,以减少每个象素点的计算。

h) 如果你使用1alpha(就是透明绘制),总是使用Texture Blending RPLACEAlpha Threshold0.5的贴图,这比使用Texturing Blending ALPHA快的多。

i) 在你导出文件时,删除掉你不用的所有的数据,包括向量颜色或贴图坐标等,这样可以节省文件的大小和内存

j) 如果可能使用8位的贴图坐标而不是16位的。

k) 对于背景的贴图必须是RGB格式的,除非你使用Image2D创建场景可以使用RGBA格式。

6. 动画

a) 删除所有不必要的帧。

b) 针对于较快的处理速度使用线性的帧,对于要长时间播放使用时间槽方式。

c) 旋转时使用时间槽控制器,以减少帧数。

d) 使用时间槽控制器时,确保所有输入输出设置都是相同的。

e) 在骨骼上不要使用没有定义的比例尺

f) 所有运动目标必须有相同的时间键数字。

分享到:
评论

相关推荐

    类:要素导出shp文件

    类:要素导出shp文件 本文将详细介绍如何使用 ArcGIS 的 API 实现要素导出 shp 文件的功能。该类文件中提供了一个名为 ExportToShp 的类,用于将要素类导出到 shp 文件中。 一、导出要素类的参数设置 在 ...

    m3_export_3dsmax m3模型导出

    M3 Import Script,3ds Max 的M3模型导出

    kibana 的配置文件导出

    kibana 的配置文件导出kibana 的配置文件导出kibana 的配置文件导出kibana 的配置文件导出kibana 的配置文件导出kibana 的配置文件导出kibana 的配置文件导出kibana 的配置文件导出kibana 的配置文件导出kibana 的...

    Oracle可执行文件,包含导入导出可执行文件

    `expdp`是数据泵导出工具,它能将数据库对象(如表、视图、存储过程等)及其相关的数据导出到一个二进制的转储文件中。这个转储文件可以在需要时用`impdp`工具导入到其他Oracle数据库中。`expdp`支持多种导出模式,...

    导出EDIF文件

    ### 导出EDIF文件 #### 一、概述 在电子设计自动化(EDA)领域,EDIF(Electronic Design Interchange Format)是一种广泛采用的标准格式,用于在不同的EDA工具之间交换电路设计数据。导出EDIF文件是将一个电路...

    C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法

    "C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法" 在导出Excel文件时,经常会遇到“文件格式与扩展名指定格式不一致”的问题,这是因为大多数人在导出Excel文件时,都是默认保存Excel的格式...

    Java导出CSV文件

    java导出数据时,如果对数据格式没有特殊要求,为了提高效率可以导出CSV格式的文件,导出CSV文件不支持多个sheet页。

    spring mvc+ajax 导出导入xml文件功能实现和整理

    在本篇文档中,我们主要探讨了使用Spring MVC和Ajax技术实现导出和导入XML文件的功能。这一技术在Web开发中十分常见,用于在客户端与服务器之间传输数据,且常常用于文件操作场景。 首先,我们来看文档中提及的导入...

    idea增量导出web目录文件插件

    idea插件,可以按照web目录格式增量导出war包文件。使用方法:1.导入插件;2.在要导出的java文件中右键--》Generate War Packages--》按照提示导出。

    MATLAB导出stl格式文件

    在MATLAB环境中,导出STL( Stereolithography)格式文件是一项常见的任务,尤其对于3D打印和计算机辅助设计(CAD)应用来说至关重要。STL是一种标准的3D几何模型文件格式,它以三角面片来表示物体的表面。本主题将...

    SQL SERVER 导出image 类型文件到本地

    易写的从SQL SERVER 中导出image 类型文件到本地

    Excel文件(xlsx)导出json文件

    Excel文件(xlsx)导出json文件 Excel文件(xlsx)导出json文件 Excel文件(xlsx)导出json文件 Excel文件(xlsx)导出json文件 Excel文件(xlsx)导出json文件 Excel文件(xlsx)导出json文件 Excel文件(xlsx)导出json文件 ...

    SilvacoTonyplot中如何导出数据导出图片保存文件[汇编].pdf

    在 Silvaco Tonyplot 中,用户可以将.log 文件导出成.dat 文件,然后使用 Origin 作图。下面是具体的操作步骤: 1. 在 Silvaco Tonyplot 中,选择需要导出的.log 文件。 2. 点击“File”菜单,选择“Export”。 3. ...

    将datatable里的数据导出DBF文件

    - **标准库复制**:为了确保导出的DBF文件结构符合预期,首先需要复制一个标准的DBF文件作为模板。这一步骤确保了导出的DBF文件具有正确的字段定义和数据类型。 - 代码示例: ```csharp System.IO.File.Copy...

    oracle数据库的表数据导出为csv文件

    ### Oracle数据库表数据导出为CSV文件的知识点详解 #### 一、背景介绍 在日常工作中,我们常常需要将Oracle数据库中的表数据导出为CSV文件格式,以便于数据分析、备份或其他用途。本文将详细介绍如何使用Oracle PL/...

    java实现导出Excel文件和XML文件.docx

    Java实现导出Excel文件和XML文件 Java实现导出Excel文件和XML文件是Java语言中的一种常见需求,本文将详细介绍如何使用Java实现导出Excel文件和XML文件的功能。 一、功能简述 点击“导出”按钮,弹出文件选择...

    Visual C++源代码 173 如何把水晶报表导出到Excel文件

    Visual C++源代码 173 如何把水晶报表导出到Excel文件Visual C++源代码 173 如何把水晶报表导出到Excel文件Visual C++源代码 173 如何把水晶报表导出到Excel文件Visual C++源代码 173 如何把水晶报表导出到Excel文件...

    oracle导出成dbf文件工具

    支持根据sql语句查询出的结果,导出到dbf文件中。要求是查询出的结果顺序,必须和dbf文件各个字段一一对应。 前提是必须提供dbf模板文件,以确定dbf文件各个字段的长度等信息。 目前支持10g,11g 的oracle client...

    使用wireshark导出rtpdump文件步骤

    使用Wireshark导出RTPdump文件是网络分析和故障排除过程中一个非常有用的技术,特别是在处理VoIP(Voice over IP)和音频/视频流通信时。RTP(Real-time Transport Protocol)是互联网上用于实时数据传输的一套标准...

    QT导出excel文件。

    QT导出EXCEL,从tableWidget列表获取数据导出到excel文件。导出过程使用了excel模板文件,可以从tableWidget读取固定的几列数据导出到excel文件中。其中excel事先设置好文件格式,后续直接读数写数即可。开发过程...

Global site tag (gtag.js) - Google Analytics