array
array
一个用于在着色器中创建和管理数据数组的节点,它简化了从 CPU 到 GPU 的批量数据传输,并支持强大的动态索引访问。
核心优势
核心优势在于将底层的 GLSL 数组抽象为一个简单的函数,并提供了强大的动态索引能力(即使用一个变量作为索引来访问数组成员),这使得基于循环和数据驱动的复杂效果(如多光源、粒子系统)的实现变得简单直观。
常见用途
管理多个动态光源的位置和颜色
作为预设的颜色调色板(查找表)以实现风格化渲染
为骨骼动画传递骨骼变换矩阵数组
如何调整
主要通过两种方式调整:1. 在 JavaScript 中修改节点的 `.value` 属性,可以实时更新整个数组的数据内容(例如,将调色板从红黄蓝变为黑白灰)。2. 改变传递给 `.element()` 方法的索引节点,可以动态地改变数据访问模式(例如,使用 `timer` 节点作为索引,使静态的颜色数组循环闪烁)。
代码示例
1
2// 创建一个包含三种颜色的调色板数组
3const palette = array( [ color('red'), color('yellow'), color('blue') ] );
4
5// 使用一个动态索引(如基于UV坐标)从数组中取色
6const finalColor = palette.element( floor( uv().x.mul( 3 ) ) );
7