PBRマテリアル使用時に陰(シェーディング)がでた場合の対処法
ver.20
PBRマテリアル使用時に、以下のように不正な陰が出る場合があります。
比較的単純な形状に対してスムーズシェーディングを行っている場合に発生しやすいです。
PBRマテリアルは以下のように、ごく普通の指定を行っています。
これは、頂点ごとの法線ベクトルの補間、PBRマテリアルの反射によって起きる現象です。
この時の形状は以下のようになっています。
左がフォンシェーディング、右が法線の表示です。
直方体のエッジを面取りした単純なポリゴンメッシュ形状です。
「限界角度」(ポリゴンメッシュの形状情報ウィンドウで表示)を50としており、
この場合は直方体の角部分がスムーズシェーディングされている状態です。
このような場合は「限界角度」を小さくし、スムーズシェーディングによる法線ベクトルの丸め込みが起きにくいようにします。
「限界角度」を30としました。
左がフォンシェーディング、右が法線の表示です。
レンダリングすると以下のようになりました。
スムーズシェーディングをある程度保ったままシェーディングを改善
上記の場合はエッジの角部分が鋭利になることになります。
サブディビジョンサーフェスで「カトマル・クラーク」を使用すると改善できます(ポリゴンメッシュの分割数を増やして輪郭もある程度保つ)。
形状情報ウィンドウで「限界角度」を50、「分割手法」を「カトマル・クラーク」、「適用率」を0.2としました。
左がフォンシェーディング、右が法線の表示です。
レンダリングすると、以下のように不正なシェーディングが緩和されました。