instance
instance
在 TSL 中访问实例化渲染(InstancedMesh)中每个实例独有的数据,如其特定的位置、颜色或大小。
核心优势
将“获取当前实例的特定属性”这一常用操作封装为单一调用,极大地简化了实例化渲染的着色器逻辑,提高了代码的可读性和安全性,并与 TSL 生态无缝集成。
常见用途
大规模程序化场景(森林、城市)
高性能粒子系统(雨、雪、火花)
数据可视化(3D 柱状图)
动画角色集群(人群、鱼群)
如何调整
切换 `instance()` 内部引用的 `attribute()` 节点会改变读取的数据源,例如将颜色属性切换为位置属性,会使物体的颜色由其空间位置决定。更高级的调整是动态修改其索引参数,可以实现让实例读取其他实例的数据,创造出“洗牌”或“流动”的动画效果。
代码示例
1// 获取当前实例独有的颜色属性
2const instanceColor = instance( attribute( 'instanceColor', 'vec3' ) );
3
4// 将实例颜色赋值给材质的最终颜色
5material.colorNode = instanceColor;