« (続) 3DCGとガンマ調整 - 明暗歪み編 | トップページ | DeGamma v1.0: SHADE用 色空間線形化スクリプト »

2010/03/28

(続) 3DCGとガンマ調整 - 色合歪み編

(思わぬ時間が取れたので、続けて、、)

さて、モニターというか出力装置の「色合い歪み」の話ですが、
見た目だけでは何が何だかわからなくなる現象なので、
最も単純な例を一つだけ取り上げて、何が起きるのかを見てみましょう。

まずを一個作り、それに「オレンジ色」の材質色を付与してみます。
色合いは、色パレット↓で一番わかりやすい R: G : B ≒ 2: 1: 0 で。
Color_palette
この色 RGB(255, 128, 0) を球の材質色(拡散反射値)にして、
出力ガンマ補正 2.2」を掛けてレンダリングしてみます。
(色補正窓の「ガンマ」 2.2 「彩度を変えない」 オフ)
Orangeyellow
すると、レンダリングのイメージウィンドウには、「黄色」い球が現れます。
(色補正窓「ガンマ」 1.0 でレンダリングすれば、もちろんオレンジ色)

なぜか? 一つづつ考えてみましょう。
素材色 RGB(255, 128, 0) が最大輝度で描画される箇所なら、中間トーンは G=128 のみ
(0 と 255 は各々最小・最大の端点)。
これがガンマ 2.2 の補正によって G=186 になり、色 RGB(255, 186, 0) で描画されます。
しかしモニターを通して見ると、中間トーンが下がるので、大体元の
RGB(255, 128, 0) に相当する色合いになって見えている筈ですね。

つまり、選んだ素材色 RGB(255, 128, 0) を、
モニターのガンマ歪みの影響を除去して正しく見てみたら、山吹色っぽい黄色。
一方、表面材質窓や色の設定窓に表示されるオレンジ色は、
モニターのガンマ歪みによって G成分が 12856 ぐらいまで下がった
赤み掛かった色。

『材質色を選ぶ時に、色設定窓表面材質窓で見た色合いの方が、
 モニターの干渉によって赤み掛かって見えていた』
『しかし本当はもっと黄色に近い色だった』
ということです。

これは困ります。
色を決める時の画面表示の色合いが狂っていたら、『 色 を 選 べ な い 』。

解決方法には大きく2種類あって、1つは正攻法である「ソフトの色表示」のガンマ補正。
メジャーな 3D ソフトは対応していますし、フリーの Blender も 2.5 で対応したようです。
※ また OFISのガンマ調整機能でも、「色合い不変」オプションをオフにすれば、
  色表示ではなく対応する「色データ」の方を調整して、「ユーザの意図した色合い」を
  復元することが可能です。(材質窓の表示色が狂うので推奨しませんが)

もう一つは、SHADEに付いている機能で(OFISも入力ガンマ復元でそれに対応している)、
出力ガンマ補正時に色合い(R:G:B比)を保つ方式です。
やってみましょう。
色補正窓の「彩度を変えない」をオンにして、レンダリングしてみます。
Orangeorange
オレンジ色で、かつガンマ補正による正しい明るさの広がりを持った球になりましたね。

この場合、ガンマ補正しても R:G:B 比 は変わらないので、
オレンジ色の最大輝度部分は、ほぼ材質色 RGB(255, 128, 0) になっています。
もしもそのまま見たら最初の例の黄色ですよね。
しかしモニターのガンマ歪みによって、中間トーンの G=128G=56 ぐらいに下がり、
めでたくユーザーにはオレンジ色に映る、という仕組み。

でもこれは、歪み問題の中の「色合い変化」という一面だけの回避方法に過ぎません。
素材色がもっと暗い色の場合だと、材質窓で表示される明るさ(歪みあり)と
レンダリング結果(歪み補正後)の明るさとは、かなり違って来ます。(↓明るさ 1/2)
Dark_color
そのため、レンダリング前に、OFIS の選択ガンマ調整機能(色合い不変モード)を使って、
歪みのない材質色明度に復元しておかないと、(以前の「メイドさん」の例のように)
白く霞が掛かったような結果になることが多いです。

ところで、先の色補正窓には、奇妙な赤色の球が2つ・・・
これは SHADE の色補正窓の不具合ですが、場違いな時に表示してしまっただけで、
この赤色自体は意味を持っています。

それを見るために、球の材質色を RGB(255, 128, 0) ⇒ RGB(255, 56, 0) に変更。
(あるいはOFISの選択ガンマ調整機能で「色合い不変」をオフにして材質色調整)
表面材質窓には、先の色補正窓と同じ、ほぼ赤の純色が表示されます。
そして「彩度を変えない」は再びオフ、でレンダリング。
Redorange
今度は、「彩度を変えない」オプションなしでも、オレンジ色の球が得られます。
そして色補正窓は、正常に赤(γ=1) ⇒ オレンジ(γ=2.2)の変化を表示。

つまり、をガンマ補正するとオレンジオレンジをガンマ補正すると黄色
ガンマ補正は、出力装置による色変化を相殺する逆の色変化を付加する変換ですから、
モニターが随分激しい色合い変化を起こす出力装置であることが、
この例からもわかりますよね。

以上の3色:赤、オレンジ、黄と、色数値、ガンマ補正の関係を整理したのが↓の図です。
Double_rgb_colors

今回は一つの話が長くて細かくて、もう他の例を作る気力も無くなったので、
後はポイントの補足のみで(汗)。

----------------------
色合い変化への対処方法
1) SHADEには「彩度を変えない」オプションがあるので、これを使って出力ガンマ補正での
  色合い変化のことは忘れるのが吉。
2) しかしガンマ補正によって明暗変化が起きるので、材質(画像含む)の入力ガンマ復元は必要。
3) この復元過程でも色合い変化が生じないように、OFISの「色合い不変」オプションを使用する。
4) 入力復元時:「色合い不変」、出力補正時:「彩度を変えない」、の両方を使うか、
  両方とも使わないで材質窓やマップ画像の見掛けの色合い変化は無視するか、どちらか。
 ・ 後者のメリットは、大サイズの画像を、画像リタッチソフトなどで高速にガンマ復元できる点。
 ・ ちなみに「ガンマ補正を 2.2 などの値で指定する仕様のソフト」の場合、
   「ガンマ復元は、その逆数の 1/2.2 = 0.4545(あと45の繰り返し) など」を指定。

|

« (続) 3DCGとガンマ調整 - 明暗歪み編 | トップページ | DeGamma v1.0: SHADE用 色空間線形化スクリプト »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/554431/47931312

この記事へのトラックバック一覧です: (続) 3DCGとガンマ調整 - 色合歪み編:

« (続) 3DCGとガンマ調整 - 明暗歪み編 | トップページ | DeGamma v1.0: SHADE用 色空間線形化スクリプト »