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

Posted

技术标签:

【中文标题】有没有办法在 PyCollada 几何图形上找到纹理的文件路径?【英文标题】:Is there a way to find the file path for a texture on a PyCollada geometry? 【发布时间】:2020-10-23 10:44:36 【问题描述】:

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

据我了解,您可以在 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

但是,我遇到的问题是纹理路径和几何图形不共享索引,而且我似乎无法找到一种抽象的方式将几何图形一致地映射到其漫反射纹理文件。有什么建议吗?

【问题讨论】:

【参考方案1】:

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

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 脚本的路径。

【讨论】:

以上是关于有没有办法在 PyCollada 几何图形上找到纹理的文件路径?的主要内容,如果未能解决你的问题,请参考以下文章

使用 pycollada 制作 3d 线条

webgl 纹理

使用 pycollada 对 3d 块进行纹理处理

Collada (*.dae) 文件结构和 Pycollada

SCNMaterial 防止拉伸

如何在 pycollada 中创建 collada 对象