wgsl
wgsl
提供一个“逃生通道”,允许开发者将原生 WGSL (WebGPU Shading Language) 代码片段直接集成到 TSL 节点图中进行调用。
核心优势
核心优势是提供了无限的灵活性和原生性能。开发者可以利用 WGSL 的全部功能来实现 TSL 未内置的复杂效果或进行极致的性能优化,并能轻松复用社区中已有的 WGSL 代码库。
常见用途
实现自定义光照模型(如卡通渲染、各向异性材质)
编写高性能的程序化噪声或分形图案
在计算着色器中执行通用计算(GPGPU)
如何调整
调整此节点主要有两种方式:1. 直接修改传入构造函数的 WGSL 源码字符串,以从根本上改变其算法。 2. 保持源码不变,但在调用 `.call()` 方法时传入不同的 TSL 节点作为参数,以改变函数的输入数据源。
代码示例
1// 定义一个包含 WGSL 函数的 TSL 节点
2const mixColorsFn = wgsl(`
3 fn lerpColors( a: vec3<f32>, b: vec3<f32>, t: f32 ) -> vec3<f32> {
4 return mix(a, b, t);
5 }
6`);
7
8// 使用 .call() 调用 WGSL 函数,将其他 TSL 节点作为参数传入
9const finalColor = mixColorsFn.call({
10 a: colorNodeA,
11 b: colorNodeB,
12 t: 0.5
13});