KDTree扭曲缓冲几何

时间:2014-05-28 17:02:37

标签: three.js

我有一个BufferGeometry,它有许多有色的面。当我尝试使用

将KDTree应用于BufferGeometry的位置时

new THREE.TypedArrayUtils.Kdtree(bufferGeometry.attributes.position.array, distanceFunction, 3);

我的几何形状被扭曲为:enter image description here

如果它应该是这样的: enter image description here

2 个答案:

答案 0 :(得分:0)

THREE.TypedArrayUtils.Kdtree对提供的数组进行就地排序。您可以复制数组,然后查看它是否有效。

new THREE.TypedArrayUtils.Kdtree(bufferGeometry.attributes.position.array.slice(0), distanceFunction, 3);

请注意.slice(0);

答案 1 :(得分:0)

我发现你必须初始化一个新的Float32Array,然后将该变量设置为另一个变量的数组,而不是subarray(0)

var newArray = new Float32Array(bufferGeometry.attributes.position.array.length);
newArray.set(bufferGeometry.attributes.position.array);