2011年10月1日土曜日

Vray For MayaにおけるRenderSettingの簡易項目説明

まず最初に間違ってる可能性が多分にあるのは、何卒ご理解お願いします。
また、間違いがあった場合に是非とも指摘して頂けると助かります。

Vray Common
______________________________________________________________________________________________________________
<<<<<Resolution>>>>>>

/Frame buffer(Use Vray VFB)
V-Ray専用のレンダリングイメージ画面。通常のMAYAフレームバッファよりかなり早い。下の右から3番目のアイコンをオンにして、左端のアイコンを押してカーブをコントロールすることでレンダリングイメージのトーンを変更することができる。

/Hide Render View
MayaのデフォルトFBをレンダリング時に非表示にする。

Vray
______________________________________________________________________________________________________________
<<<<<Global Option>>>>>>
一般的な表示非表示などのオプション

<<<<<Image Sumpler>>>>>>
いわゆるアンチエイリアスにあたるもの。

/Image sampler Type
アンチエイリアスの種類。精度が異なる。選んだタイプによってすぐ下のロールアウトが変わり、そこで設定する。
※Fixed :(低) ※AdaptiveDMC :(中) ※Adaptive subdivision :(高)
○細やかななシーンでは、ブラー効果やスムーステクスチャーが少なければ、
「Adaptive subdivision sampler」は最速で高品質な結果がでる。
○詳細なテクスチャー、多くのディテールのジオメトリーやブラー効果などがない場合は
「Adaptive DMC sampler 」が効果的。
○多くのぼかし効果や詳細なテクスチャーがある複合的シーンに関しては、「Fixed rate sampler 」が適している。品質やレンダリング時間も予測しやすい。
また、Fixedはまったくアンチエイリアスが利かないので、テストレンダリング向き。

@Antialiasing filter アンチエイリアスのフィルターの種類。
/AAfilter type
ガウスや、ボックス、エリアなどのボケの種類
/filter size
フィルターのサイズが決定される。上げる程ボケ具合が高くなる。

@Adaptive Subdivision アンチエイリアスのサンプル
/Min subdivs:
最小のサンプルレート。Nピクセル毎に4つのサンプルが計算される。よほど細いラインや速いモーションブラーがかかったものでなければ1より高く設定することはほとんど必要ない。
/Max subdivs:
最大のサンプルレート。隣接するサンプルがコントラスト限度を超えるコントラスト差を見つけた場合、コントラストを含む領域はMaxで指定される深度に分割される。

<<<<<Environment>>>>>>
背景周りの項目
Override Environmentにチェックを入れると機能する。

/Background Texture
Camera詳細設定の背景色のような機能。優先度はこちらが上。
/GI Texture
GIに利用するテクスチャーを張る。
/Reflection/refraction Texture
反射と屈折に対する環境。標準の背景設定よりも優先される。ただ、VRayMtl内の環境設定の方が優先されることに注意。
/Environment shader
環境ボリュームなどのVrayシェーダーを接続する場所。

※HDRIなどを使ったIBLを行う場合、基本的にはEnvironment以下の全てのTextureにHDRIファイルを張る事になる。屈折やGIに高解像度のHDRIを利用すると非常に重いので、あえてぼかした低解像度の画像を使ったり出来る。

<<<<<Color mapping>>>>>>
レンダリングイメージのトーン(明暗)を決定するところ。計算された明るさの強弱がモニタで表現できる色を超えることがあるので、その表現方法を決める。
/Mapping Type
・Linear multiply
明るさに基づき単純に乗算する。1か255を超える明るさはクリッピングされるため、明るすぎる箇所は白飛びしやすい。ちなみにLinearでレンダリングした際は、Frame bufferで黒ポイントの接線を0.6まで上げて白ポイントをFreeにすると、ガンマ値が2.2に補正された画像とほぼ同じにできるとの事。
・Exponential
明るさに基づき彩度を決める。明るすぎる部分を白飛びを押えるため、クリッピングされはしないが、その箇所は彩度を増す。
・HSV exponential
Exponentialと似ているが、このモードでは色相と彩度を保とうとする。
・Intensity exponential
Exponentialと似ているが、このモードではRGBカラーの比率を保ち、色の強さに影響を及ぼすだけになる。
・Gamma correction: ガンマカーブを色に適用する。

