2010/11/07

リニアワークフローまとめ2

前回のリニアワークフローまとめ1に引き続き、リニアワークフローについて。

その前に、前回の記事について一部不明な点があったので修正しました。
至らない部分もあると思いますので、フォローお願いします。



さて、では実際にMayaVRayでどうやったらリニアな環境で作業できるかについてまとめようと思います。
その前に前回のおさらいとして、リニアワークフローについて文章じゃ分からないのでちょっと図にしてみました。
NWF_20101106.jpg
まずは今まで行っていた通常のワークフロー。たぶんこんな感じ。

Maya内ではリニアで計算するので、このワークフローだと、入力と出力の部分でおかしなことになってます。それをライティングとかディフューズの調整で無理やり自然に見えるようにしていたわけです。写実的な表現でなければ、このフローでも全然問題ないと思いますが、実写に近い表現をしようとすると微妙なずれが出てくることになります。これがリニアなディスプレイでガンマもかかっていなければ問題ないと思うんですが、そうも行きません。(リニアガンマのディスプレイっていくらするんだろう。ていうか売ってる?)
まあ、そんな機材があったとして、全部そっちに乗り換えるのも現実的ではないので、今使ってるガンマのかかったディスプレイでやろうと思います。

んで、これから説明するリニアワークフローはこんな感じ。
LWF_20101106.jpg

ガンマ補正のかかっている画像に対して、逆ガンマを掛けてまずリニア画像にして、Mayaにもっていきます。この入力の画像がリニアであれば、逆ガンマをかける必要はないですが、リニア画像と通常の画像が入り乱れていたりすると管理が面倒なので、とりあえず、全部ガンマ補正のかかっている画像として処理します。

そして最終的にレンダリングする画像に出力する媒体に合わせたガンマ補正を掛けて出す。そうすれば、全体のフローがリニアになって綺麗になります。厳密に言うと、コンポジットから、編集まで全部リニアにする必要があると思うんですが、今回は3D側のみでやる方法として書きました。







さて、では本編。
MayaVRayで実際にどのように設定すればいいかについて書きます。

まず、テクスチャに逆ガンマをかける部分。

Mayaのノード、GammaCorrectをカラーノード、テクスチャノードの間にはさみます。

WS000035.jpg

ガンマの値は以下のとおり(ディスプレイガンマが2.2の場合)

WS000037.jpg


自分が検証してた時に、ふとスペキュラ、リフレクション、バンプにも逆ガンマをかけるの?という問題が出てきたんですが、結果から言うとかける必要はありません。なぜなら、スペキュラ、リフレクション、バンプ等のテクスチャは結局レンダリング画像の見た目で調整するからです。本当はディフューズに関しても見た目あわせということになるので逆ガンマは必要ないといえばないですが、テクスチャデータとして非常に扱いづらいので逆ガンマを掛けます。

以上のように質感を設定する際に一手間いれるわけなんですが、そんなのいちいち設定するのメンドイなーと思うかもしれません。考えることはみんな同じなんですね、すでに便利なMELを作ってくれている人がいます。
http://3dlight.blogspot.com/2008/09/gamma-tools-10.html
選択したテクスチャの前に逆ガンマをいれるMEL



んではVRayの設定について。VRayタブ、ColorMappingで、

linearworkflow_colormapping.jpg


以上のような設定にする、だけです。非常に簡単ですよね。

Gammaにディスプレイガンマの値を入力します。

さらに、LinearWorkflowのチェックを入れておくと、テクスチャ、カラーノードに自動で逆ガンマをかけてくれるので、最初に説明したGammaCollectをはさむ作業は必要ありません。自分で管理したい場合はここのチェックは外しておきます。

また、AffectSwatchesにチェックを入れておくと、HyperShadeのマテリアルの見た目がガンマがかかった状態の見た目に切り替わります。最初は淡い色で戸惑うかもしれませんが、慣れます。


以上、VRayの設定は終わりです。


