gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:32:26 24 4
gpt4 key购买 nike

我试图理解 collada 文件的结构。具体来说,我正在使用库 pycollada ( https://github.com/pycollada/pycollada )。我有 2 个问题。

问题 1:

查看从头开始创建文件的教程 ( http://pycollada.github.io/creating.html ),我不明白的是 Collada 对象的结构。特别是,查看以下代码行似乎网格用于创建几何图形,并且几何图形包含在网格中:

>>> mesh = Collada()
>>> geom = geometry.Geometry(mesh, "geometry0", "mycube", [vert_src, normal_src])

之后几行

>>> triset = geom.createTriangleSet(indices, input_list, "materialref")
>>> geom.primitives.append(triset)
>>> mesh.geometries.append(geom)

有人有清晰的 Collada 文件结构吗?可能是一种视觉表示,以了解什么在哪里。

问题 2:

如果我想要 2 个不同的对象(这里我指的是 Collada 文件内的 2 个不同的 3D 对象,例如立方体和球体),我应该在哪里添加第二个对象?网格内部是否有第二个几何对象,或者几何内部是否有第二个 TriangleSet,或者以不同的方式定义?

最佳答案

<geometry> COLLADA 中的元素是描述几何形状的信息的容器。创建数字 Assets 时可能存在 3D 对象的表示形式。多边形网格只是这些表示可能性之一。另一种可能性可能是例如 <brep> .

基于多边形的几何描述作为 <mesh> 的子元素包含在内<geometry> 下的元素。这些元素是<lines> , <linestrips> , <polygons> , <polylists> , <triangles> , <trifans><tristrips> .

所以结构看起来像:我有一个 <geometry> -> 哪一种? ->即<mesh> -> 包含哪些基于多边形的几何图形? ->即<triangles>让我向您展示COLLADA中几何体的内部结构:

Structure of triangle-based mesh geometry in COLLADA

您可以在 <source> 中定义 3D 空间中的点的位置。元素为 <float_array>以及 <p> 下的索引<triangles>下的元素。 <p>在本例中,element 不仅定义了顶点,还定义了法线。

对于你的第二个问题,你可以将其定义为第二个 <geometry>在您的几何库中,或元素下的网格的一部分。但是,如果您稍后必须将它们分开使用,例如您想要创建 2 个立方体实例,一个是绿色,另一个是蓝色,以及 1 个球体实例,则不应在同一网格下执行此操作。您应该将它们定义为两个独立的几何对象。这取决于您的情况。

关于python - Collada (*.dae) 文件结构和 Pycollada,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40719661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com