------西昌.何雨锋 读取3DS文件
以下是多次实验结果:
1、用conv3ds不带参数将box05.3ds转变成box05.x,用mesh1->LoadXFile("box05.x",tvtrue,tvfalse);读出
显示成功,UVM贴图完全正确,但是亮度很强,与周围环境不协调,不知道box05是怎样产生的。
2、同时用1中的box05.3ds来进行,
用mesh1->Load3DSMesh("box05.3ds",tvtrue,tvfalse,tvfalse,tvtrue,tvtrue);
显示比1还成功,UVM贴图完全正确,而且亮度与周围环境完全协调。
3、用tank3.3ds进行,该tank为自己绘制,由几个基本物体组成,贴图为分别进行UVM贴图,在导出成为
3ds文件时,3dmax似乎显示某个jpg贴图文件出问题,所以在tv3d调入时,发现tank轮子贴图丢失,但其他地方
贴图完全正常,而且色调跟周围一致。
mesh1->Load3DSMesh("tank3.3ds",tvtrue,tvfalse,tvfalse,tvtrue,tvtrue);
当第二个参数为tvfalse时,tank发生反转,但是形体未变化,贴图正常。
当第三个参数为tvtrue时,tank形体未变化,贴图正常。
但是当第四个参数变为tvtrue时,tank贴图正常,形体发生混乱。
最后两个参数是控制贴图的,当前者false时,tank贴图正常,但色调与周围不一致。
当后者false时,色调一致,但贴图完全丢失。
4、可能由于贴图有问题,所以在进行tank3.3ds向tank3.x的conv3ds过程中,转换完全失败,x文件没有生成。
然后到max中进行调整,导出成3ds文件时没有报错,但是将3ds文件再转换为x文件时仍然失败。
不明白为什么box就成功,所以只有将box复制了,然后在里面自己做东西。
5、当然,我找到了一个工具3d explotion1.8,可以识别各种游戏格式的3D文件,可以在可视条件下将3ds文件转化成x文件,就不用考虑纹理问题了。
6、在MAX中改良已有的模型时,注意要删就整个删除物体,不要乱删减节点,因为只要有地方没有合上节点,导出的3ds文件被读出时就会导致文理丢失。
7、关于多维纹理的问题:
这本来是3DMAX中的问题,但是还是在这里写.我使用了3dMAX中的混合贴图,方法是先建立一物体,然后用edit mesh进行编辑调整形体
,然后用edit ploy。进行材质编辑,在stand中使用mltiplate/sub-object然后编辑出几种材质,ID分别为1/2/3...,然后用edit poly选择不同的面,并用ID去分组,分完后,用材质整体赋给物体,并将各分组选择不同的材质就可以了。这样就可以做出一个不同的面用不同材质的物体,导出成3ds文件或x文件。
在TV3d中,可以调出多维材质的3ds文件,但是注意,跟其他文件一样,所有材质都必须有贴图,否则在tv3d中渲染不出来。
同样,X文件也可以用tv3d渲染出来,但是第二个参数必须为false,否则渲染不出来。
8、开始试着用MAx修改后导出3ds文件,结果老是出错,最大的问题在于很多时候进Tv3d中渲染出来发现有些部件只能有轮廓,而纹理完全不显示,3DExploration虽然可以形成x文件,但是在tv3d中渲染出来和3ds文件存在同样的问题,后来改用Deep Exploration从3ds向x文件转化,结果出来的效果非常好。
9、试着做了几个物体,分别为boolen产生物体、shape Extude生成及变动edit mesh的物体,在色彩读取上均没有出现问题。