glsl
glsl
允许在 TSL 节点图中无缝嵌入和执行原生 GLSL 代码片段,为 TSL 系统提供了终极的灵活性和扩展能力。
核心优势
核心优势在于能够无缝集成其他 TSL 节点作为输入,轻松复用现有的 GLSL 代码库(如 Shadertoy 代码),并作为 TSL 系统的“后门”,在现有节点无法满足需求时,保证开发者总能用原生 GLSL 实现任何复杂逻辑。
常见用途
实现自定义噪声函数(如 Worley 噪声)
集成现有的颜色校正或图像滤镜算法
编写复杂的程序化几何图案或分形
调用 TSL 未封装的特定 GLSL 内置函数
如何调整
通过两种主要方式调整:1. 直接修改其 `src` 参数中的 GLSL 代码字符串,从根本上改变其逻辑。2. 改变连接到其输入(如 `${intensity}`)的 TSL 节点。例如,将一个固定的 `uniform(2.0)` 输入替换为随时间变化的 `timerLocal()`,可以使静态效果变为动态效果。
代码示例
1// 使用模板字符串定义输入,并返回处理后的颜色
2const myEffect = glsl( 'return ${color}.rgb * ${intensity};' );
3
4// 通过 .inputs 属性连接 TSL 节点作为输入
5myEffect.inputs.color = texture( map );
6myEffect.inputs.intensity = uniform( 2.0 );