Rounded Rectangle ノード
説明
入力 UV に基づいて、入力 Width および Height に指定されたサイズの、角を丸めた四角形を生成します。各角の半径は入力 Radius によって定義されます。Tiling And Offset ノード を接続すると、生成されたシェイプのオフセットやタイル化が可能です。UV 空間内でのシェイプのオフセット機能を維持するため、タイル化の際にシェイプは自動的に反復されないようになっています。角を丸めた四角形の反復効果を作り出すには、まず Fraction ノード を使って入力を接続してください。
注意: この ノード は、Fragment シェーダーステージ でのみ使用可能です。
ポート
Name | Direction | タイプ | バインディング | 説明 |
---|---|---|---|---|
UV | 入力 | Vector 2 | UV | 入力 UV 値 |
Width | 入力 | Vector 1 | なし | 角を丸めた四角形の幅 |
Height | 入力 | Vector 1 | なし | 角を丸めた四角形の高さ |
Radius | 入力 | Vector 1 | なし | 角の丸み |
Out | 出力 | Vector 1 | なし | 出力値 |
生成されるコードの例
以下のサンプルコードは、このノードの出力の一例を示したものです。
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));
}