[英]How can I determine with script which textures are attached to a blender material?
我正在加载和清理许多旧版.fbx文件。 我需要导入fbx文件,检查是否有重复的网格,材质和纹理,然后选择具有附加到位图的纹理的材质。 (在5个fbx文件中,只有一个具有可用的材质/纹理)
我可以导入fbx文件,找到多余的材质,但是我无法弄清楚哪些材质附加到材质上,然后哪些材质具有位图。
任何帮助表示赞赏。
答案似乎是materials [i] .active_texture。 我问得太早了。
进一步介绍您发现的内容-
我希望fbx格式支持每种材质多于一张图像,并且由于Blender材质可以具有多个与之关联的纹理,因此可以使用以下内容执行更完整的搜索
import bpy
for obj in bpy.data.objects:
for matslot in obj.material_slots:
for texslot in matslot.material.texture_slots:
if texslot is not None and texslot.texture.type == 'IMAGE':
if texslot.texture.image is not None:
print('object', obj.name, 'has material',
matslot.material.name, 'that uses image',
texslot.texture.image.name)
print('It is saved at', texslot.texture.image.filepath)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.