Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Collada(*.dae)文件结构和Pycollada_Python_Graphics_Rendering_Collada_3d Modelling - Fatal编程技术网

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

Python Collada(*.dae)文件结构和Pycollada,python,graphics,rendering,collada,3d-modelling,Python,Graphics,Rendering,Collada,3d Modelling,我试图理解collada文件的结构。具体来说,我使用的是pycollada()库。我有两个问题 问题1: 看看从头开始创建文件的教程(),我不了解Collada对象的结构。特别是,查看以下代码行似乎可以使用网格创建几何体,并且几何体包含在网格中: >>> mesh = Collada() >>> geom = geometry.Geometry(mesh, "geometry0", "mycube", [vert_src, normal_src]) 几行之后

我试图理解collada文件的结构。具体来说,我使用的是pycollada()库。我有两个问题

问题1

看看从头开始创建文件的教程(),我不了解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

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

COLLADA中的
元素是描述几何图形的信息容器。创建数字资源时,可能存在三维对象的表示形式。多边形网格只是这些表示方法中的一种。另一种可能是,例如

基于多边形的几何图形描述作为
元素的子元素包含在
下。这些元素是

所以结构看起来像:我有一个
->哪种?->i、 e.
->包含哪些基于多边形的几何体?->i、 e.
让我向您展示COLLADA中几何体的内部结构:

您可以使用
元素中定义点在三维空间中的位置,并在
元素下定义索引
元素不仅定义了该示例中的顶点,还定义了法线


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

您能解释一下浮点数组的内容吗?为什么它的hve
60
计数以及它们代表什么?另外,
标记之间的数字代表什么?@VivekBagaria再次澄清,浮点数组(在本文中)定义了点在三维空间中的位置,即点的X、Y、Z值。60是点数。在本例中,第一个点的位置为-3000,-3000,0。p定义索引,第一个用于顶点索引,第二个用于法线索引。在本例中,17是第一个点的索引,17是法线的索引(即宇宙中的同一点),15是第二个点,15是第二个法线,依此类推。