degrees
degrees
一个语义化的函数节点,用于将输入值从弧度(Radians)转换为角度(Degrees)。
核心优势
提供了比 `new MathNode(MathNode.DEGREES, ...)` 更简洁、可读性更高的接口。`degrees(angle)` 的写法清晰地表达了其意图,减少了代码量并防止了因手动配置节点而出错。
常见用途
基于角度的条件逻辑判断,例如判断物体旋转角度是否在特定范围内。
调试和可视化,将复杂的弧度值转换为直观的角度并映射为颜色进行显示。
驱动圆锥形或径向渐变,将 `atan2` 输出的弧度转换为 0-1 范围以供纹理采样。
作为 `radians()` 节点的逆运算,完善了 TSL 中的角度与弧度单位转换体系。
如何调整
该节点本身是纯数学转换,其效果体现在如何使用其输出值。例如,在“吃豆人”效果中,`degrees` 节点将 `atan2` 计算出的内部弧度角“翻译”成直观的角度值。然后,通过与一个从 JS 传入的 `openingAngle` (0-360) uniform 变量进行比较,可以动态地、交互式地控制屏幕上扇形遮罩的张开大小。
代码示例
1const angleRad = atan2( uv.y - 0.5, uv.x - 0.5 );
2const angleDeg = degrees( angleRad ); // 将弧度 [-PI, PI] 转换为角度 [-180, 180]