チュートリアル / Maya V-ray アーティスト ワークフロー~レンダリングテクニックを学ぶ~
第3回:V-Ray導入編~MayaでV-Rayを使いこなすために~ カメラとカラーマッピング編
- Maya
- カメラ
- コラム
- コロッサス
- チュートリアル
- レンダリング
- 中級者
- 映画・TV
前回はV-Rayのマテリアルについてお話しました。今回はカメラとカラーマッピングの設定について説明します。
Mayaで設定されたカメラは、V-Rayでもそのまま使用することが出来ます。しかし、V-Rayのようなグルーバルイルミネーション系のレンダラーは物理的に正しい光の強さを扱えるため、それ以前のレンダラーと比べて明るさのダイナミックレンジが格段に広がっています。
CGでライティングを行ったときに白飛びしたら皆さんはどうしますか?
ライトの強度を抑えて調整するのはVRayでは良い方法とはいえません。現実のカメラで露出補正をするようにCGでもカメラ側で露出補正をするのが正しい方法です。
露出コントロールとダイナミックレンジ補正について、実際にデジタルカメラで撮影して説明します。
例えばこの写真の場合は高架橋に焦点を合わせたため完全に露出オーバーで空が白とびしています。
そこで、カメラの露出調整で人の目が自然に感じる空の色を取り戻すために補正を行います。
空は自然な感じになりましたが、木立や高架橋の影の部分はかなり沈んでしまいました。
このような輝度差が大きいシーンを撮影する場合、最近のカメラではダイナミックレンジ補正機能を使います。
ダイナミックレンジ補正により暗部が明るくなり、人間の見た目に近い写真になりました。
CGでレンダリングする場合もカメラと似た手順を踏むことになります。実世界と同じようにレンダラーの中では広いダイナミックレンジを持って計算されていますが適正な露出調整を行ってからレンダリングすることが非常に重要です。
そもそも8ビットで出力すると露光の範囲が絞られてしまい、後で露出の調整をすることが難しくなりますし、たとえ16ビットや32ビットで出力してもショットによって露出がバラバラだったらコンプ作業で混乱してしまいます。
V-Rayのグローバルイルミネーションは16bit以上の画像フォーマットでコンポジットすることが現実的ではなかった時代から存在していました。そのためカメラには強力に露出補正機能が搭載されています。
上記で行ったダイナミックレンジ補正をV-Rayで行うときに使用するのがフィジカルカメラとカラーマッピングです。
では実際にV-Rayでどのように設定するのかをみていきましょう。
カラーチャートをテクスチャに使った単純なシーンで解説します。
これはテクスチャにインプットガンマのアトリビュートを設定せずに、ガンマ補正無しでレンダリングしたものです。テクスチャのグレースケール暗部を見るとガンマ補正をしていない影響で実際のテクスチャよりも白っぽくなっています。
V-Rayでテクスチャを貼る場合、このようにインプットガンマに関するアトリビュートを設定する必要があります。
テクスチャにsRGBのガンマ補正をかけてレンダリングすると、正しいスケールでレンダリング結果が得られました。
V-Rayが正しいリニアワークフローの設定になっている事がこれで分かります。
さて準備が整ったところで同じシーンをフィジカルサンを使用してレンダリングしてみます。
微妙なトーンの変化が吹き飛んでしまいました。
そこで現実のカメラと同じような露出補正を行うためにフィジカルカメラを使います。
フィジカルカメラはカメラシェイプに追加アトリビュートを設定します。
フィジカルカメラを追加することによって、ライトの強さを調整するのではなく、レンダリングするカメラで受け取る光の強さを調整することが出来ます。
フィジカルカメラにはいくつものパラメータがありますが、主に以下の3つを抑えておきたいです。
F-number(F値)
レンズの焦点距離を有効口径で割った値で、F値が小さいほどより光が入るので明るくなり被写界深度も浅くなります。
Shutter Speed(シャッター速度)
シャッターを開放している時間=露出時間なので、時間が長いほど明るくなりモーションブラーは増えます。
ISO(ISO感度)
フィルム=撮像素子が光を感じる感度を数値化したもので、値が大きくなるほど明るくなります。
フィジカルカメラの設定で明るさを抑えてみました。階調は戻ってきましたがまだまだ明るすぎる部分があります。
さらに明るさを抑えることは出来ますが、これ以上暗くすると暗部が潰れてしまいます。そこで次にカラーマッピング機能を使って広すぎるダイナミックレンジを適正な範囲に圧縮していきます。
VRayのフィジカルカメラはMモード(フルマニュアル方式)
実際のカメラならばP、S、Aモードなどの選択に合わせて自動的にF値、シャッター速度、ISO感度を調整してくれますが、VRayのフィジカルカメラは全てユーザー任せなので、以下の手法を参考にして下さい。
・デプスオブフィールドを使う場合はF値を決めてからシャッター速度で明るさを調整
・モーションブラーを使う場合はシャッター速度を決めてからF値で明るさを調整
・どちらも使う場合は唯一実際のカメラのように動作しない(ノイズが増えない)ISO感度で明るさを調整
・どちらも使わない場合はデフォルト値からシャッター速度で調整(設定できる値が実際のカメラと似ているため)
レンダー設定にあるカラーマッピングを使って暗部を持ち上げることにより、フィジカルサンのような強力な照明下でも元のテクスチャに近い色にすることができるようになりました。
以上、簡単なシーンを使って露出制御とダイナミックレンジ補正について説明しましたが、次は実践的なSan_miguelのシーンを使ってもう少し詳しくみていきましょう。
San miguelのデータはこちらからダウンロードできます。
http://graphics.cs.williams.edu/data/meshes.xml
まずはV-Ray Sun & Sky環境下でフィジカルカメラを使わずにレンダリングしてみます。
※GIエンジンはイラディアンスマップとライトキャッシュです。
カラーマッピングは素の状態を確認するためにまずはLinear multiplyに設定しています。
影の部分はイイ感じですが、太陽光が当たっている部分は白とびし過ぎています。1枚目をヒストグラムによって視覚的に確認してみましょう。
フィジカルサンを使ったダイナミックレンジが広いシーンをレンダリングした場合、フィジカルカメラを使用しないでレンダリングすると明るい部分が0-255のレンジを越えてしまい、ディスプレイには白とびとして映ることになります。OpenEXRなどのフロート形式で出力すればデータとしては記録されているので後で調整することも可能ですが、ここはしっかりと露出コントロールをしておきたいところです。
続いてフィジカルカメラを使って露出を抑えてみました。カラーマッピングはまだLinear multiplyのままです。
白とびしていた部分は抑えられて青空が見えていますが、影の部分がずいぶん暗くなってしまいました。
フィジカルカメラを使ってなるべく白とびしないように露出補正を行った場合のヒストグラムです。明るい領域は0-255レンジ内に入ってきましたが、今度は黒つぶれする領域が増えてしまいました。
次にカラーマッピングをLinear multiplyからExponentialに変更して0-255レンジ内に収まるように調整を行います。
白とびも抑えられて、影の部分もイイ感じの明るさになっています。
Exponentialを使用した場合、レンジを超えていた明るい領域が圧縮されレンジ内に収まっています。
しかしExponentialの場合は明るい部分を完全に圧縮してしまうため、彩度が飽和してしまうことがあります。
白壁の明るい部分が少しピンク色に変色していますね。
彩度の調整ができるHSV ExponentialやIntensity Exponentialなどもバージョンアップと共に実装されてきましたが
V-Ray3.0以降ではLinear multiplyとExponentialのバランスをとれるReinhardがデフォルトとして推奨されています。
Reinhardの場合はExponentialと違って明るい部分を完全に押さえ込まないので彩度の飽和を防ぐことができます。
先ほどのExponentialと比べるとまだコントラストが少し強めなので、もう少し明るさを抑えて暗部を持ち上げてみます。
イイ感じになりました。
Exponentialでは白とびを防ぐために明るい部分を強制的に押さえ込んでしまいますが、ReinhardはLinear multiplyとExponentialの間で自由にバランスをとることができるカラーマッピングです。
これらカラーマッピングによるトーンコントロールはフロート形式の出力ができなかった時代のテクニックですが、現在においても、物理的なシーンスケールや照明強度などを使ったリアリティのあるシーンをレンダリングする場合、最初から適切なレンジの中に調整しておくことは後処理によるトーンジャンプなどの弊害を軽減するためにも重要です。
次回はいよいよレンダー設定、グローバルイルミネーションのお話をしたいと思います。