Volume Effects(ボリューム エフェクト)

 
 
 

| カラー | フラクタル | 減衰 | 近接 | アニメーション | マーチング | バウンディング ボックス | 散乱 | ライト | Render Tree の使い方

カテゴリ: ボリューム

シェーダ ファミリ: ボリューム

出力: カラー

レイ マーチャはフラクタルの密度関数と対になっています。レイ マーチングは、レンダリング中のレイ キャストに沿って、煙が「マーチ」したりステップしている様子を定義します。レイに沿ってマーチしながら、煙の密度に関する情報(ライトのボリュームで定義される)をキャプチャし、mental ray レンダラにその情報を返します。

レイ マーチャは小さいパーティクルからなるクラウドをシミュレートします。ボリュームを通過する各レイはステップに分割されます。各ステップ ポイントで密度関数が評価されます。密度関数は、分離されたR、G、B の各コンポーネントを返します。これらのコンポーネントは、カラー コンポーネントの 1 つ 1 つが散乱した、パーティクル個々の密度を表します。

次の点を考慮しないと、レンダラはかなりスローダウンします。

カラー

カラー0(Color 0)

フラクタルは、最終的に 2 つのカラーがミックスされるためのスカラになります。カラー 0 はこれら 2 つのカラーのうちの一方で、スカラ値 1 に相当します。

カラー1(Color 1)

2 つのカラーのうちのもう一方で、スカラ値 2 になります。

フラクタル

サイズ(Size)

時間をスケーリングします。時間の単位は秒です。1 秒経過するとフラクタルは第 4 次元内で 1 単位分移動します。この値を 2 に設定すると、フラクタルは 2 倍の速さで変化します。

振幅(Amplitude)

フラクタルの、最初の振動のコンポーネントにおける振幅を定義します。全体としての振幅はこの値を超えることがあります。

オフセット(Offset)

フラクタルの 0 におけるオフセットを定義します。通常フラクタル関数は値が 0 から始まります。正の値になるのも負の値になるのも、その確率は半々です。0.5 のとき、フラクタルはこのポイントで成長しながら変動しています。このときカラー 0 とカラー 1 のどちらかに半々の確率で向かっています。フラクタルは 1 を上回ったり、逆に 0 を下回ることが決してないことに注意してください。

しきい値(Threshold)

フラクタルがこの値を下回ると、カラー 0 にクリップされます。パターン内に「アイランド」を生成するのに役立ちます。

拡散(Diffusion)

フラクタル エフェクトの全体的な拡散をコントロールします。低い値では、コントラストの高いエフェクトが生成されます。

ノイズタイプ(Noise Type)

フラクタルを構築するのに 2 つのノイズ関数から選択します。

絶対(Absolute)

フラクタルに適用するノイズの絶対値を設定します。フラクタルには不連続性が生じます。乱流のような効果が得られます。フラクタルの値が常に正になってしまうという副作用があります。

最大反復(Maximum Iterations)

ノイズ反復の最大数を定義します。フラクタルの複雑さを定義するのに、最小レベルとともに用います。2 つの限界値はもっと拘束されて使用されます。

最小レベル(Minimum Level)

反復が続くための最小の大きさです。ノイズ関数がシェーダによって呼び出される頻度を定義します。この値が 0.1 の場合、ノイズの振幅が 0.1 以下ではフラクタルに追加されず反復は終わります。

減衰(Decay)

フラクタルの反復における、減衰の振幅を定義します。頻度を 2 倍とした振幅の比率を定義したものです。次に説明する周波数 乗算の値が 2 の場合、隣り合う反復の振幅はこの値で掛け合わされていきます。

周波数乗算(Frequency Multiplier)

後に続く反復の頻度の乗数を定義します。フラクタルの頻度とは単にスケールの逆数です。頻度を 2 倍にするということは、0.5 でテクスチャをスケール ダウンしたことと同じです。後に続くフラクタルは 1/頻度でスケーリングされます。

減衰

減衰は、距離が進むにつれて密度関数が返す黒の量が増大する状態です。黒の密度関数とは、レイ マーチャ内の密度が 0 である、ということです。これはある高さへ到達するに従って密度が 0 に近づくような、レイヤ化されたフォグを生成するのに役立ちます。

減衰(Falloff)

オンにすると、減衰は計算されません。

Y

Y 軸が大きくなるにつれて、フラクタルは黒に衰退していくように指定します。

半径(Radius)

センターからの半径が大きくなるにつれて、フラクタルは黒に衰退していくように指定します。

距離(Distance)

フラクタルが完全に黒くなる距離を Y 方向または半径方向に定義します。

バイアス(Bias)

減衰を計算するのに用いられる距離にバイアスをかけます。

0.5 では、減衰は距離に従って直線的に変化します。

0 に近づけると、減衰は距離の限界まで認識できません。一方 1 に近づけると、開始点からただちに減衰のほとんどが発生します。

近接

オン(On)

近似計算を有効にします。

円錐角度(Cone Angle)

正確な近似計算をするために、修正するスポットライトの角度を入力します。全方向をポイント ライトが照らす場合は、360 と入力します。

