instancedBufferAttribute
instancedBufferAttribute
在 TSL 中创建一个节点,该节点直接代表 JavaScript 中的 InstancedBufferAttribute 数据,作为从 CPU 到 GPU 的“每实例数据”的入口点。
核心优势
通过将 JavaScript 数据数组与 TSL 节点直接关联,消除了手动声明和名称匹配的风险,提供了类型安全和统一的编程模型,极大地简化了实例化渲染的工作流。
常见用途
大规模静态场景(实例变换矩阵)
高性能粒子系统(初始速度、生命周期)
数据可视化(柱状图高度、颜色)
程序化材质变化(随机颜色、粗糙度)
如何调整
主要通过在 JavaScript 中修改其引用的 TypedArray 数据,然后必须设置 `.needsUpdate = true` 来将更新推送到 GPU。例如,通过交互改变数组中某个实例的缩放值,可以实时看到对应立方体的大小变化。
代码示例
1// JS 端: 创建一个节点来代表实例缩放数据
2const scaleNode = instancedBufferAttribute( scalesArray, 'vec3' );
3
4// TSL 端 (顶点着色器): 使用该节点来缩放顶点
5position.mulAssign( scaleNode );