我们在游戏开发的时候,美术制作一个大场景的时候会分成不同的小模块或区域做,做完后,再把各自的模块做整合成一个关卡,再导出到关卡编辑器中或游戏中。这样有利于美术的协作,但是有另外一个问题,会导致资源的重复浪费。比如说,美术A在他的小模块中用到了贴图000.bmp,美术B在她的小模块中也用到了贴图000.bmp.最后整合的时候,在Max中merge的时候,会多出一个材质来(我们不考虑,材质的其他的属性,只考虑材质的diffuse贴图信息),这样就有重复的数据产生,当场景拆的越多,材质用的越多,重复的材质数据会成倍的增加。
以下为利用MaxScript合并重复贴图的材质代码:
以下为利用MaxScript合并重复贴图的材质代码:
- allMat = meditMaterials[1]
- if allMat.materialList.count > 1 do
- (
- matIDMapArray=#()
- need_reassign = false
- for m = 1 to allMat.materialList.count do