string
string
string 节点用于将一个 JavaScript 字符串封装起来,作为 TSL 节点图在编译期间使用的“标识符”或“元数据”。它本身不会生成到最终的着色器代码中,而是用来配置其他节点,例如通过名称指定要访问的顶点属性。
核心优势
允许开发者使用直观、可读的名称(如 'uv', 'color')来引用着色器资源和配置节点行为,极大地提高了代码的可读性与可维护性。
常见用途
通过名称指定要读取的顶点属性,与 `attribute()` 节点配合使用。
定义存储缓冲区(Buffer)中元素的数据类型,如 'vec3' 或 'float'。
在复杂节点中作为选择器,以获取特定的输出,如光照模型中的 'specular' 分量。
如何调整
调整其字符串值会引起着色器行为的“切换”或“中断”,而非平滑的视觉渐变。例如,将 'uv' 改为 'uv2' 会切换到另一套纹理坐标;而提供一个不存在的属性名则会导致编译错误和渲染异常。
代码示例
1// 使用 string('noiseStrength') 按名称获取顶点属性
2const noiseValueNode = attribute(string('noiseStrength'));
3// 并将其用作颜色
4material.colorNode = vec3(noiseValueNode);