透過の吸収距離


modoはsssを使わなくてもレイトレの透過が吸収距離ってのを持ってます。
画像のように薄い物は良く透過するが、厚いものは指定した色で吸収されるって感じですね。
現実でもそういったものたくさんありますね。鏡や窓に使われてるようなガラスは側面から見たり重ねたりすると緑色に見えたりとかね。
sssよりこっちのほうが活躍するシーンが多いと思います。
で、これどうも今までうまくいかなかったんですがその吸収される色を黒(0,0,0)にすると出来ないです。
たぶんその色に数値を掛けていくような計算になってるんでしょう。0はいくら掛けても0なので。
黒を使いたい場合(0.1,0.1,0.1)とかにすると良いです。この画像はそうしてます。
要するに厚くなるほど透過量が減っていくんじゃなくて、薄くなるほど透過量が増えていくようなもんだと考えたほうが設定はしやすいです。
で、もういっこ気づいたことが。
Shadeなどで何らかの色のあるものに鏡面反射を与えるとき、その物の色を暗くしないといけません。
「その物の色」ってのは拡散反射なわけで、鏡面反射があるとそのぶん拡散反射する光が減るからですね。
でないと光が増えることになってしまいます。鏡面反射と拡散反射を足して100%以上になってはいけないのです。
Shadeでは当たり前ですね。鏡を作るときは色を黒にしますよね。鏡面反射が100%なら拡散反射は0%なのです。
だけどそうでないレンダラーもあります。
「その物の色」にただ鏡面反射を与えれば良いってレンダラーは結構あります。
GIレンダラーが一般的でなかった時代は「拡散反射」と言う概念が一般のCGソフトには必要なかったからでしょう。
「そのものの色」とか「見た目の色」で問題なかったからでしょうね。
というかそうでないと一般ユーザーが理解できないという配慮でしょう。
だからそういうレンダラーはレンダラーが内部で拡散反射を下げてくれてるってことです。
前置きが長いなっ。何が言いたいのかと言うと
modoの場合、これをどうするか選べるのです。鏡面反射+拡散反射が100%を超えないよう拡散反射を自動で下げる機能をON/OFFできます。
ですが。これって鏡面反射の時だけなんですよ。透過も同じですよね。透過+拡散反射も100%を超えてはいけないですよね。
modoは透過の場合、勝手に拡散反射を下げるんです。そのON/OFFができない。
勝手に下げないんならON/OFFできなくてもいいですよ。それならShadeと同じよう自分で下げればいいんだから。
強制で勝手にやっちゃだめでしょ。不思議です。
ちなみにCALLISTOは逆なんです。透過だけその機能がON/OFFでき鏡面反射はできないです。
だけどその場合も強制で下げることは無く自分で下げれば良い(Shadeと同じ)ので問題はないです。