读取3DS文件

------西昌.何雨锋 读取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的物体,在色彩读取上均没有出现问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个完善的读取3DS文件例子 作者:野草我想做个室内渲染程序,要加载3ds室内模型,我本来不想深入研究3ds文件格式的,但是我在网上找了好几个读取3ds文件的例子,不是只能显示网格,就是只能帖一张图,要么只能读版本低的文件. 反正是找不着一个比较完善的类.比如 www.gametutorials.com 上的读取3ds文件的例子就有问题,一读我用3ds max5.0 生成的3ds文件就会非法操作,而且一个物体只能帖一张图; http://www.tsrevolution.com 上的C3DS类的例子只能显示网格; http://www.spacesimulator.net上能读取3ds max 5.0的文件,但也只能帖一张图.看来不研究3ds文件格式是不行的了.上面提到的程序多多少少都有3ds文件格式的说明,但都是E文的了.我在这里也不想详细说3ds文件格式,我只是想,用这个类的人不用知道它的格式就可以很好的用它.如果你真要研究,上面的网站你可以参考一下.首先说明,这个类只是把上面提到的几个例子融合在一起,并作了些改进而已.不要说我抄袭别人的代码. J 只是为了方便大家.我想最好的说教莫过于例子了,于是我就在这里提供一下例子,你可以根据你的需要修改这个例子.在我的应用里模型全都有帖图.在这个例子里我假设你的模型用的都是帖图而没使用颜色,如果你的模型没有用帖图,那模型的颜色应该不是你想要的.如果你想要加载颜色又不想研究3ds文件格式,来信告诉我,我再完善它.加载3ds模型只是游戏开发的一小步,还有很多事情要做.如果你只是就像我例子里那样加载一个比较大的模型并且也像我的例子里那样显示的话,你会发现速度奇慢无比 L 加快显示速度就是你要做的第二件事.比如用Portal技术,我的另一个程序里已经实现了.如果你想要看一下效果,可以到我的网站下载Demo : http://3dbrothers.kom.cn 本地下载:Load3DSDemo.rar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值