如何在 pycollada 中创建 collada 对象

Posted

技术标签:

【中文标题】如何在 pycollada 中创建 collada 对象【英文标题】:How to create collada objects in pycollada 【发布时间】:2020-08-01 16:56:27 【问题描述】:

目标:我想在 3-D 空间中创建一个包含 5-10 个长方体的 collada 对象/文件。

但是,我发现很难按照文档 here 创建上述对象。特别是,我无法理解以下内容:

>>> vert_floats = [-50,50,50,50,50,50,-50,-50,50,50,
         -50,50,-50,50,-50,50,50,-50,-50,-50,-50,50,-50,-50]
>>> normal_floats = [0,0,1,0,0,1,0,0,1,0,0,1,0,1,0,
        0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,-1,0,0,
        -1,0,0,-1,0,0,-1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,-1,
        0,0,-1,0,0,-1,0,0,-1]
    什么是normal_floatsvert_floats 变量?这些数组中的元素代表什么?为什么我们分别有 24 和 72 个元素?
>>> indices = numpy.array([0,0,2,1,3,2,0,0,3,2,1,3,0,4,1,5,5,6,0,
...     4,5,6,4,7,6,8,7,9,3,10,6,8,3,10,2,11,0,12,
...     4,13,6,14,0,12,6,14,2,15,3,16,7,17,5,18,3,
...     16,5,18,1,19,5,20,7,21,6,22,5,20,6,22,4,23])
    indices 变量是什么?在这里,这些元素是什么意思?这些数组也有 72 个元素

上面的代码是产生下面的立方体

提前致谢!

【问题讨论】:

【参考方案1】:

vert_floats 是顶点源数据。 normal_floats 是正常的源数据。数组中的 indices 索引。我建议花一些时间熟悉 Collada 规范。这个页面有一个很好的概述:

http://www.wazim.com/Collada_Tutorial_1.htm

【讨论】:

感谢您的回答!你能解释一下vert_floatsnormal_floatindices 中选择的值是如何产生上述立方体的吗?换句话说,如果需要生产一个立方体,如何得出这些值? 对不起,我的一些答案丢失了。已更新。

以上是关于如何在 pycollada 中创建 collada 对象的主要内容,如果未能解决你的问题,请参考以下文章

使用 pycollada 制作 3d 线条

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

如何从对象面的顶点信息创建 collada 文件?

从 Collada (.dae) 文件(在 Maya 中创建)导入的 SceneKit 键控混合形状动画未播放

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

SceneKit 进口的 COLLADA 盒子未“点亮”