Javascript 在三个js中修改实例化缓冲区属性的数组
我在修改three.js中InstancedBufferAttribute数组的内容时遇到问题-我可以将其设置得很好,网格会按预期渲染,但是运行以下代码来修改属性的内容Javascript 在三个js中修改实例化缓冲区属性的数组,javascript,kotlin,three.js,Javascript,Kotlin,Three.js,我在修改three.js中InstancedBufferAttribute数组的内容时遇到问题-我可以将其设置得很好,网格会按预期渲染,但是运行以下代码来修改属性的内容 heights.set(x + y * params.patchWidth, height.toFloat()) heightAttribute.needsUpdate = true 什么都不做(请注意,这是kotlin编译为JS,用于解释toFloat()和其他特性)。在调试过程中,我可以看到
heights.set(x + y * params.patchWidth, height.toFloat())
heightAttribute.needsUpdate = true
什么都不做(请注意,这是kotlin编译为JS,用于解释toFloat()和其他特性)。在调试过程中,我可以看到在设置needsUpdate之后,它会立即变得未定义,并且版本会增加。我还尝试将分配给属性的数组更改为包含修改值的新数组,但没有成功。最后,将属性设置为dynamic也没有帮助。“设置needsUpdate后,它会立即变得未定义,并且版本会增加。”-这正是它应该如何工作的:从您的代码中,我们看不到
高度
和高度属性
之间的联系。你能试着直接使用heightsAttribute.array
吗?@Martin是的,我想这就是needsUpdate的工作原理。我将尝试直接修改heightsAttribute.array(heights是传递给属性构造函数的初始Float32Array),只是为了确认直接修改heightsAttribute.array不起作用work@Andy您能提供一个实时代码示例吗?或者更多的代码,其他人可以理解您尝试做什么和如何做。