3D建模技巧

来源:互联网 发布:淘宝优惠券怎么弄 编辑:程序博客网 时间:2024/04/28 06:38

作者:i25ffz   文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=763

下面你将看到一些3D建模技巧,导出时的缩放比例、皮肤的用法、更好地重用材质及顶点减色及物体定位、设置物体的UID(User ID)。

 

建模

所有M3G导出插件的一个公共的问题是为模型选择合适的缩放比例。所有M3G导出插件似乎有不同的方法在如何将3Dsmax中的一个单位和游戏的一个单位对应。HI Corp Mascot的导出插件和3Dsmax插件将所有的顶点缩放至一个3Dsmax单位(也就是3.2f->3.0f)。

 

技巧

记住3dsmax总是为普通单位保持缩放。模型的缩放将会和3dsmax的一个单位相同(一些导出插件是把模型缩小100倍)。在Mascot中,一个3dMax单位将与数值1对应(不是固定点1,它是4096)。这就意味着在3Dsmax透视图里模型看上去会非常大。由于Mascot的定点数及16位的限制,我们不得不将所有的顶点保存在-32000到+32000的范围之内。

 

皮肤

    当使用骨架和皮肤的时候,你不得不将顶点的分量设为0.0f或0.1f。为了确保这些,你可以这样做:

l         选择皮肤,封装。

l         检查所有“顶点”。

l         选择所有顶点(用移动工具)。

l         选择“分量属性”里的“锁定大小”。

公共注意事项

l         记得连接所有的顶点。

l         在导出前将所有堆折叠(不是皮肤修改器)。

l         注意备份。

 

JSR-184特殊的技巧

转换

JSR-184的一个主要问题是结点的缩放。很多美工喜欢用缩放工具去缩放物体。但是,缩放并不会应用到物体的顶点。而3Dsmax是应用缩放到一个网眼的转换矩阵上了。这意味着如果你将一个物体缩放了10倍并导出,这个网格顶点半角依然是1倍,并且缩放将应用到转换矩阵上了。当我们为物体进行旋转和平移,我们得到的场景在3Dmax中看起来是OK的,但在游戏中就都混乱了。

解决方案是不要在网眼上运用缩放工具。而应该用直接缩放顶点。如果已经将缩放运用在网眼上,应该用3DMax的“Reset XForm”工具(在“Utilities tab”栏能找到),“Reset XForm”将设置旋转/平移矩阵至单位矩阵并“冻结”顶点至当前位置。特别要注意的是应用之后它将重置缩放,也将节点旋转至最佳位置,并且网眼的顶点将被旋转至与世界相匹配,且节点的转换将设置为0度。

同样,记得保持编辑器堆尽量小,并在导出以前将它们折叠。一些编辑器会保持内部的材质且这些通常建立了多材质,正如你猜中的那些,不会在3Dmax中看见,但会将你的游戏界面搞得很混乱。

 

用户编号(User ID)

.m3g文件中网眼用find(int uid)method方法查找。网眼的UIDs能在导出时由导出插件设置或由插件自动生成并在分析日志文件中找到。在导出工具中设置用户编号有一点麻烦,在导出的时候UIDs并没有被保存(一个错误报告将发送给开发者)。当前最好的解决方案是依靠3Dmax中的物体的名字,分析日志文件,并为游戏编辑一个对应的用户编号对照表。

 

物体重用

通常,一些按类别来命名的方案在3Dmax中应该被使用,例如,“game_mesh”和“game_mesh01”可能是一样的网眼但在游戏中那是很自然的去重用物体来节省空间,用一个max脚本来移除重复的网眼并且只导出转换的拷贝(在这种情形下,我们需要用一个小的虚拟的网眼来代替原始的网眼),然后为重用生成一个分开的基于命名方案的表。

 

物体定位

物本的位置被导出在.m3g文件中,转换节点能用以下方法找回:

myMesh.getTransformTo(theWorld, newTransform);

 

材质

JSR-184中所有的材质的尺寸必须是2^n x 2^n (2的n次方)(如 32x32,128x64)。建议最大的尺寸是256x256(长宽为256的材质通常是最大的限制当它们加载进内存中)。如果材质有不同的属性,如alpha通道(透明),我们应该为每个的模式用不同的材质。

UV锚点在3Dsmax中被限制在0.0f至1.0f的范围之间(这是一个围绕在材质周围的蓝色的正方形在UV-unwrap中,在下面的图片中)。如果它们不在范围中,3Dsmax的导出插件将生成一个警告。在3Dsmax中“Tile bitmap”选项应该总是关闭的,这是为了防止用户意外地拖动锚点到想得到的范围之外。

 

顶点颜色

要增加预先计算的灯光到3Dmax场景中并运用顶点颜色,做如下步骤:

l         设置 "Render/Environment/Global Lightning/Ambient"成黑色 (默认模式)。

l         增加灯光到场景。

l         选取你的网格,用在“Utilities tab/More”中发现的“Assign Vertex Colors”工具,先取“Shaded”并按下“Assign to Selected”。

l         将灯光从场景中移除。

l         折叠起网眼。

l         设置 "Render/Environment/Global Lightning/Ambient"成白色。

l         在网格上通过右键打开网格的属性,激活“Vertex Channel Display”。

l         导出。

原文地址:

http://developer.sonyericsson.com/site/global/tipstrickscode/mobilejava3d/p_3d_modeling.jsp