我有一个BufferGeometry,它有许多有色的面。当我尝试使用
将KDTree应用于BufferGeometry的位置时 new THREE.TypedArrayUtils.Kdtree(bufferGeometry.attributes.position.array, distanceFunction, 3);
我的几何形状被扭曲为:
如果它应该是这样的:
答案 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);