繁体   English   中英

如何使用脚本确定将哪些纹理附加到搅拌器材料上?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM