リニアワークフローに疑問

 リニアワークフローって間違ってるんじゃないの?

 まず自分のリニアワークフロー (LWF) についての理解だけど、主にここ↓を参考にしている。

 http://blog.taikomatsu.com/2009/08/25/リニア空間と物理的に正しいライティング

 つまりモニターはガンマが 2.2 で、画像を暗く表示する特性がある。
 だから画像にはディスプレイとは逆のガンマ (2.2) が与えられており、PC内部では薄明るい。
 その薄明るい画像を使ってレンダリングすると正しい計算にならない。
 だから薄明るい画像 (2.2) に 0.45 を掛けてリニア (1.0) に戻してレンダリングし、レンダリング後にガンマを 2.2 に戻す。

 これはわかる。
 色を一旦暗くしてまた明るくするから元に戻る。
 これには問題はない。

 問題は色以外の要素、つまりライトだ。
 (4/28 コメントを受けて修正)

 このように白いマテリアルを白いライトでレンダリングしたものに LWF を使うとかなり明るくなり、陰影が平坦になる。

 なぜかというと、ライトによるシェーディングはテクスチャのように一旦暗くされることなく、レンダリング後にガンマが 2.2 にされるからだ。
 つまり上記の右の画像は、単に左の画像のガンマを 2.2 にしただけだ。

マテリアルとライトに色をつけると、レンダリング時にガンマ補正で暗くされるので、上記の画像ほどの差は出ない。
しかし陰影が平坦になるのは変わらない。

 これは今までの左の画像が間違っていたのであって、右の画像が物理的に正しいのだという人もいるかもしれない。
 実際、上記のスライドにはそう書いてあるように読める。

--

 物理的に正しいなら、光の減衰は逆2乗、つまり距離が2倍になれば強さは 1/4 になる筈だ。

 http://ja.wikipedia.org/wiki/逆2乗の法則

 LW でライトの減衰を逆2乗にしてレンダリングしてみる。
 ライトのフォールオフを「反比例^2」にし、強さが 5m の距離で 100%になるようにし、5m と 10m の距離に板ポリを置く。

 まず通常のレンダリング

 10m では強さが 1/4 になった。
 これが LWF を使うと、

 10m では 53%になった。
 光の減衰が逆2乗になっていない。

 これはライトとマテリアルに色をつけても同じ結果になるし、光源を発光体にしてラジオシティを使っても同じ結果になる。
 3DCG の光の減衰は、LWF を使わないときに正しくなるようだ。

--

 ではシェーディングによる陰影の方はどうだろう。

 これも右の方が物理的に正しいと、上記のスライドには書いてある。
 しかしこれにも疑問がある。

 上に書いたように、右は左のガンマを 2.2 にしたものだ。
 この 2.2 というのはモニタのガンマだ。
 もしモニタのガンマが 1.8 だったら、右の画像はガンマを 1.8 にしていた筈だ(昔の Mac は 1.8)。

 ガンマが 2.2 と 1.8 では当然明るさ陰影の平坦具合が違う。
 物理的に正しいのはどちらなのだろう?

(4/30 追記)
 ここによると、面への光の入射角θによる明るさは cosθ になるらしい。

 照度の性質|光と色の話|WEB連載|テクニカルガイド|画像処理用照明|製品紹介|シーシーエス株式会社

 つまり正面から光を当てると100%の明るさになるとき、30°傾けると cos30≒86.6%になる。

 拡散100%の白い板ポリに100%の平行光を当て、30°傾けた。

 これも LWF を使わない方が正しい結果になった。

--

 つまり、LWF でテクスチャを一旦暗くするなら、ライトによるシェーディングと減衰も同じように暗く(弱く)しないと、レンダリング後のガンマ補正 (2.2) で明るすぎになってしまうのではないか。

 それをしないから、LWF を使うと陰影が平坦になり、コントラストも低すぎになるのではないだろうか。

 と思うのだが、詳しい人がいたら何が間違っているのか教えてください。