一般向けまたデザイナー向けに書かれている色の仕組みの話と3DCGのレンダラーの拡散反射をごっちゃにしないほうがいいです。

ちょっと前に2chのShadeスレでも「吸収」の話が出てましたが
一般向けの色の話では「赤い色の吸収率は〜」とか「白いものでも吸収をしているので100%の反射はしない」的なことが書かれてそうですが
これは間違いではないですが、これはレンダラーや物理の考え方に慣れてない人の考え方でも理解できるように書かれてるもので
レンダラーに当てはめると矛盾が出てきます。
CGでは
「赤い色の吸収率は〜」
ではなく
「赤い色」はその吸収率だから「赤い」のだ。
と考えないといけません。たぶん物理の世界でもそうでしょう。
例を挙げると
赤いリンゴを作ったとしましょう。ユーザーはどうやってその拡散反射色を与えるのでしょうか。
実際のリンゴを見るか、自分の記憶にあるリンゴの「赤」を与えますよね。リンゴの写真を使うこともあるでしょう。
ということはその「赤」はすでに吸収が作用された「赤」でしょう。
そうでなければおかしいですよね。吸収が作用される前のリンゴの色なんてユーザーは知らないし、どうやって知ればいいんでしょうか。
このことから「ユーザーは現実で吸収が作用された色を見て、CGでも吸収を作用した色を与えてる」といえるでしょう。
あえて言うと吸収がまったく起きない物質の色は白(またはライトの色)でしかないです。
空想の物質とか非現実的なCGを作りたい場合を除いて、レンダラーがユーザーが与えた拡散反射色にさらに吸収率を与えるようなことはしなくていいでしょう。
(非現実的なシーンで、物理現象である吸収を考慮して欲しいという事もあまり無いと思いますが)
また、
「白いものでも吸収をしているので100%の反射はしない。現実では100%反射をするものは無い。」
というのは、これはどちらかというとレンダラーを使い慣れてて、ある程度勉強をしてる人が言うことが多いような気がしますが
これも同じく間違いではないですが一般的な考え方でも理解できるように書かれたものですね。
現実に、もし純粋な白いものが存在すれば、それは100%反射しますよ。しないならそれは純粋な白ではないです。(なぜそれが白なのかと問いつめたい)
ただ、現実には純粋な白いものは存在しない、ということなのです。
一般の人には、現実に白に見えてるものでも正確にいうと純粋な白(FFFFFF)ではない、
ということが理解しにくいためにそのような書き方をしてあるだけなのです。
似てますが考える方向が逆なのです。。
ただ、これらの一般向けの色彩のマメ知識的に書かれてる「吸収」ではなく、物理ではいろんなところで吸収の話が出てくるようなので
「吸収」という概念をレンダラーが持ってるのはおかしいことじゃないと思います。他の物理現象に作用してくるのかもしれないし
CGでは完全に現実と同じ計算はしないので、矛盾を埋め合わせするためにいろんなパラメータが必要。
それでも、上に書いたような一般とは逆の考え方をしないと矛盾が出てくるというのは同じでしょう。
先日書いたShadeのフレネル(透過色を濃くすればフレネル反射色も濃くなってしまう)の話も同じです。
プログラマは頭を使うのは得意でしょうから、
「物理やレンダラーの理論」と「現実に人間が見えてる色」と「ユーザーがCGで与えてる色」の関係を
ユーザーが余計なことに頭を使わずに創作作業に集中できるよううまく処理して欲しいと思います。