上篇讲到自动更名重名的物体, 紧接着另一个类似的问题,那就是自动更名重名的材质.
这所讨论的所有的问题其实是针对我自己开发的一款虚拟现实软件,详情见:
在我的软件中允许有重名材质,但是对于烘培材质就不行了,同一个名称最后只导出一个.
其实在场景中碰到重名材质的机会并不多,但有一种情况则是MAX的BUG引起的.
如果你烘培过一个物体后,就是对它自动加上一个Shell Material,这个材质名称是不会重复的,但是如果你展开它就
会发现,它由两个材质组成,一个是原来的材质,它会自动在原来的物体名上加上一个Orig来作为前缀,
而另一个材质是在原来的材质名称前加一个bake_的前缀
问题就来了,在MAX中一个材质可以赋给多个物体,
而这多个物体烘培后,其烘培材质就是同名,
导出到我的软件中就会出错.
于是我就写了个程序,来对它的材质进行更名,这不同于普通更名,需要先获取烘培过的物体,然后找到其材质,
然后再找到其子层次的材质(一般为第二层的第二个),再进行更名.
老规矩, 有人再贴代码,摸索起来不容易
__________________________
朱长德
虚拟闲人
zhucde
虚拟现实软件的开发与研究