2011/12/27

【入門編9】イラディアンス・マップ

引き続きオークのチュートリアル。入門編は残すところあと2つとなりました。
今回は特定のイラディアンス・マップ・モード」を利用して、効率的に別アングルのレンダリングを行う方法を学習します。


●まずは以下のようなシーンを作成します。(ライトは標準指向性にVRayShadow)
Primary Bouncesを「Irradiance map」にしてレンダリングすると、5.3秒で画像が生成されます。


VRayのデフォルトでは、イラディアンス・マップが"Single frame"モードにセットされています。
このモードは何時でも、どの角度からでもシーンのGIレンダリングを可能にします。ただしこのモードは、全てのフレームでイラディアンス・マップをゼロから計算するという特徴があります。


●ここで、先ほどのレンダリングによりイラディアンスマップがメモリに残っているので、モードの「Save」からファイル名をつけてイラディアンスマップを保存します。

●次にそのマップを使うようにVrayをセットアップします。イラディアンス・マップのモードを" From file:"にして、"Browse"ボタンをクリックし、先ほど保存したイラディアンス・マップ(test.vrmap)を開き再度レンダリングしてみます。

先ほど5.3秒だったレンダリング時間が0.8秒になりました!早い!

●それでは次に別アングルからレンダリングしてみます。
一部に変な黒い部分ができてしまいます。
これは、イラディアンスマップが、カメラから見える部分だけを計算するため、先ほどのアングル(Camera01)でレンダリングしたサンプルポイントを利用するとこのような結果になってしまします。

ちなみにIrradiance map の「Show samples」にチェックを入れるとサンプルポイントを見ることができます。

ではこの古いイラディアンスに、新しい現在のサンプルポイントを追加してみます。

●Modeから「Incremental add to current map」を選択し、再度レンダリングしてみます。

これでこのアングルからもうまくレンダリングされるようになりました。

このイラディアンスマップを保存し、最終レンダリングしてみます。
0.9秒でレンダリングできました。

そして、どのアングルからも一瞬でレンダリングできるようにするために、再びModeを「Incremental add to current map」にし、すべての位置にサンプルポイントが配置されるようにしていきます。

●「Show samples」にチェックを入れ、さまざまな角度からレンダリングしていきます。

●そしてこのイラディアンスを保存し、Modeを「From file」に変更。「Show sample」チェックをオフにしてこれまでセットしていないアングルからレンダリングします。
美しく、そして0.9秒でレンダリングできました!
ちなみに「Single flame」にしてレンダリングすると4.9秒かかってしまいます。

この方法はカメラがアニメーションする場合も使えますが、オブジェクトもアニメーションしてしまう場合には使えないので要注意!!

2011/12/15

【入門編8】境界面のレンダリング

引き続き、オークのV-Rayユーザーサイトのチュートリアルにトライしてます。
今回はVRayと屈折境界面の正確なレンダリングについて、です。

要は、異なる屈折率を持つ物体同士が接しているようなシーンをいかに表現するかということ。


たとえば、ガラス製のコップの中に液体が入っているシーンなどです。
このようなシーンの場合、まったく同じ位置にコップの内側と液体の面があると、レンダリングエラーの元となってしまいます。


なので、【1】少しだけ隙間を作るか、あるいは【2】少し交差させることになります。


●ガラス製コップをライン+レイズで作成します。


●レンダラーにV-Rayをセットし、プレビュー用の設定にしていきます。


アンチエイリアスを低く設定します。Image samplerロールアウトを開き、Image samplerを Fxed rate にセットします。


Indirect illuminationロールアウトを開き、GIを有効にします。Primary および Secondary bounces の両方に Light cache をセット。Refractive(屈折) の GI caustics を一旦無効にしておきます。


ライトキャッシュのロールアウトを開き、ノイズを抑える為にライトキャッシュの Sample size を 0.04 にセット。
Filter(フィルター)を Fixed にセットし Filter size を 0,08 にセットし、ライトキャッシュを少しぼかします。
影をハッキリさせたいので、ライトキャッシュロールアウトにある Store direct lightのオプションを無効にします。
ライトキャッシュの Subdivs を 500 にセット。


マテリアルをこんな感じにしてレンダリング。


コップができたので、液体を準備します。


●まずは【1】少しだけ隙間を作る方法を試してみます。
少しだけ隙間を作ったラインをレイズさせます。


マテリアルをこんな感じに設定してレンダリングしてみます。


車の中で乾燥して縮んだ芳香剤のようで、リアルな液体ではありません。


●次に、【2】コップと液体を少し交差させる方法を試してみます。
液体オブジェクトを少しだけコップの内側にオーバーラップさせます。これでレンダリングを試してます。
先ほどに比べ、液体の表現がリアルになりました。


最終レンダリングのセットアップを行ないます。アンチエイリアスを改善しコースティックを加えます。


Caustics ロールアウトで On にチェックマークを付けてフォトンマップによるコースティクスを有効にします。
Max. density を 0,2 にセットし、コースティクスフォトンの密度を制限する事によって、より多くのコースティクスフォトンを放つようにします。
Search distance は通常、Max. densityパラメーターの 5から10倍の値をセットするとよいので 2.0 にセットします。
Max. photons パラメーターを 0.0 にセットし、シェーディングポイントからSearch distance 内にある全てのフォトンを考慮させるようにします。
これでレンダリングしてみます。
コースティクスが表示されましたが、少しノイジーに見えます。ライトのコースティクス解像度(Caustics subdivs)を増加させる事により、よりノイズを無くす事ができます。


VRayLight オブジェクトを選択し右クリックメニューから "VRay properties..."を選択.。
コースティクス解像度(Caustics subdivs)を 4000 にセットします。
これで再びレンダリングしてみます。
今回はこのくらいのコースティクス設定としますが、さらに滑らかなコースティクスを望む場合、ライトのCaustics subdivsをさらに増加させるか、Search distanceパラメーターを増加させます。


次のレンダリングでコースティクスの再計算を行なわないようにする為に、コースティクスのモードを From file にセットします。


●最後にアンチエイリアスを無くし、エリアライトのノイズを少なくします。


Image samplerロールアウトを開き、Adaptive DMC を選択します。 


エリアライトからのノイズを軽減させるために Global subdivs multiplierの値を 4.0 にセットします。
これで最終レンダリングします。
いい感じでコップの液体が表現できました!