CC

CG study (After Effects, Nuke, Maya...), English study and more.

Friday, July 27, 2012

[Nuke]32 bit float計算Tips1:マイナス値と仲良くなる

32 bit float計算Tips1:マイナス値と仲良くなる

Nuke上ではすべてが32bit floatで計算されます。
1より上0未満の値の扱い方を知っておく事がとても重要ですが、今回はマイナス値に限ってTipsを紹介。
マイナス値の扱い方を知っていないといつの間にかクオリティを失っている、意図しない結果がでる、なんて事があるので知って仲良くなりましょう。

自分の経験を元によく使うけど気を付けないと、と思ったものをまとめました。他にもこんなのあるよ、とかこんな場合注意した方がいいよ、とかあればコメントお願いします。


Tips1: マイナス値があると不都合があるのでクリップする必要がある場合の例
・アルファチャンネル。意図がある場合を除いてアルファは常に0-1に収める。
・マイナス値を含めた計算結果自体は正しくても、「ユーザーが意図しない結果」になる時(例えば、マイナス値とマイナス値をmultiplyするとプラス値になり、元々「真っ黒」だったものが「明るく」なる)

[マイナス値を自動的にクリップするノード例]
・Grade(デフォルトのblack clampチェックオンの場合)
・Mergeノードのオペレーション一部(ポップアップヘルプの式参照)



Tips 2: マイナス値をキープしたまま適切な処理が必要な場合の例

・motion blur、world positionチャンネルなど素材が元々マイナス値をもっているものを扱う時
・IDistortのuvマップを作る時(+、-、で上下左右のどちらにピクセルが移動するか決まる)
・マイナス値を維持したまま作業したい時 プラスに戻したい時0未満がクリップされていると元に戻せない。(floatでプリレンダリングして後行程に素材を渡す場合も含む)


Tips 3: 操作によっては元々プラス値だったピクセルをマイナス値にするノード例
・カラコレ各種のパラメーター(Gradeは、black clampのチェックが外れている時)
"blackpoint"、"lift"、"offset"、"saturation"
・Sharpenノード
・Addノード(カラコレノードの"offset"と全く同じ)

Tips 4: マイナス値があるかどうかチェックしたいとき

・1ピクセル単位→ピクセル値の表示を見る。
・水平軸単位→Samplerノード
・画面全体の中→ClipTestノードでlowerは0、upperは10000とかにする。Expressionで"0未満なら○○(自分の好きな数値)にする"と書く。


Tips 5: マイナス値だけ0にクリップしたい時
・Clampノードでminimumだけenableにする
・Expressionノードを使う

Tips 6: Mergeノードで自動的にマイナス値がクリップされるのを避けたい時
・MergeExpressionを使う

番外Tips : After Effects
ちょっと気になってAfter Effects CS4の32bitモードでアルファ頑張ってマイナス値にしてみようとしましたが、アルファチャンネルに限っては32bitモードでも強制的に常に0-1に押えられているようです。After Effectsは色んな処理の内部でrgbも含め値をコッソリクリップしているので注意。

No comments:

Post a Comment