自由曲面ではなくて、ポリゴンメッシュでもモデリングする練習を先日からしている。
色々作成してはレンダリングしているのだが、設定項目の中に、「スムーズ」というのがある。
Shade リファレンスマニュアルの説明を引用すると以下のようになっている(以下、リファレンスマニュアルから引用)。
「スムーズ」チェックボックス
オンにすると、隣り合う面との角度が「限界角度」の値以下のとき、面の法線ベクトルを補間してスムーズシェーディングを行います。
「限界角度」の値以上のときは、稜線が表示されます。シェーディング表示にも反映されます。(引用ここまで)
これについて、よく分からなかったので色々確かめてみた。
ポリゴンメッシュのオブジェクトを選択して、メニューの表示→形状情報と選択すると出てくるこのウィンドウの設定項目のことである。ポリゴンメッシュ属性のスムーズってやつ。

このチェックボックスがスムーズシェーディングを有効にするためのものだということはマニュアルの記述からも分かったし、実際に何か作成してチェックする/しない状態でレンダリングして比較すると違いが出るので、どういう効果なのかは理解できる。
この設定には、限界角度、という設定項目があるのだが、これがよく分からない。どう設定するとどうなるのだろう?
リファレンスマニュアルには、スムーズシェーディングを行うときの限界角度、と書かれている。設定値の範囲は0〜180度と書かれている。
隣り合う面との角度が限界角度の値以下の時、というのは分かったのだけれども、どこの角度のことなのか分からないので、結局なんだかよく分からない。たぶん各平面の法線が交わったときの角度だろうと予想はつくのだけれど、実際に実験してみた。
実験のため、正四面体、六面体、八面体、十二面体、二十面体をそれぞれ作成して、ポリゴンメッシュにコンバートしたものを設定を変更してレンダリングしたものが以下の画像だ。
限界角度 45

限界角度 75

限界角度 90

限界角度 120。なお、これだけは、限界角度 30 のものと比較のために並べている。手前側が限界角度30のものである。

実験してみて、限界角度を大きくしていくと、鋭角な稜線でもスムーズシェーディングがかかることが分かった。
他にも色々な設定を試したのだが、薄々予想していたとおり、限界角度は隣り合う面との法線の作る角度についての設定だと言うことが分かってきた。試しに計算してみればいいのだが、そこまでは面倒なのでやっていない。
設定値については、限界角度 90 が一つの目安になるのかな、と勝手に思っている。
限界角度 90 にしておくと、直角以上の鋭角については、スムーズシェーディング処理がされない、ということ。だから、90 以上の値にしておけば、大抵の稜線にはスムーズシェーディングがかかるのかな、と。逆に、逆にあまりスムーズシェーディングを使わず、細かくポリゴン分割して作り込んだところ、つまり曲面っぽいところだけスムーズシェーディングをかけたいなら小さい値にしていけばよい、ってことになるか。
よし、これで一つ機能を理解した、と。
ところで、デフォルト値 30 なのが何故だかよく分からん。もっと大きい値の方が使い勝手がいいんじゃないのかな、と個人的には思うけど。
ポリゴンメッシュ属性に、「角の丸め」っていう設定項目もあるのだが、こちらはまたの機会にやってみたい。
トラックバックURL
コメントをどうぞ



