2012/06/28

modo601 Portal

今更ながらですが、某所での反応が大きかったのでmodo601のPortalについて。
modo601のPortalは、他のソフトにもわりと実装されている機能で、スカイポータルとかポータルライトなどと言われたりもしています。
modo601のPortalについては、すでにいろんなブログで検証されたりしていますが、
少し見方を変えた(ひねくれた)「hibi流」の検証をしてみたいと思います。

modoのヘルプには、「Portal (ポータル) は、自分自身が光を発しないことから、通常のライトとは性格が異なります。照明そのものよりも、光のコントロールが主な役割であり、とくに大域照明に依存する屋内のレンダリングで活躍します。レイ (光線) を集めて特定の領域に集中させるものと考えてください。」
また、「ポータルの置き場所は、その名が示すとおり、窓やドアや天窓など、室内に光が入ってくるところです。」
また、「ポータルはレンダリングに大変に時間のかかるアイテムなので」
この辺りに注目してみたいと思います。
では、cornelboxを使って検証してみます。
まず、「Portal (ポータル) は、自分自身が光を発しない」と言ってますが、hibiマジックで自分自身から光を出してみましょう!
こんなセッティングをしてみました。
cornelboxは前面もふさいであります。
真上からDirectional Lightでライティングしています。
大域照明はオフで、アンビエント輝度も0なので、真下の床のDirectional Lightが直接当たったところだけが、明るくなっています。
では、床の光が当たった付近にPortalを上を向けて置いてみます。
わかりやすいようにDirectional Lightは、50まで光量を上げていますが、
どうですか?Portalから光を出しているでしょ。
大域照明がオフの状態で光を出しているので、Portalは間接光ではなく直接光だということになりますね。
見た感じPortalの配光はエリアライトに近い感じがしますので、ちょっとレンダリング。
ライトのノイズが多かったのでライトサンプルを256まで上げてレンダリング時間は14.1秒でした。
次に
Portalをエリアライトに変更してみました。ライトのノイズはライトサンプル64でほぼ同程度です。レンダリング時間は4.1秒。
下の方の明るさが若干違うのは、僕のミスですね。あとで気がついたのですが理論的にはエリアライトはもう少し小さくするべきだった。
と、いうことでPortalの配光はエリアライトと同じです。
ヘルプにある「ポータルはレンダリングに大変に時間のかかるアイテムなので」は本当のようです。
じゃあ、ここで疑問に思うのは、Portalは何を基準に光を出しているのかということです。
ヘルプには、「レイ (光線) を集めて特定の領域に集中させるものと考えてください。」とありますので、
それでは、開口部から入ってくるDirectional Lightのレイ (光線) を集めて直接光に変えているのか?それなら少しは話しがあっているわけだけど…。
答えはおそらくノーです。
また、いじわるな検証をしてみます。
Directional Lightの当たっている部分の床を黒にしてみました。
Directional Lightの光はかわらず入ってきていますが、床が黒なので何も見えません。この状態でPortalを置いてみると、
あらぁ、真っ暗になりました。
では、次にDirectional Lightの当たっている部分の床を赤にしてみました。
あらぁ、今度は赤くなりました。
なんだ、Portalは、開口部から入ってくるDirectional Lightのレイ (光線) は関係ないじゃん。
Portalは、背後の明るさと色を参照してるだけじゃん。(ただし8bitじゃありません。)
かなり否定的な検証を繰り返しましたが、結果からヘルプで説明しているようなものではないのがわかりました。
でも、Portalの正体を理解していくにつれて、なぜ、ヘルプのような説明を書いたのかも理解できます。
では、素直な気持ちに切り替えて、ヘルプで説明しているような使い方を検証してみます。
まず、基本として大域照明をオンにします。反射回数は3。Directional Lightはなし。
Environmentを白一色で輝度10にしてレンダリングしました。
環境光だけのライティングと言うことになります。
こういう場合、開口部が小さいので環境光が効率よく内部に取り込めないため、ノイジーになるわけです。見てわかるように隅を中心にアーティファクトが多いですね。
こういう時にPortalは、「レイ (光線) を集めて特定の領域に集中させるも」と言いたいらしい。結果アーティファクトが軽減される効果があるということだろう。
では、素直に開口部の上にPortalを置いてみる。
こんな感じで開口部に合わせてセッティングしました。
レンダリングの結果はこんな感じ。
お〜、ちゃんとアーティファクトが減ってるやん。
ただし、Portalなし2.7秒に対し、Portalあり7.1秒です。
ここで、疑問に思いませんか?
先ほどの検証結果からPortalは背後の明るさと色を参照してエリアライトと同じ直接光を出していることがわかりましたが、それならEnvironmentの明るさプラスPortalの明るさでレンダリング結果はEnvironmentだけより明るくなっていなければおかしいのに同じ明るさになっていますよね。
ここがミソというか唯一Portalがかしこいところなのです。
では、それを実証しましょう。
Portalには、小さなバグがあってそこから確認することができます。
アイテムリストでPortalの目のアイコンをオフにして、Portalをオフにしてプレビューを見るとすごく暗くなりました。
Portalをオフにしても明るさが変わってはいけないのですが、必ずではないですがうまくプレビューに反映されないみたです。(レンダリングは大丈夫です)
ここから推測できるのは、Portalは、Environmentの明るさをこれぐらいに抑えてPortalの明るさと足して、もとの明るさと同じになるように調整してるんじゃない?
ここまで、Environmentの明るさをしぼって、あとを直接光に置換えて帳尻合わせてるんだったら、そらアーティファクトは軽減されるよなぁ〜。
では、もとのEnvironmentの明るさをプレビューぐらいにしぼってエリアライトと合わせて帳尻合わせてみることにします。
 Environmentの明るさ2、エリアライトの明るさ12です。
ちょっとだけ明るくなってしまいましたが、まったく同じでしょ。
だから、Portalは、Environmentの明るさをしぼって、エリアライトを足したのと同じわけです。
ただし、Environmentプラスエリアライトよりかなり精度も悪いですし、レンダリング時間もかなり長くなります。
使いどころは、窓からの外光をもともとEnvironmentだけでライティングしていて、
あ〜今気づいたけど、アーティファクト出てるじゃん!
イラディアンスキャッシュの精度上げても消えないじゃん!
もぉ〜、仕方ないなぁ。今の明るさがいい感じなのでレンダリング遅くなってもいいからPortalでなんとか乗りきろ!的な感じ。
はじめから、Portalありきでライティングするもんじゃありません。
これで、かなりPortalってどうゆものかわかって頂けたでしょうか。

何事も本質を知る事が大切です。
特にCGの場合はどんなことにも疑問を持っていろいろと自分の手で検証してみることです。
常識とされていることでも間違いはいっぱいあります。
信じるべきは、自分の目です。
そして、信じるに値する自分の目を育てることが大切です。

0 件のコメント:

コメントを投稿