nodeObject
nodeObject
在共享材质中创建一个占位符,允许在渲染时从每个物体自身的属性(userData)中动态读取数据。
核心优势
通过解耦数据与逻辑,它允许成千上万的物体共享同一材质,同时保持各自独立的属性,从而实现极致的性能和内存效率。
常见用途
批量定制不同物体的颜色
独立控制单个物体的特效强度或开关
为群体动画添加随机偏移
如何调整
在运行时,通过修改单个物体 `userData` 中存储的节点(例如,将一个静态颜色节点换成另一个),可以实时、独立地改变该物体的着色器行为,而其他共享同一材质的物体不受影响。
代码示例
1// 材质中:使用 nodeObject 作为占位符
2material.colorNode = perObjectColor;
3
4// 物体上:通过 userData 提供具体节点
5mesh.userData.perObjectColor = color( 'red' );