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 にセットします。
これで最終レンダリングします。
いい感じでコップの液体が表現できました!

2011/10/04

【入門編7】V-Ray オブジェクトライト

引き続き、オークのV-Rayユーザーサイトのチュートリアル。
「入門編」は10までなのであと少しです。


今回は「V-Ray オブジェクトライト」を使用してオブジェクト自体を発行させる方法です。


例えばこんな感じのシーンを作って、右の変なチューブを光らせます。

●まずはシーンを真っ暗にしたいので、グローバルスイッチのデフォルトライトを無効にしておきます。


手っ取り早くライトオブジェクトを作るにはVRayLightMtl を使います。
●Multiplierを 3.0 にセットして、チューブオブジェクトにVRayLightMtlを割り当て。
  
GIを有効にしてレンダリングすると、発光しているのがわかります。  


オブジェクトライトマテリアルを作るもう1つの方法があります。
●標準マテリアルの自己照明を 100 % にセットし、拡散反射光のマップに「出力」マテリアルをセットします。



●出力マップの RGB レベルを 3.0 にセットします。この RGBレベルで光の強度の調整が可能。


●チューブオブジェクトに割り当ててレンダすると見事に発光します。


これはVRayLightMtl の結果と殆ど一緒です。
実際のところ、VRayLightMtl はこの出力マップを使った方法を簡単にしたマテリアルなのだそうです。


さらにもう1つ、発光のような表現が作れます。

●VRaytMtlWrapper マテリアルを作成し、Base material の自己照明をゼロ以上にセットします。(今回は判りやすいように自己照明 50% の標準マテリアルです。)
Ganerate GI の値を 引き上げます。今回は 5.0 にセットしました。


●割り当ててレンダリングします。


GI部分だけ明るくなり、シェーディングされたオブジェクトが強く発光するという現実にはありえないシーンを作成できます!
使う機会はないでしょうが! 

2011/08/02

【入門編6】イメージベース・ライティンング(IBL&HDRI)

引き続きオークのチュートリアルです。
今回はHDRイメージを使った照明(イメージベースライティング)を学習します。

●土台と球体、ティーポット、変な知恵の輪を作成し、適当なマテリアルを割り当てます。ライトは無し。

●環境マップに VRayHDRIマップを適用。マテリアルスロットにVRayHDRIマップをインスタンスし、HDRフォーマットのマップを読み込みます。準備したHDRIファイルは球状(Spherical)パノラマ形式なので、Shperical を選択します。


GIを有効にし、グローバルスイッチパネルで Default Light が『GI有効の時はOFF』になっていることを確認してレンダリング。
 

●すこし暗いのでV-Rayの露出を調整しますが、調整の度に何度もイラディアンスマップとライトキャッシュを計算するのは時間の無駄なので、マップのモードをSingle frameから From Filesに変更します。

カラーマッピングロールアウトで、露出を調整します。例えばマップタイプ『Liner multiply』で Dark multiplier 2.4 、Bright 1.3 など。
 
いい感じにレンダリングされました。

●背景のHDRイメージが邪魔な場合は、VRayの Enviromentロールアウトを使います。

『Enviroment』ロールアウトの『GI Enviroment(Skylight)overrride』と『Reflection/refraction etc enviroment overrride』を ON にして有効にします。
そこに3dsmaxの環境マップ(VRayHDRImap)をドラッグし、インスタンス。環境マップは 「マップを使用」のチェックマークを外しておきます。
背景画像なしでレンダリングできました。

マップを変えたらイラディアンスマップとライトキャッシュのモードをSingle frameに戻す事を忘れないこと!

【入門編5】反射マテリアル(VRayMtl)

引き続きオークのチュートリアルを。

●床にVRayPlane、球体1つ、ティーポット1つ、指向性ライト1つのシンプルなシーンを作成。

球体のマテリアルをVRayMtlにし、Reflect をグレー:RGB(150,150,150)にセットしてレンダリング。

ティーポットが移りこみます。

さらにReflect を真っ白:RGB(255,255,255)にセットし、背景に空っぽいグラデーションを追加してみます。
 
全反射状態となりましたが、映り込みが均一すぎてリアルではありませんね?

●現実世界では「フレネル効果」というものがあり、反射率は光源と面の角度で異なるように見えます。
これを再現するために、VRayMtl 『Reflection』の[Fresnel Reflections]にチェックマークを付けます。
リアルにはなった気がしますが、球が黒っぽくなりわかりにくくなりました。

●VRayでは標準状態ではフレネルの強さをRefraction IOR(屈折率)でコントロールします。
またここで判りやすいように Diffuseを明るいピンクにセットします。
RefractionのIORを1.0に変更します。
フレネルによる屈折が無くなり、反射像がまったくなくなります。

RefractionのIORを2.0に変更するとこんな感じに。
地の色(ピンク)が見える鏡のような感じに。

RefractionのIORを極端に大きく20に変更するとどうなるでしょうか。
地のピンク色がほとんど見えなくなります。

ここでは一旦IORを1.7にセットしておきます。

●なにか物足りないのはハイライト(スペキュラー)がないためです。VrayMtlにはスペキュラーという概念がありません。現実世界ではスペキュラーは「光源」が移りこんで発生する為です。

VRayでスペキュラーを作るには目に見える光源(VRayLight)を作成して写り込ませる必要がありますが、今回は3ds max標準ライトを映りこませる方法でやってみます。

目に見えない3ds max標準ライトを映りこませるには『Reflection』のglossiness(反射のぼかし)パラメーターを 1.0 以下にします。一旦0.8にしてみましょう。
先ほどまで見えなかった3dsmax標準ライトが映り込み、スペキュラーが発生しました。
それと同時に反射がぼけるようになりました。

さらにglossiness(反射のぼかし)を0.6まで下げてみます。
スペキュラーとディフュースの境界がほとんどわからなくなり、非常にマットな感じのサーフェスになります。
ここではglossinessを0.8にセットしておきます。

●GIを有効にして最終的なシーンをレンダリングしてみます。
Prymary bounce に Irradiance map、Secondary bounce に Light Cacheをセット。Irradiance mapはプリセットからLowを選択します。

Light Cacheは Suvdivs を 300程度に下げます。重いから。

 指向性ライトが強すぎるので強度を 0.3 にします。

 背景の空が暗すぎるので、グラデーションのRGBレベルを1.5 にし、そのままではカラーブリードが強すぎるので、GIパネルの Post-processingで Saturation(彩度)を0.4にセットします。
いい感じになりましたが、反射はぼかさずハイライト(スペキュラー)だけぼかしたい場合、Hilight glossiness パラメーターの右にある [L](Lockボタン)ボタンを押してロックを解除することで、それぞれのぼかし具合を制御できます。
ハイライト(スペキュラー)はぼけたままで、反射はパッキリになりました。写実性には欠けますが、細かく制御したい場合には役に立ちそうです。