/Dark Multiplier
暗い色のための乗算
/Bright Multiplier
明るい色のための乗算
/Gamma
ガンマ補正値、LWFなどを行う場合に2.2を入力する。

/Affect background
背景色にカラーマッピングを適用するかどうか
/Subpixel mapping
カラーマッピングが最終的なイメージのサブピクセルのサンプルに適用されるかどうか
/Don't affect colors
カラーマッピングが最終的なカラーに適用されないが、サンプルには作用する。
/Linear workflow
これをONにするとVrayMtなどにデガンマを施すようになる。なのでGammaを2.2し併用するとLWFを行える。
/Clamp output
ONにするとHDRIなどの明るすぎたり、暗すぎるハイダイナミックレンジ部分を抑制し、クランプする。
/Affect swatches
カラーマッピングがハイパーシェードに適用するかどうか。

<<<<<MISC>>>>>>
シーン全体のためのバンプマップ、テクスチャフィルタリングと測光光スケールの強さを制御することができます。
/Global bump map multiplier
シーン内のすべてのバンプマップの強さを制御します。値が0に設定されている場合は、バンプマップがレンダリングされません。
/Global texture filter scale multiplier
シーン内のすべてのテクスチャのフィルタリングを制御します。
/Photometric lights scale
このパラメータは、IESライトやVRayのライト内の測光ライトの強さをグローバルに変更する。


Indirect illumination
______________________________________________________________________________________________________________
室内間接照明

<<<<<GI>>>>>>
/GI
ONにすることで間接照明が効くようになる。
/Reflective・Refractive Caustics
反射と屈折によるGIのコースティクス。
ガラスを透過した光や、鏡に反射した光など

@AmbientOcclusion
アンビエントオクリュージョンのONOFF。
/radius
生成される領域の量
/subdiv
サンプル数

@Bounce Engine(Primary Secondary)
一次拡散バウンス、二次拡散バウンスのエンジンの設定。

Primary bounces: 第1回目の光のバウンス(はね返り)の方法。
Secondary bounce: 第2回目以降の光のバウンスの方法。

/GI engine
GIに使用するエンジンのタイプを以下から選択できる。

・Irradiance map
照度マッピング計算。Mentalrayで言うところのファイナルギャザーのようにカメラから見たイメージ上でサンプルを拾い、オブジェクトの持つ光エネルギーの軌跡を計算する。一次反射にしか使用不可。
利点:マップとして保存出来る。平坦地の計算が高速。
短所:アバウトな計算。チラツキが起こりやすい。
・Photon map
Mentalrayで言うところのグローバルイルミネーションのようにライトからフォトンを飛ばし計算する。ライトから飛ばされたフォトンはサーフェスに跳ね返るたび、そのポイントをフォトンとして記録される。イラディアンスマップが単純に最寄りのGIサンプル同士で補完し合うのとは違い、そのフォトンの密度によって間接光を計算する。
利点:マップの保存が可能。アバウトな近似による高速なライティング。
短所:速度の割には結果が綺麗になりにくい。
・Brute force
もっとも単純なアプローチである全探索法(全ての間接照明計算)。すべてのシェーディングポイントのGI値をそれぞれ近似させず個別に再計算させる。
利点:正確。アニメーションによるチラツキが起こりにくい。
短所:時間がかかる。大規模なシーンではノイズを発生する可能性がある。
・Light cache
Photon mapと似ているが、カメラからのパスで計算するので速い。V-ray独自のパストレースの計算。
照度マッピングまたはブルートフォースと利用する場合は、二次バウンスとして使う。
利点:どのライトでも効率的に動作するので万能性が高い。小さなオブジェクトの周囲に正しい結果を出す。
短所:バンプマップとの相性が悪い。移動物体を含む照明があまり正しくない。

Show calc. phase: レンダリング中に計算の過程が表示される。
Show samples: レンダリングイメージにイラディアンスマップのサンプルが表示される。

@RayDistance
レンダリングの高速化のために、GIの飛ばす光線の最大距離を決める。


<<<<<Cautics>>>>>>

/Multiplier
コースティクスの強さ制御。
/search distance
検索距離値。小さい程シャープで、大きいほどスムース。
/Max photons
コースティクスに使われる光子の最大数。値がでかいほどボヤけた印象になる。
/Max density
光子の密度



