有没有办法在 PyCollada 几何体上找到纹理的文件路径?



我试图解决的问题是我在Blender中创建了一个模型,其中包含几个单独的几何形状,每个几何形状都有自己的纹理文件。

据我了解,您可以在 PyCollada 中创建一个网格并获取纹理坐标,如下所示:

from collada import Collada
mesh = Collada("my_model.dae")
geometries = [g for g in mesh.geometries] # gets a list of the geometries
tex_paths = [im.path for im in mesh.images] # gets a list of the texture paths

但是,我遇到的问题是纹理路径和几何图形不共享索引,并且我似乎找不到一种抽象的方式来始终将几何图形映射到其漫反射纹理文件。对此有什么提示吗?

我想通了,这就是我的做法:

rel_path = "../../../"
tex_paths = []
# iterate over geometries in the mesh
for geom in mesh.geometries:
abs_path = mesh.materials[geom.primitives[0].material].effect.params[0].image.path
tex_paths.append(rel_path + abs_path)

其中rel_path只是相对于模型和纹理所在的 Python 脚本的路径。

最新更新