3dsMAXでのリニアワークフロー図解1「サルでも分かるリニアワーク」

前回書いた記事の詳細解説です。

前にも書きましたが、ガンマ2.2のモニタを使う事と、3dsMAX単体でのレンダリングを前提として書いてます。
Vrayを使用する場合はもう少し複雑になります。

 ガンマ補正無しの状態のそれぞれの関係性01

これは、3dsMAXデフォルト設定のまま(ガンマ補正がオフ)の状態を図にしたものです。前回と同様、ガンマ2.2のモニタを使用するものとして説明します。

3dsMAXはリニアで、モニタはガンマ2.2、この2つは固定です。

それらを結ぶ矢印は入力と出力を表していて、グレーの線はガンマが異なる部分で、赤い線はガンマ2.2同士で一致している部分、そして青い線はリニア同士で一致している部分です。

リニアである3dsMAXと、ガンマ2.2であるモニタとの間で色情報がズレてしまっている事が分かると思います。ガンマ2.2のテクスチャをリニアとして扱ったり、リニアで計算されたものをガンマ2.2のモニタで表示する事で色がズレてしまう訳ですが、最初からガンマを意識していないとクリエイターはそもそもズレている事を認識できません。

 

ガンマ補正有りの状態のそれぞれの関係性
02

こちらはガンマ補正有りです。ガンマ2.2からリニアへは逆ガンマ補正がかかり、リニアからガンマ2.2へは通常のガンマ補正が掛かります。これらのガンマ補正を掛ける事により、異なるガンマ値の色情報を正しく相互変換する事ができるようになります。

3dsMAXの場合、ガンマ補正をオンにするだけで特に何も考えずに3dsMAX部分をリニアワークにする事ができます。逆ガンマ補正か、通常のガンマ補正か、などを考える必要がありません。全て自動でやってくれます。

 

ガンマ補正の有無は、テクスチャの見た目に影響しない

上の図で特に注目してほしいのが、テクスチャです。
実際に試してみればわかりますが、ガンマ補正有りと無しの場合でテクスチャの見え方は変化しません。ここ重要です。

 ガンマ補正無しの場合

ガンマ補正無しの場合、ガンマ2.2のテクスチャ画像は3dsMAXを素通りして結局ガンマ2.2のモニタへそのまま正しく出力されます。ただし、3dsMAXに読み込まれた段階で3dsMAXはそれをリニアとして扱うため色情報がズレます。そのレンダリング結果をモニタに出力する際も、リニアの情報をガンマ2.2として扱うために今度は逆方向に色情報がズレます。読み込み時にズレて、書き出し時に逆にズレて、最後は元通りとなるのでテクスチャの見た目は変化しないという訳です。

 ガンマ補正有りの場合

一方、ガンマ補正がある場合、ガンマ2.2のテクスチャは一度リニアに変換されます。そして3dsMAX内でリニアとなったテクスチャはリニアのレンダリング結果がモニタに出力される際にリニアから再びガンマ2.2に補正されて表示されるので、この場合もテクスチャの見た目は変化しません。

 

重要なポイントと基準

リニアワークを考える上で、色がズレるとは何を基準にするのかが重要です。
最初に書きましたが、3dsMAXはリニアでモニタはガンマ2.2というのは固定です。つまり、基準となるのは3dsMAX側で扱う色か、モニタ側で扱う色かを考えれば良いのです。

「3dsMAXで扱うもの」→リニアでなければならない
「モニタで扱うもの」→ガンマ2.2でなければならない

この2つを基準にすれば簡単です。
3dsMAXで扱うものはリニアでなければならない。つまり、ガンマ2.2のテクスチャを補正無しで3dsMAXに読み込むと色がズレていると判断できます。
逆に、モニタに送る情報はガンマ2.2でなければならない。つまり、3dsMAXからモニタに送る情報(マテリアルエディタ、ビューポート、レンダリング画像)はリニアなので、ガンマ補正無しだと色がズレていると判断できます。

色がズレている→そこに補正が必要…という事です。

 

気づかぬうちに発生している色のズレ

表示上問題なく見えるが、内部ではズレている。この部分が、リニアワークの理解や重要性を認識しずらくしてるのだと思います。ちなみに、リニアワークを意識しないまま3Dの作業をしても致命的な問題とはなりません。「終わりよければ全て良し」が成り立つからです。

終わりよければ全てよしで本当に良いのか?については、また次回。