我正在将更多对象合并在一起以创建BufferGeometry。在合并期间,我想要填充一个缓冲区,稍后我将使用该缓冲区向BufferGeometry添加属性。因此,我需要在创建BufferedGeometry之前知道缓冲区的大小。
要计算缓冲区的大小,我要计算该几何中顶点的数量,加上面数乘以3.正如此代码所示https://github.com/mrdoob/three.js/blob/master/src/core/DirectGeometry.js#L148,这个答案表明{{3} }
但是这样做,缓冲几何中的顶点数是57600,我计算的那个是67400.我做错了但是我不明白到底是什么。
这是我正在使用的代码:
{{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
个顶点。