Setting
______________________________________________________________________________________________________________


<<<<<DMC sampler>>>>>>
DMCサンプラはシーン内においていくつかの自動最適処理を行い、無駄なサンプリングを省略した関数です。このため従来のサンプリングと同質でありながら、演算時間の短縮を計ることが可能です。
ようはグローバルな品質管理として低品質から高品質までここの設定で変更が行える。

/Time Dependent
これをONにすると、サンプリングパターンがアニメーションフレーム間で同じになる。
/Adaptive Amount
適応量。低品質にするほど値を増やし(最大1)、高品質程値を減らす(最小0)。
/Adaptive Therehold
ノイズのしきい値。値が小さい程ノイズが少なく、大きい程ノイズが多い(0.005~0.5など)
/Adaptive Min samples
サンプルの最小適応値。値が大きい程遅くなるが、高品質。値が小さくなる程早くなるが低品質。
/Subdivs Mult
グローバルSubdivs乗数。上記のパラメータ設定後、ここの値を乗数として利用する事で、テストレンダリングから高品質レンダリングまで簡易的に設定することが可能になる。

<<<<<Defaoult Displacement and Subdivision>>>>>>
シーン内の全てのオブジェクトに対してのDisplacementの品質の制御を行える。

/Edge length
変位またはサブディビジョンの品質。上げると高品質になり、下げると低品質になる。
/View dependent
ONにするとビューに依存して、ワールド単位でEdgelengthが適用される。
/Max subdivs
生成されるメッシュ数。256と入力した場合、256*256=65536ポリが割り当てられる。
/Tight bounds
テクスチャが白と黒の間に多くの変化がある場合、ONにすることで早くなる。
/Amount
スケール値

<<<<<System>>>>>>
Vrayのシステム的なパラメーターを制御する。

@Raycater params
バイナリ空間分割(BSP tree)のパラメーター制御を行う事が出来る。
/Tree build quality

/Max tree depth
最大ツリーの深さ。値を大きくするとメモリを多く取る事になるが、レンダリングが高速になる。
臨界値を超えると逆に遅くなる。
/Min leaf size
最小のリーフノードのサイズ。0.0で全てのサイズのシーンジオメトリをレンダリングする。
/Face level coeff
リーフノードの最大量を制御する。この値が低いとレンダリングは高速だが、BSPツリーは多くのメモリを消費する。臨界値を超えると逆に遅くなる。
/Dynamic memory limit(MBs)
動的メモリの上限。
/Default Geometry
Raycastingエンジンの種類。
・Static
最初に必要なメモリ量を計算し、最後までその量のメモリを消費する。
・Dynamic
シーンの部分に応じて動的なメモリの消費を行う。
・Auto
シーンの構成から自動で決定する。

@Render region division
領域分割レンダリング時のバケットパラメーターの決定。
スペックにより最適な設定が必要になる。
/LockXandY
ピクセル単位で最大の領域幅のXY。
/Measurement
測定の方式。
・W/H
ピクセル単位
・Count
領域数
/Sequence type
領域分割レンダリングの順序を決定する。
この種類に関しては要検証。デフォルトではTriangulation
/Reverse
シーケンスの順位を逆にする。

@Distributed Rendering
分散レンダリング
複数の異なるマシン上に単一のイメージを計算する。
/Use Distributed rendering
分散レンダリングを使用するかどうか

@VRay log
チェックを入れると、レンダリング時にログのウィンドウが表示される。

@Frame stamp
/Show Frame Stamp
レンダリングイメージの下部に情報を乗せる。例えばチェックを入れて、V-Ray %vrayversion | file: %filename | frame: %frame | primitives: %primitives | render time: %rendertimeと入力すると、バージョン・ファイル名・フレーム数・ポリゴン数?(不明)・レンダリング時間が表示される。

@Other
/Max render threads
レンダリングのために使用するスレッド数を決定する。
0で全てのCPUスレッドを使用する。
/Low thread priority
レンダリングの優先度を低くし、他の作業に処理を回す。
/Clear render view
ONにするとレンダービューにあるイメージをレンダリング前にクリアする。

2011年8月8日月曜日

