Rounded Edge


どうも篠島です。2月のセミナーでかるーく説明したレンダリング関連の新機能のRounded Edgeについて説明したいと思います。

 

Rounded Edgeとは

下のGIFを見てもらうと分かるのですが、エッジの立ったジオメトリをレンダリング時にエッジの法線を丸めてしまっていかにもベベルが掛かっているように見せる技です。シェーディングポイントの周りの面にレイを飛ばし、法線をブレンドしています。ベイクしてテクスチャ作ればゲームで大活躍しそうな機能ですね!

 

H16.5でRounded ROPというノードが作られ、このノードのroundNというアウトプットからブレンドされた法線が出力されるわけです。

 

maskのアウトプットからは白黒のマスクが出力され、マテリアル同士のブレンド用のマスクに使えます。ちなみに下のマスクはオブジェクトのroundedEdge_radiusアトリビュートを元に強弱をつけています。

 

そのマスクにノイズを掛けて塗装が剥げたようなシェーダーも簡単に作れます。

 

パラメーターは基本的にはRadius と Concave and Convex Edges だけいじれば大丈夫です。実際に実装している Principled Shader もこの2つのパラメーターしか露出してません。Concave and Convex Edges は凸の部分か凹の部分のエッジのどっちを処理するかという物です。