getCurrentStack
getCurrentStack
一个 TSL 内部的 JavaScript 辅助函数,用于在编译期间全局访问当前的编译上下文(如着色器阶段、构建器等)。
核心优势
通过提供对编译上下文的全局访问,它极大地简化了节点内部的实现,避免了繁琐的“参数钻孔”,并使节点能够轻松实现上下文感知行为(如区分顶点/片元阶段)。
常见用途
在节点内部实现特定于着色器阶段的逻辑。
协调 Varying 变量在顶点和片元阶段的声明与使用。
自动向构建器注册所需的 Uniforms。
实现函数定义的缓存以避免重复生成代码。
如何调整
这是一个无参数的内部函数,无法调整。它的正常工作是 TSL 材质能正确编译和渲染的基础。如果它失效,就好比‘神经系统’中断,会导致编译失败或光照、动画等效果完全错误,物体可能变黑或呈剪影状。
代码示例
1// 在一个节点内部的概念性用法:
2const stack = getCurrentStack();
3if ( stack.shaderStage === 'vertex' ) {
4 // 执行顶点阶段特有的逻辑...
5}