IK使用時、限界値を超えてジョイントを伸ばす方法

■IKを入れた腕を、伸ばす方法
Expressionを構築します。
以下は腕のジョイントにIKを張る場合


肩と手首にロケータを貼って、DistanceToolでつなげます。


この際、肩ロケーターは肩の位置と一致しなければならないので、肩ジョイント階層にいれてしまう or コンストレインで肩に追従させます。
また、手首ロケーターはIKに追従させなければならないので、IK階層 or コンストレインでIKコントローラーに追従させます。


基本となる構文↓
if (DistanceToolの距離 <= 肩と手首の距離 ) { shoulder.scaleY=1;} else { shoulder.scaleY=(DistanceToolの距離 / 肩と手首の距離) 
となるので、これを伸ばしたいジョイントを選択してExpressionとして作成することになります。
ようは距離がジョイントの最長以下ではスケールは1、それを超える場合は伸びた倍率でスケールが増える、ということですね。


※DistanceToolの距離 :distanceDimensionShape1.distance (ディスタンスツールの名前です。複数あるとShape数などが変わりますので注意)
※肩と手首の距離 :Distance Toolで表示される、腕が伸びきった時の値
※Shoulder.scaleY : 適用するジョイントの名前と、そのジョイントが伸びる方向のスケールです。


これらの事を考慮した上で、腕であれば一般的に肩から手首にIKを入れるので、shoulderとelbowの2つのジョイントにExpressionを入れる事になります。よって肩と手首の距離が25.250674、スケールがXに伸びる場合↓


shoulderジョイントへのExpression構文
if (distanceDimensionShape1.distance <= 25.250674) { shoulder.scaleX = 1; } else { shoulder.scaleX = (distanceDimensionShape1.distance / 25.250674) ; }


elbowジョイントへのExpression構文
if (distanceDimensionShape1.distance <= 25.250674) { elbow.scaleX =  1; } else { elbow.scaleX = (distanceDimensionShape1.distance / 25.250674) ; }


を適用すると腕が限界値を超えた時のみ伸びるようになります。

2011年7月13日水曜日

MAYAのHypershadeを軽くする方法

■パターン①「Hypershade内のMRMaterialの更新を無くしてしまう」


Mayaのインストールディレクトリ内、scripts/others/mentalrayCustomNodeClass.melを開く。
if ($nodeType == "mia_material" ||   ←指定するマテリアル名
    $nodeType == "mia_material_x" ||
    $nodeType == "mia_material_x_passes")


    return "rendernode/mentalray/material:connection/mentalray/shadow:/connection/mentalray/photon:shader/surface:swatch/mentalRaySwatchGen";
上記のswatch/mentalRaySwatchGenの部分を削除。
これはマテリアルごとにやらないといけない。



■パターン②「Hypershade内のサムネイル更新をToggle式にする」
以下をシェルフなどに登録してスイッチ化する。


renderThumbnailUpdate (!`renderThumbnailUpdate -q`);




■パターン③「HypershadeのSwatch解像度を低くする」


実はMAYAのHypershadeは、Swatchサイズを変更すると描画するMaterialの解像度も変更されるようになっている。なので、Hypershade→View→As small swatchesに変更し、Option→Keep swatches at current resolutionをONにしておくと比較的軽くすることが可能になる。


ただデフォルトの設定でSmallにしておく方法が分からないので、そこは現在調査中。



2011年7月10日日曜日

MAYAでIESプロファイルを使用した物理的に正確な光源の設置法

//////IESプロファイル///////
照明器具の照度データ
☆物理的に正確な照明となる。(建築シミュレーターなどで使用される)


○データは照明器具メーカー毎、各社のIESプロファイルが配布されている。
(遠藤照明の公式サイトなど)
○MRのPhotometric LightとIESプロファイルの適用。


●使い方
"PintLight" or "Spot Light"に"Photometric Light"を適用。←2011以降はMia_Photometric Light
各ライトのMentalrayセクションの"Light Shader" と "Photon Emitter"に適用。


↓ここが重要


/Mia_Photometric Lightのパラメーター調整


Intencity_Mode →0 manual_peak_intensity_cd : カンデラ(明るさの単位)
→1 Manual_flux_lm : ルーメン(明るさの単位)
2 IESプロファイル


Distribution_Mode →0 ポイントライト(電球)
→1 スポットライト
2 IESプロファイル


=IESプロファイルが入る場合は、両方とも2に設定しないといけない。
これでProfileにIESを読み込むと、とりあえず機能するようになる。


↓明るさの調整


Multiplier :単純なライトの明るさ
Units To Meter Scale :ユニットの大きさ
Cm 2 Factor :ファクター数
(UnitsとCm2は数値の大小が逆)


※影の制御はレイトレースシャドウで行う。
ただし、MentalrayのAreashadowを使用しないと、影の制御ができない。


ちなみに柔らかい影を出すのなら、やはりカメラのレンズにガンマ補正を通してあげないと難しい。




その他
//////CIEプロファイル(Mib_cie_d)///////
☆色温度を物理的に決定する。ライトのカラーに入れるためのプロファイル。
プロファイル 3500____________9600
青白
電球のような色 液晶のモニター


※カメラの方のCIEDの場合、これが逆効果になる。
露出補正の概念的にここが逆になるので、それは注意しないといけない。
(フィジカルアンドスカイは大抵青みが強いが、カメラにCIEDを入れて補正させると、青みを相殺してくれる)

2011年6月29日水曜日

MAYA ファイナルギャザーを使用時に発生するチラツキを抑える方法

http://sites.google.com/site/kuromemo/maya-1/chutoriaru/fainarugyazasomosomonazechiratsukunoka

↑のサイトの方が紹介していますが、ようは


1.Render SettingsでOptimize for AnimationsをON
2.setAttr mentalrayGlobals.renderMode 3;コマンドを打ち込んでFinal Gatheringのみをレンダリングするモードにする
3.Final Gathering MapのRebuildをOffにしてファイル名設定
4.この状態で保存して全フレーム分のFinal Gathering Mapをレンダリング

5.Final Gathering MapをRebuildをFreezeにする
6.setAttr mentalrayGlobals.renderMode 0;コマンドを打ち込んで通常のレンダリングモードに
7.保存してレンダリング



ということらしいです。
基本的に室内などをレンダリングしたときに顕著に現れたりするので、ここは是非押さえておきたい所ですね!

2011年6月28日火曜日

maya保存時に失敗するエラーについて

File contains unknown nodes or data. To preserve this information, the current file type cannot be changed.
というエラーが時折発生し、データを保存出来なくなる場合の対処法。


スクリプトエディターを開き、
file -type "mayaAscii";
というコマンドを打ち込んで読み込ませると治るようです。

2011年6月7日火曜日

MAYA2010 64bit レンダリングバグについて

さて、自分も含めMAYA2010 64bitを使用してる人は、一回くらいはなったことがあると思います・・・青画面!
エラーコードはメモリエラーだったり、CMOSクリアをすれば一時的に解消されるので、原因は一体・・・と思っていましたが、解決策があった模様。やったねたえちゃん!レンダリングが増えるよ!


http://www.dfx.co.jp/dftalk/?p=189
一応ここで語られています。


具体的にどうすればいいか、という所ですが

●MAYA.ENVファイルに書きこむ場合
C:\Documents and Settings\[username]\My Documents\maya\[version]
MAYA_NO_TBB = 1
を書きこむ


●環境変数に書きこむ場合
変数名:MAYA_NO_TBB
値:1


結局TBBはIntel Threading Building Blocks(TBB)使うかどうか
というところだけど、TBBはインテルが公開しているC++テンプレートライブラリである。マルチCPUマルチコアCPUなどを搭載したコンピュータ上でアプリケーションを効率よく動作させることができる
というマルチコアに最適化する仕組みのはずなのに、結局それがバグを抱えるという・・・


ただ元々コア数、スレッド数が増えれば増える程、プログラムの同期が難しくなるのでバグを多く抱えるようになるということを考えると、割と納得は行くかもしれない。


とにかくMaya2010 64bitを扱う人は基本的に追加しておいたほうがいい変数であるのは間違いない。


ついでに


ゲフォのVGAを使ってる場合、描画がちらついたり、おかしくなる事もあるようだが、それもENVファイルなどで解決出来る模様
MAYA_GEFORCE_SKIP_OVERLAY
MAYA_GEFORCE_SKIP_OVERLAY=1