2011-11-10

Beautyの再構築

CGを用いたコンプの場合、各レンダーパスをもとにしてBeautyの再構築をしなければならないことがある。こんかいは、必ずしも一般的ではないが、vrayを用いてレンダーパスを出力し、それをnuke内で再構築したいと思う。

こんな感じでレンダーされているとする。



 各レンダーパスの計算式は以下で成り立つ

------------------------------------------------------
diffuse*RawGI = GI
diffuse*RawLight = Lighting
GI + Lighting = TotalLighting

reflectionFilter*RawReflection = Reflection
refractionFilter*RawRefraction = Refraction

TotalLighting + Reflection + Refraction + Specular = Beauty

------------------------------------------------------

レンダーパスはAOVsにしてexrを用いて作成した。
nukeでLayerContactSheetノードを用いて表すとこんな感じ。


まずは、
------------------------------------------------------
diffuse*RawGI = GI
diffuse*RawLight = Lighting

------------------------------------------------------
から、

diffuse
RawGI
RawLighting

で掛け算(multiply)して



ここでは、Multiplyノードの中のA、Bチャンネルでチャンネルを指定している


がShuffleノードをつかって、


とやっても可能。
できあがったGIとLightingを足して


TotalLighting
とする。
と同様の方法で、ReflectionとRefractionを得るのだが、実はこの最終的に再構築しようとしているBeautyは


viewerの右上にある「cliptest」で確認するとわかるのだけど、1以上の値がある。実際には、exrはダイナミックレンジを収録できるので、


とこんな感じで、1以上の値を確認できる。
これをtargaのような8bitの画像でレンダリングすると、


こんな風に1以上の値は自動的にクランプされ、「cliptest」をオンにしてもダイナミックレンジ領域(?)が確認されない。

これがどのように影響されるかというと・・・
たとえば、クランプされた画像(要するこれは8bitの画像と同じことであるが・・・)でBeautyを再構築すると


という具合にハイライトの部分がいまいち上がりきらない画像になる。
これは、 今回のケースの場合
------------------------------------------------------
reflectionFilter*RawReflection = Reflection
------------------------------------------------------
の部分でのRawReflectionが

exrを直接viewerで確認

exrをクランプしたものをviewerで確認(8bit画像を想定


という感じで、8bitの画像でも、ダイナミックレンジを持っている画像でも、見た目はハイライトで白く飛んでいる部分があるが、実際にはレンジの違いがある。

RawReflctcionをcliptestで見た場合
これに、ReflectionFilterを掛けると、この白く飛んでしまっている1以上の領域の階調が1以内に収まってる部分ができ、その部分にグラデーションを確認できる。クランプした画像(8bitを想定)だと、どうしてもそうはいかない・・・(下記例ではわかりやすくするため、Multiplyノード(math)で0.05を掛けてます)

ReflectionFilter
exrに掛け算をして暗くしてみた例。1以上で飛んでいたハイライトの中にグラデーションが生まれる。

exrをクランプしたもの(8bitを想定)に掛け算をして暗くしてみた例。1以上で飛んでいたハイライトがくすんでつぶれる。
結果として、

オリジナル
exrからBeautyを再構築
exrをクランプしたもの(8bitを想定)からBeautyを構築

という差が生じる。もちろん、ピクセルの値が1を超えないものであれば、問題が無いケースも多々あるであろうが・・・

1 comment:

  1. 参考にさせていただきました!
    とてもわかりやすくまとめていただきありがとうございます!

    ReplyDelete