用途:处理 Three.js Shading Language(TSL)相关的材质、节点图、WebGPU 计算与后处理任务,包括实现、迁移、审查、调试和验证。适用于 TSL/WebGPU 任务,而非重写无关的 GLSL 或 WebGL 代码。
主要能力与方式:以项目实际安装的 three 与 @types/three 版本为准,先阅读最近的 package.json、渲染器配置、被改动的材质或 pass、TypeScript 配置及相关测试,再检查导出与声明,不凭记忆中的 API 行事。按任务表面选择参考:材质属性或顶点变形用 nodes.md;存储缓冲区或计算分发用 compute.md;全屏 pass、MRT、深度或邻接采样用 postprocessing.md;现有 GLSL 或 ShaderMaterial 迁移用 migration.md;类型错误或源码路径导入用 typescript.md;浏览器/GPU 证据用 verification.md。
核心要点:TSL 的 JavaScript 在构建节点图,生成的着色器稍后在 GPU 上运行。仅在图构建期已知的结构使用普通 JavaScript,逐顶点、逐片元或逐调用行为使用 TSL 节点。从 three/tsl 导入 TSL,渲染器与类来自 three/webgpu。需要节点值时以 Fn(() => expression)() 调用。使用 TSL 操作而非 JavaScript 运算符。变更前先 .toVar(),再用 .assign() 或复合赋值。通过 .value 更新运行时 uniform;改变图结构需重建图。运行时 GPU 控制流使用 If、Loop 等控制节点。首次 WebGPU 渲染或计算分发前 await renderer.init()。
完成门槛:需通过项目类型检查与 lint;真实浏览器初始化实际渲染器并执行改动的图;测试断言所选后端而非把回退当作 WebGPU 或 WebGL2 证据;着色器编译、浏览器控制台与 WebGPU 验证错误应使测试失败;分支、循环、重复工作与特化的结论需对照生成的着色器程序验证;用确定性值或截图证明结果;计算与渲染顺序应具因果性而非依赖休眠;硬件 GPU 结论需来自明确的本地 GPU 通道。
限制:该技能改编自 thejustinwalsh/three-flatland 的 skills/tsl(提交 2935a89fcd9999e8a8b3d3b733f7f7302285cd60),仓库固定的 Three.js 源码与声明是操作权威。官方文本暂未提供。