Rounded Rectangle 节点
描述
以输入 Width 和 Height 指定的大小基于输入 UV 生成圆角矩形。每个角的半径由输入 Radius 定义。通过连接 Tiling And Offset 节点可以偏移或平铺生成的形状。请注意,为了保留在 UV 空间内偏移形状的能力,如果经过平铺,形状将不会自动重复。要实现重复圆角矩形效果,应首先通过 Fraction 节点连接输入。
端口
名称 | 方向 | 类型 | 绑定 | 描述 |
---|---|---|---|---|
UV | 输入 | 矢量 2 | UV | 输入 UV 值 |
Width | 输入 | Float | 无 | 圆角矩形宽度 |
Height | 输入 | Float | 无 | 圆角矩形高度 |
Radius | 输入 | Float | 无 | 圆角半径 |
Out | 输出 | Float | 无 | 输出值 |
生成的代码示例
以下示例代码表示此节点的一种可能结果。
void Unity_RoundedRectangle_float(float2 UV, float Width, float Height, float Radius, out float Out)
{
Radius = max(min(min(abs(Radius * 2), abs(Width)), abs(Height)), 1e-5);
float2 uv = abs(UV * 2 - 1) - float2(Width, Height) + Radius;
float d = length(max(0, uv)) / Radius;
Out = saturate((1 - d) / fwidth(d));
}