Blender の新たなアプローチによる、SSS
投稿日時 2006年09月27日 | カテゴリ: リソース・チュートリアル
|
元記事:SSS for Blender- HERE! - Blender Artists Forums
たまには BlenderNation 以外からも。
Manuel 氏によると、Giuseppe Canino氏が新たなアプローチにより、Blender で SSS(Sub Surface Scattering:微細面乱反射)を実現する方法を開発されたとのこと。 実際の画像は MakeHuman のページのトップに表示されています。記事はこちら。
基本的にはシャドウマップを使用することにより、擬似的にシミュレートする方法のようです。とりあえず上記にはzipファイルがありますので、そちらを試してみてください。
ちなみにGiuseppe氏によると、この SSS は MakeHuman の皮膚用という話であり、汎用ではないとのことです。あと余談ですが、現在 Manuel 氏は時間がなく、MakeHuman の更新がしばらくできないそうです…。
以下は前掲の記事の理論部分の引用です。
(前略)…シミュレーションを最終局面のみ行い、実際に起こっていることはについては無視することにしました(偉人の言葉を引用すると、正しく思えることは、多分正しい)。半透明な表面(特に生物の皮膚)のレンダリング時に起こる一番奇妙なことは、端が柔らかく、そしてぼやけて不明瞭になることです。物体は柔らかく見えますが、一方、半透明でない部分は硬く、明瞭です。この概念を描き出す方法は非常に複雑ですが、簡単な現象の積み重ねで行えます。 半透明な物体において、私たちがサンプリングした個々のポイントの照明は、その近接するポイントの照明の結果となります。 これはその現象を再現する鍵となり、一点のみを計算に使用する方法では絶対にこの現象の再現に成功しないでしょう。私たちは複数のサンプルを使用する方法をつかわねばならず、「表面の照明を統合」しなければなりません。 この問題は難しく思えますが、さらに注意すると道が見えてきます。観察すると、サブサーフェススキャッタリングの様子は光のグラデーションとディフューズライトの中間に見えます。
幸運なことに、これは基本的に、グラデーションな陰影を生成するために、十分な数のサンプルを使用してレンダリングされた時のシャドウマップを持つ状況なのです。しかしながら、不幸にもこの状況を包括するのは難しいです。通常、光のディフューズ(これは物体上で乗算されます)は、シャドウマップを物体を更に暗くすることなく関与させることができない(結局、照らされていなかった領域を暗くするのが仕事である)ためです。
しかし、シャドウマップの関与をミックスする方法に切り替えることにより、実際に興味深い性質、つまりマルチサンプリングを持つ、局所的な照明モデルに変形できます(これは半透明にするのに必要なもので、確かに物理的には正しくはないですが、まだもっともらしいです)。
したがって我々に必要なものは、単純なフラットシェーダ(ディフューズとスペキュラの標準的な照明モデルを追加するため)ですが、シャドウマップの影響を受けてそのライトを減算するシェーダです。シャドウマップのパラメータを通じて効果をコントロールでき、Bias でどれだけ光が浸透するかをコントロールします。Spot Size と Softness はサンプル数とともに、どれだけ光が拡散するかをコントロールします。
シャドウマップを半透明の計算に使用するアイデアは知られていますが、この実装はそれを直接行うものであり、その正確な定義はできませんが、確実に好ましい結果になるでしょう。
|
|