2006年06月05日
modo201でちょっとGI
modo201のGIをいじってみた。
とりあえず球体と平面を作る。SHIFTを押すとPrimitiveのメニューが切り替わって「+」マークが付いたアイコンになる。これをクリックして球と平面を追加すると、それぞれのメッシュが別々のアイテムとして追加される。
アイテムリストを見ると2つのアイテムになっていることが確認できる。
各アイテムにアイテムマスクを作る。そうすることで、アイテムそれぞれ個別に設定が出来るようになる。アイテムを右クリックしてCreate Item Maskを選択する。球と平面それぞれに作る。
ShaderTreeを見るとアイテムマスクが作成されている事が確認できる。
アイテム選択モードにして各アイテムを選択して球と平面を図のようにサイズや位置を適当に変更して、ビューをカメラに切り替えてアングルを調整しておく。1つ選択すると他のアイテムはデフォルトでワイヤー表示されるが、表示されない時はアイテムリストの左側の表示アイコンがOFFになっている事が考えられるのでチェックだ。図のように両方表示するにはCTRL+クリックで両方アクティブにするのが手っ取り早い(背面アイテムをどう表示するかを設定することも出来る)。
次にそれぞれの図形の色を変更してみる。カラーピッカーを表示しておいてShaderTreeのRenderを広げて設定したいマテリアルを選択してカラーピッカーで設定色をクリックするだけだ。
試しにレンダリングしてみる。F9を押すだけだ。これがレンダリング結果。カメラとライトの位置が気に入らなければここで調整して何度かレンダリングしてみるといい。ちなみにLWのFPRimeみたいにリアルタイムで確認したいならF8を押せばプレビューが出てくる。このプレビューはなかなか強力だ。とりあえずプレビューはここで表示しにくいのでF9の結果で表示して行くが、ここからはプレビューで確認していった方が面白いのでオススメだ。
さて、GIじゃないけど影にソフトエッジをかけられるのでついでにやってみる。ShaderTreeのDirectionalLightをクリックしてDirectionalLightのプロパティパネルを出して、SpreadAngleを調整するだけだ。
レンダリング結果はこんな感じ。Samplesが多くなるほど綺麗にボケるがその分処理も重くなる。
さあ、いよいよGIの出番だ。GIの機能を有効にするにはShaderTreeのRenderをクリックして、下のGlobalIlluminationタブをクリックし、パネルを出す。そしてIndirectIlluminationのEnableチェックボックスをONにする。これで間接光の計算がなされるようになる。
レンダリングした結果がこれだ。影のところがちょっと薄くなったり球の下側に板の照り返しが来ているがちょっとわかりづらい。そこで球の色を白にしてみる。やりかたはSphereのマテリアルをクリックしてカラーピッカーで白を選べばいい。
レンダリング結果はこんな感じ。球が白くなったので照り返しがよく確認出来るようになった。
ここで直接光の影響を無くしてみる。BaseShaderをクリックしてTextureLayerパネルを出してDirectIllumMultiplierの値を0にする。BaseShaderはその下に配置された全てのマテリアルに掛かる設定なので個別にやりたいときは各アイテムマスクの中にShaderを追加してBaseShadeは下に移動させればいい。DirectIllumMultiplierが直接光にかかる値でIndirectIllumMultiplierが関節光の方の調整用の値である。これで間接光しか影響しないようになった。
レンダリング結果はこうなった。球体は青くなった。この色は環境設定から来ている。
Environmentグループ内のEnvironmentMaterialをクリックしてパネルを出すとそれらが確認出来る。
ちなみにBaseShaderで間接光を0にしてレンダリングするとこうなる(DirectIllumMultiplierを100、IndirectIllumMultiplierを0。確認したら元に戻すこと)
GIといえばやっぱりIBLもやってみたくなる。HDR画像を適当に用意しておいてEnvironmentグループをクリックしてAddLayerからImageMapを選択して追加する。図のような順番になるように設定する。ここでDirectionalLightはいらないのでついでにOFFにしておく。HDR画像はいろんなタイプがあるのでTextureLocaterパネルでProjectionTypeを設定して貼り方を設定する必要がある。ここにはLightProbeもあるので安心だ(あたりまえか・・・)。今回の画像はSphericalで貼った。
レンダリング結果がこれだ。ついでに球体のマテリアルの鏡面反射パラメータを増加させて周りが映りこむようにしてみた。
以上、いろいろやってみた。この程度のポリゴン数で評価するのは拙速だが、FPrimeみたいにリアルタイムに設定が確認できるのは嬉しい限りだ。ただ、何だかたまに引っかかるように画面の更新が止まるのが気になった。カーソルを動かすと裏でレンダリングしていた結果がパッと出て来たりする。これが自分のマシンのせいなのか仕様なのかは今のところ不明。まあこの辺からはマルチコアCPUの出番かも知れないな。

