2012/01/16

【入門編10】3dsMaxハイライトの合成

オークのチュートリアル【入門編】はこれが最後になります。


過去記事『【入門編5】反射マテリアル(VRayMtl)』でも解説したように、V-Rayのマテリアルは現実のライティングモデルを基本としているので、3dsMax標準マテリアルのような「フェイクのスペキュラー(ハイライト)」を持っていません。
V-Rayのマテリアルのスペキュラーは、光源を移り込ませることによって発生させるしかありません。

確かにリアルなライティングモデルは、非常にリアルなレンダリング結果を生成しますが、場合によってはフェイクのスペキュラーの方が都合が良い場合があります。

そんな時には、3dsMaxの「セラック」マテリアルを使って、max標準スペキュラーとVRayMtlを合成するテクニックを使います。

●例えば、このようなシーンとVRayMtlを作成します。ライティングは maxのスポットライト1つです。 

●次に、Max標準マテリアルでスペキュラーを作成します。
ベースカラーは黒にします。セラックマテリアルは加算でマテリアルを合成するので、黒の部分が透明になります。

●最後に、「セラック」マテリアルを使ってVRayMtlとスペキュラーマテリアルを合成します。

「セラック」での合成するとレンダリングが少し遅くなります(内部的に二重レンダリング処理している為)。
3dsMax標準スペキュラーの値が強すぎると、白い斑点が生成される原因になります。
3dsMaxのスペキュラーは「フェイク」な光源反射なので、HDRI出力、GI、リニアワークフローなどで不都合が生じるリスクがありますよ!

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に戻す事を忘れないこと!