为什么合并几何中的顶点数量与从中获取的BufferedGeometry中的顶点数量不同?

时间:2017-02-09 07:35:29

标签: three.js

我正在将更多对象合并在一起以创建BufferGeometry。在合并期间,我想要填充一个缓冲区,稍后我将使用该缓冲区向BufferGeometry添加属性。因此,我需要在创建BufferedGeometry之前知道缓冲区的大小。

要计算缓冲区的大小,我要计算该几何中顶点的数量,加上面数乘以3.正如此代码所示https://github.com/mrdoob/three.js/blob/master/src/core/DirectGeometry.js#L148,这个答案表明{{3} }

但是这样做,缓冲几何中的顶点数是57600,我计算的那个是67400.我做错了但是我不明白到底是什么。

这是我正在使用的代码:

{{1}}

1 个答案:

答案 0 :(得分:2)

在非索引的BufferGeometry中,position属性数组的长度始终为numberOfFaces * 3 * 3(每个面3个顶点,每个顶点3个值)。这也是你指向的DirectGeometry的代码所做的:它遍历面并将每个面的三个顶点推到顶点数组。

在所有方向上包含4个细分的框几何图形有192个面:每边4 * 4 = 16个细分,每个细分为2个三角形,每边生成16 * 2 = 32个面。并32 * 6 = 192。您有100这些框几何图形,因此总共有19200个面。时间3我们得到57600个顶点。