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

Is there a way to find the file path for a texture on a PyCollada geometry?

我要解决的问题是我在搅拌机中创建了一个模型,其中包含多个独立的几何图形,每个几何图形都有自己的纹理文件。

据我了解,您可以在 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 脚本的相对路径。