nodeObjects
nodeObjects
将一个 JavaScript 对象数组自动映射为可在着色器中访问的 uniform 数组,使单个材质能感知并响应场景中的多个其他物体。
核心优势
通过自动化数据聚合,它赋予了材质感知场景中多个对象的能力,极大地简化了创建复杂环境交互效果(如水面涟漪、多光源照明)的过程。
常见用途
实现自定义多光源渲染
创建群体感知的视觉特效(如引力场)
模拟环境交互效果(如水面涟漪、草地踩踏)
如何调整
通过在 JavaScript 中修改源数组(如 `push` 一个新物体或 `pop` 一个旧物体),可以实时地增减着色器中可访问的对象数量,从而动态地添加或移除视觉效果,例如在场景中凭空出现一个新的光源。
代码示例
1// 追踪一个 JS 对象数组
2const lightObjects = nodeObjects( lights );
3
4// 在着色器中获取所有对象的位置数组 (vec3[])
5const lightPositions = lightObjects.position;