強度スケール(Intensity Scale)

ライトの全体的な強度をコントロールします。

アニメーション

時間を使用(Use Time)

アニメーションを有効にします。

タイムスケール(Time Scale)

ボリューム エフェクトがアニメートするときに使用されるスケールを定義します。

マーチング

ステップサイズ(Step Size)

レイ マーチング中に必要となる、ステップの最大長を定義します。

このパラメータを固定する必要はありません。各ポイントはランダムにジッタリングします。さらにコントラスト制限によって、各ステップはポイントに細分されます。レイ マーチャが、エッジや暗影の境界といった部分にフォーカスを当てるようになります。

最大のサブディビジョン(Maximum Subdivision)

レイ マーチング中の反復の最大数を定義します。

最大差異(Maximum Difference)

マーチング ステップを反復的に細分した場合の密度や強度の差を定義します。

ジッター(Jitter)

サンプル ポイントがそれぞれ計算した位置からランダムに広がる量を定義します。0 ではジッターはありません。1 では、ポイントはジッタリングし、隣のポイントに触れそうになります。空間エイリアシングのアーティファクトを隠し、ノイズに置き換えるのにも使用されます。

バウンディング ボックス

常に有効にする(Always Honor)

シェーダがオブジェクト(ボリューム シェーダ)に適用される場合、このパラメータでボックスを優先させるかどうかを選択します。グローバル シェーダでは、常に優先されます。無限に続くレイにぶつかると、ボックスの遠い側は切り取るために使われます。

X 最小/X 最大(Minimum, Maximum X)

バウンディング ボックスの X パラメータを定義します。

Y 最小/Y 最大(Minimum, Maximum Y)

バウンディング ボックスの Y パラメータを定義します。

Z 最小/Z 最大(Minimum, Maximum Z)

バウンディング ボックスの Z パラメータを定義します。

散乱

アンビエンス(Ambience)

雲を照らすアンビエント ライトのソースをシミュレートします。

吸収(Absorption)

パーティクルに注がれるライトがどのくらい吸収されるかをコントロールします。空気や蒸気ではこの値は 0 のままです。濃い煙や煤ではこの値を大きく(1 程度)します。

非対称(Asymmetry)

シェーダが散乱する振る舞いをコントロールします。0 では、空気のような小さいパーティクルの場合に同量のライトが前方と後方で散乱します。大きい値になると、煙や塵のような大きいパーティクルのように、前方に偏って散乱します。

均等(Uniform)

光の散乱を、アンビエント ライトがあるかのように全方向に対して均一に行います。しかしライト ルックアップは動作したままで、セルフ シャドウが起こります(「Volume Effects(ボリューム エフェクト)」を参照)。

散乱光(uniform_scatt)を選択した場合、レイ マーチャは散乱光を用いて、このポイントで光が散乱するのを定義します。光学的深度は積み重なり、散乱光と伝達光の閉鎖を計算するのに使用されます。

密度スケール(Density Scale)

雲の密度をスケーリングします。全体的なスケーリング係数です。雲やハイパーテクスチャの密度が非常に高い場合、密度関数に干渉させる代わりにこの値を低くすることができます。

ボリューミック密度(Volumic Density)

オブジェクトにボリューム シェーダを適用したときに、このパラメータによって、密度をオブジェクトのスケーリングに合わせて自動的に変化させます。たとえば、オブジェクトを XYZ 方向に 10 分の 1 にスケールダウンする場合、テクスチャの密度は 1,000 倍になります。

透明(Transparent)

テクスチャを不可視にします。つまり、テクスチャによってライトが遮られることはありません。またシェーダはネオンのような赤熱の透明な気体となります。

ライト

散乱光を用いると、レンダリングにいくらか時間がかかります。それは、実際にエリア カメラを選択した場合など、ライト ルックアップのそれぞれにそれなりの時間がかかるからです。散乱光とシャドウ ライトとして同じライトを選択した場合、それぞれのライトの呼び出しは現在位置からライトまでのレイ マーチングとなります。ですので、レンダリング時間はほぼ 2 乗となります。大きなステップ サイズやハイパーテクスチャのように非常に密度の高いマテリアルの場合にのみ、この方法を用いてください。

注:セルフ シャドウはライトまでのすべての距離を計算します。ライトがバウンディング ボリュームの外部にあったとしてもです。ですので、ボリューム ライトはバウンディング ボリュームの内部になくてはなりません。

ライト

スキャッター ライト(Scatter Lights)

高速レンズ エフェクトを計算するためのシーンのスキャッター ライトを定義します。

詳細については、「ライト一覧を使用する」(「直接照明」)を参照してください。

シャドウ ライト(Shadow Lights)

高速レンズ エフェクトを計算するためのシーンのシャドウ ライトを定義します。

詳細については、「ライト一覧を使用する」(「直接照明」)を参照してください。

Render Tree の使い方

このボリューム エフェクトをシーンではなくオブジェクトに適用するには、このシェーダをオブジェクトのマテリアル ノードの[Volume]入力へ接続します。ボリューム シェーダは、Render Tree で拡張したり構築することはできません。