看看例子http://mrdoob.github.com/three.js/examples/webgl_buffergeometry_particles.html
位置缓冲区的设置方式如下:
var particles = 500000;
var geometry = new THREE.BufferGeometry();
geometry.attributes = {
position: {
itemSize: 3,
array: new Float32Array( particles * 3 ),
numItems: particles * 3
},
如果 T = geometry.attributes.position,那么 T.array.length / T.itemSize === T.numItems 是否总是如此?如果数组的长度为 L 个 slot,并且每个 item 占用 K 个 slot,那么有 L/K 个 item 是理所当然的。然而,这个例子似乎满足了数组有 L 个项目?L 个项目将占用 L * K 个插槽:s
我也遇到了位置问题,并且只有前 1/3 的顶点被渲染,因为我使用顶点数作为 numItems,并且 itemSize = 3,长度为 numItems * itemSize 的 Float32Array。
我有什么误解?
谢谢!