Return
Return
在自定义函数(Fn 节点)内部,提前终止函数执行并返回,功能等同于编程语言中的 `return;` 关键字。
核心优势
它通过“守护语句”(Guard Clause)模式极大地提升了代码的可读性和整洁性,并允许通过提前退出跳过不必要的计算,从而优化着色器性能。它为 TSL 带来了基础但至关重要的函数级控制流。
常见用途
作为性能守卫,在函数开头检查距离等条件,若不满足则提前返回以实现 LOD。
作为逻辑开关,根据光照等条件决定是否执行一个昂贵的效果计算。
与 `If` 配合创建清晰的逻辑分支,避免深层嵌套。
作为调试断点,临时插入函数中以检查某一步的中间计算结果。
如何调整
Return 节点本身不可配置。调整其效果实际上是调整触发它的 `If` 条件。例如,在一个根据半径绘制圆形的函数中,如果 `Return` 的条件是 `distance > radius`,那么减小 `radius` 的值会让更多像素满足条件并提前退出,从而在视觉上缩小了绘制的圆形。
代码示例
1// 在一个自定义函数 (Fn) 内部
2const len = length( uv().sub( 0.5 ) );
3
4// 如果像素在半径之外,则提前退出函数
5If( len.greaterThan( radius ), [
6 Return()
7] );
8
9// ... 只有在圆内的像素才会执行到这里的复杂颜色计算