作業的にはちょっと設定するだけなんですが、リニアワークフローの利点、どうしてこういう作業をするのか、という部分はちゃんと把握しておかないと簡単に破たんするのでしっかりと基礎は理解したうえでリニアワークフロー導入するといいんじゃないかな、と思います。

また、この方法は完璧な方法とは言えないのでちゃんと検証したうえで試してみてください。

2010/11/02

リニアワークフローまとめ1

近頃、リニアワークフローってなんだろう、っていう疑問があり、いろいろと調べていました。

まず、リニアワークフローとはなんぞやというと、ガンマとか、カラースペースとかいろんな用語が出てくるのでここでは省略します。
詳しく説明している記事は以下を参照してください。
http://kimpara.tumblr.com/post/1397322868
詳しく説明されています。また、MaxVRayの具体的な設定法も載っています。

ほかにも参考にしたブログ
http://maxmint.blog82.fc2.com/blog-entry-27.html
http://kotozone.blog55.fc2.com/blog-entry-145.html
http://blog.livedoor.jp/morisoba123/archives/51573480.html


私的見解ですが、リニアワークフローをざっくり説明すると、リニアな環境で作業しよう!って・・・字面のまんまですが、

実際まじめにリニアな環境で作業するにはガンマのかかっていないディスプレイが必要だし、カメラなんかも全部リニアにする必要があります。しかし、その状態だと人間の目にとって自然に見えません。

今回は作業を3D環境のみに絞ってまとめようと思います。
現在、作業してるディスプレイは大抵ガンマがかかっているので、レンダリングもガンマを考慮した出力にすれば物理的に正しい結果になります。(・・・このへんちょっとよくわかってませんが要するに今までのレンダリング結果は間違ってたってこと?

それをやるにあたって、マテリアルに割り当ててあるテクスチャ、カラーデータには実はガンマ補正がかかっているので、レンダリングの入力データとしては間違った状態にあります。それを逆ガンマをかけてリニア状態にしてちゃんとしたデータにして出力しないといけません。

実際この逆ガンマをかけるという工程は、リニアな画像を入れてやれば必要ない工程なのですが、見た目が認識しにくいので、ガンマがかかった状態で作業して、入力するときに変換することにします。

要するに全作業をリニアにして作業しようよって理解してしまえば簡単なのですが、いかんせん逆ガンマを掛けたりガンマをもどしたりして混乱してしまいます。
ひとまず、こういう手法があるってことだけ頭に入れておいて、作業は単純なのであまり深く考えずに作業しましょう。すると次第に分かってくるかと思います。


そもそも、リニアワークフローにする利点ってなに?っていうと、
・GI、IBLの光の回り込みがでる
・リアリティが上がる

などなど・・・
言葉で説明しても分かりにくいので普通のレンダリングとリニアワークフローにしたレンダリングを出力してみました。画像はMaya VRayです。

linear_workflor_01.jpg
まず、普通にレンダリングした画像。
通常のライティングで適当なマテリアルを割り当て、GIをonにして出力しています。

linear_workflor_02.jpg
それをガンマを考慮した画像
このままだとカラーの入力にガンマ補正されているので色が薄くなってしまっています。

linear_workflor_03.jpg
なので、カラーに逆ガンマをかけ、リニアにして計算させると正しい結果になります。

どうでしょう?見た目が全然違いますよね。
なんというか、今までのレンダリング結果の一歩上をいったというか、まったく調整しなくても綺麗な画像になっています。

GlossyReflectionを入れると白飛びしやすいとか、黒つぶれしやすい、といったことが改善されます。GIの回りこみ方もすごくよくなってますよね。


とまあ、いろいろと利点があるけど、理解しにくいので、足踏みしている人は一度試してみるといいんではないでしょうか。下ごしらえ的にガンマ補正かけとこうとか料理で言う下味をつけると思って作業すればいいと思います。


とまあ、こういう方法があるよ!ということで、
次回は具体的にMaya VRayを使ってどうすればいいのかをまとめてみようと思います。結構簡単ですよ!