简单模型格式开发(.L3D)

在3D图形引擎开发中,作者遇到.D3D9模型格式的问题,决定创建自定义.L3D格式。该格式支持多重纹理,但目前不包含骨骼动画。作者提供了一个在DXUT框架下的.L3D模型浏览器用于查看模型,并分享了源代码和3ds max导出插件。存在的问题是3ds max在无材质面片上分配不同ID的空材质,影响加载速度,此问题有待解决。作者期待得到社区的反馈和建议。
摘要由CSDN通过智能技术生成

近期由于在开发3D图形引擎实践中遇到了模型格式的问题,由于我们使用的D3D9,本来想法是直接使用.x文件的,但是发现在3ds max中导出.x文件时有各种令人意想不到的问题,所以给自己一个学习的机会,写一个适合自己引擎的模型格式也不错,反正之前也做过3ds max导出插件开发的工作,这下真的天时地利人和统统都齐,自己写的格式用得也爽,看得也爽.

看一下效果图:

这就是从3ds max中导出模型,扩展名为L3D,上面的示例程序是在DXUT框架下写的一个L3D模型格式浏览器(由于闲着没事干,并且发现当需要检查导出模型有没有出错的时候都比较麻烦,索性写个专门的浏览器,免得每次看模型都要打开那个一百多M的程序).

当前格式支持多重纹理,看上面的示例图就可以知道了(正上面灰暗灰暗的是因为光照的缘故),由于暂时不需要用到其他贴图通道,所以当前格式仅导出漫反射纹理图.还有还不支持骨骼动画,这个迟点再补上去吧.自己写的格式貌似比较好用,毕竟是自己写的,什么地方有什么东西,自己是一清二楚的.我看很多较大规模的引擎都用到自己的资源格式,毕竟不同引擎有不同需求嘛.

当前格式还有一些小问题,但大多都是3ds max建模的问题,若在贴图时有不贴图的面片,3ds max会自动给其分配一个空材质,但问题不在这里,问题是,3ds max会给每个没有贴材质的面片都分配一个不同id的空材质.这样的话,对于我这个插件来说,区分材质不同是同过材质id来分配的,所以当没用材质的面越多,空材质数目越大,最终影响加载模型时的速度.这个问题还有待解决.

最后, 这里抛砖引玉,献上示例图中的丑陋的模型浏览器和L3D的插件,浏览器里面有源代码,相信会D3D的人都能看懂的.灰常简单的哟....最后请各路大神指教指教,有什么不对的请指出.

提取码:

http://115.com/file/c2ivyxmo#
L3D.rar

分享密码 : l3d


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值