Volume 2.7

ボリュームレンダリングは、炎や煙、霧、ガラスへの吸収といった、サーフェスメッシュだけでは表現できない多くの効果を表現するために使用されます。
ボリュームを設定するためには、ボリュームが存在する境界を定義するためのメッシュを作成します。
マテリアルにおいて、通常、サーフェースノードを外し、その代わりにボリューム内のシェーディングを定義するボリュームノードを接続します。
ガラスへの吸収といった効果のためには、サーフェスシェーダとボリュームシェーダの両方を使用することができます。
World もまた、霧のような効果を作成するためにボリュームシェーダを使用することができます。


ボリュームシェーダ

光がボリュームを通過し、それと相互作用する特定の効果モデルの、3 つのボリュームシェーダノードをサポートしています。

ボリューム吸収

Volume Absorption ノードは、ボリュームを通過するときに光の一部を吸収します。 これは、例えば、黒煙や着色ガラスといったオブジェクトや、Volume Scatter ノードとミックスしてのシェードに使用することができます。 このノードは、Transparent BSDF シェーダにやや似ており、光の一部をブロックし、それ以外の光はまっすぐに通過します。
bmps_VolumeAbsorption_d1.0.png

ボリューム散乱

Volume Scatter ノードは、ボリューム内の粒子に当たると、異なる方向に光散乱させます。Anisotropy (異方性) は、光が散乱しやすくなる方向を設定します。0 は Diffuse BSDF シェーダにやや似ていて、すべての方向に均等に光散乱させ、負の値は主に後方に光散乱させ、正の値は主に前方に光散乱させます。このノードは、白煙や雲のシェードに使用することができます。
bmps_VolumeScatter_d1.0_a0.0.png

発光

Emission ノードは、ボリュームからの発光となり、例えば火のシェードに使用することができます。
bmps_VolumeEmission_s2.0.png


密度

すべてのボリュームシェーダは、Density (密度) 入力ソケットを備えています。Density は、ボリューム内でどのくらい光が相互作用して吸収や散乱され、どのくらいが真っ直ぐに透過するかを定義します。煙のような効果のために、ボリューム内のどこにどのくらいの煙があり (Density > 0)、どこに煙がないのか (Density = 0) を指定します。
現実世界ではボリュームは粒子からなり、高密度とは単位体積当たりにより多くの粒子があることを意味します。多くの粒子があるということは、光はストレートに通過するよりもむしろ、粒子に衝突して吸収または散乱される可能性が高いということを意味します。


ボリュームマテリアル

サーフェスシェーダとの相互作用

Material Output は、Surface シェーダおよび Volume シェーダのどちらか一方もしくは両方を使用することができます。両方使用する事は、例えば、Glass BSDF シェーダや Glossy BSDF シェーダを Surface シェーダに組み合わせ、光が表面を通過する際にその一部が吸収されて欲しいガラスや水、氷といったマテリアルに便利です。
サーフェスシェーダが反射または光を吸収しない場合、光はボリュームに入ります。ボリュームシェーダが指定されていない場合は、光はメッシュの反対側にストレートに通過します。ボリュームシェーダが指定されていれば、光がメッシュのボリュームを通過するときに、ボリュームシェーダは光の相互作用を表現し、光は散乱または吸収されたり、ボリュームの任意のところから放出されます。

メッシュトポロジー

ボリュームレンダに使用されるメッシュは、閉多様体である必要があります。つまり、メッシュに穴があってはいけません。穴があったり、1 つのエッジに 3 つ以上のフェースが接続されていることなく、各エッジには正確に 2 つのフェースが接続されている必要があります。
法線は正しい結果を得るために、外側を指している必要があります。法線は光線がボリュームに入るか出るかどうかを決定するために使用されます。法線が間違った方向を指したりメッシュ内に穴がある場合、レンダラはボリュームの内側と外側を決定することができません。これらのルールはガラスの屈折を正しくレンダリングするためと同じです。


ボリュームワールド

ボリュームシェーダは、全ワールドに適用することができ、全空間を充填します。
現在、ボリュームシェーダを使用した場合、ワールドのサーフェスシェーダや Sun ランプは効果はなく、夜間や暗いシーンに最も有用です。これは、ワールドのバックグラウンドは無限遠であると仮定しているためであり、太陽光としては十分に正確であるためです。しかし、このような霧や大気中の散乱などの影響をモデル化するためには、太陽と地球の間がほとんど何もない空間であるように、ボリュームが空間全体を満たしていることとするのは良い仮定ではありません。このような効果のためには、シーンを取り巻くボリュームオブジェクトを作成した方がよいです。このオブジェクトのサイズにより、どれだけの光が散乱又は吸収されるかが決まります。


散乱バウンス

雲やサブサーフェススキャッタリングの散乱のような現実世界の効果は、多くの散乱バウンスを必要とします。しかし、そのような効果の無作為なレンダリングは、時間が掛かり、ノイズが多くなります。典型的な映画制作シーンでは、レンダリング時間を制御下で保つために 0 または 1 バウンスだけ使用される可能性があります。0 ボリュームバウンスをレンダリングで得る効果は「単一散乱」として知られ、より多くのバウンスからの効果は「多重散乱」となります。
皮膚や牛乳などの材質のレンダリングのための SSS (サブサーフェススキャッタリング) シェーダは、大変効率的であるが正確ではない多重散乱効果のような近似です。
雲や煙といったハッキリとした面を持たない材質の場合、ボリュームレンダリングが必要となります。これらは沢山の散乱バウンスがあり最適に見えますが、実際は許容できるレンダリング時間を維持するためにバウンス数を制限する必要がある場合があります。


制限事項

  • 現在、以下はサポートしていません
    • ボリュームメッシュにおける正しいレイの可視性
  • 現在、以下の項目は GPU 上では使用できません
    • 煙 / 炎のレンダリング
    • Equi 角 / MIS ボリュームサンプリング
    • ボリュームマルチライトサンプリング


  • 最終更新:2015-10-02 17:44:56

このWIKIを編集するにはパスワード入力が必要です

認証パスワード