On this page |
概要 ¶
このシェーダを使用することで、煙、炎、爆発のシミュレーションまたはMaterialXに基づいてプロシージャルに生成されたボリュームのリアルなレンダリング結果を生成することができます。
Smoke(煙)とEmission(発光) ¶
これら2つのコンポーネントを組み合わせて、最終的なボリュームレンダリングを構成します。 煙突の煙、塵雲、その他の全般的な煙要素といった一部のレンダリングでは、煙をシェーディングするだけで済みます。 Smoke(煙)は、主に密度とカラーで制御します。 その一方でEmission(発光)は、炎から放出される光の全体的な強度とカラーを制御します。
これらの各コンポーネントは、作業内容によってボリュームが異なります。
通常ではdensity
ボリュームは煙コンポーネントにバインドし、 Smoke タブのパラメータでその結果のルックを制御します。
このシェーダでは最大2個の発光要素を使用することができます: Scatter , Fire 。
Scatter はPyro Bake Volume SOPで生成されたscatter
ボリュームを使用します。このscatter
ボリュームでは内部散乱の効果を事前にベイクしておくことができます。
この散乱は本当の挙動を近似処理したものですが、この手法の方がボリュームライトと多数のボリュームバウンスを使用するよりもレンダリング負荷がはるかに軽いです。
さらに、ルックをもっとアート志向で制御しやすくなります。
Fire には、Pyro Shader - Classicの頃のような従来のコントロールセットが用意されています。 特に、これらの発光要素には Intensity フィールドと Color フィールドが必要で、それぞれのフィールドは放出される光の量とカラーを制御します。 Scatter と同様で、 Fire でも他のボリュームでマスクすることができます。
Tip
どの範囲設定でも、それぞれのバインドされたボリュームの値の範囲を考慮してください。 Export タブの Compute Min/Max Values が有効になっている場合、Pyro Solverは、それぞれエクスポートされるボリュームの最小値と最大値をPrimitiveアトリビュートに書き込みます。
Emissionマスク ¶
Pyro Shaderには、 Scatter と Fire を他のフィールドでマスクする機能があります。
デフォルトでは、mask
フィールドにdensity
が設定されていて、density
が高い領域内の発光を減らす効果があります。
マスクは、煤煙に焦げ焦げなディテールを取り入れることができるので、特に爆発のレンダリングで役立ちます。
正しく使用すると、ボリュームの内部が白熱して、煙の隙間から白熱が垣間見えるようになります。
以下の画像は、Smoke、Scatter、Scatter Mask、それらを最終的に合成した画像を示しています。
Scatter, Fire ¶
使用可能なこれら3個の発光コンポーネントは最終レンダリングで一緒に合成されますが、これらはどれも用途が異なります。
-
Scatter は主に爆発内部での光の散乱を模倣するために使用し、Pyro Bake Volumeで生成可能な特別な
scatter
ボリュームに依存します。SmokeとScatter(左) 対 Smokeのみ(右):
-
Fire は炎や火炎のシェーディングに使用することができます。デフォルトでは、発光の強度とカラーのどちらにも
temperature
ボリュームを使用します。このコンポーネントにマスクを適用することも可能です。SmokeとFire(左) 対 Smokeのみ(右):
Clouds ¶
Clouds exhibit strong multiple light scattering dominated by scattering in the light direction. This means rendering realistic clouds requires high anisotropy value (around 0.877
) and multiple volumetric ray bounces, therefore are much more complicated and expensive to evaluate.
Cloud Render with Multiple Volumetric Ray Bounces ¶
The image of the left side shows a billowy cloud with Anisotropy set to 0.877, however the Volume Limit on Karma Render Settings is set to 0
, as a result, it renders the cloud black. To let more light through the cloud, the image on the right uses Volume Limit of 32
.
This is a step towards the right direction; however, the render time already considerably increased. Setting Volume Limit to 100
or even above 200
would further improve the cloud look, however render times would increase drastically.
Luckily, there are some tricks we can utilize to improve the quality of the cloud look, while lowering render time and keeping the Volume Limit at 32
.
-
Density Adjustment
We can exponentially decrease the cloud density with each volumetric ray bounce using by increasing the Extinction Falloff parameter on the shader. This helps to brighten the shadowed regions since the rays are less attenuated and exit the medium sooner with a fewer number of ray bounces. This effect helps to reduce rendering time for clouds that otherwise need many more ray bounces.
While it is very tempting to considerably increase Extinction Falloff to shorten render time, the look of the cloud must be considered.
In the following video, the Extinction Falloff is animated from
0
to1
. Notice, at first the cloud brightened, specially the shadowed regions. In this example, the cloud reaches its peak brightness at values roughly between0.127-0.21
. Any value within this range is ideal to work with, while further increase will only make the cloud less bright with little contrast. -
Anisotropy Adjustment (Roughness)
Similarly to the density adjustment, we can also control anisotropy based on the number of volumetric ray bounces. One way to do this is to enable Roughness for anisotropy, which will exponentially lower the anisotropy towards zero with each volumetric ray bounces.
This video shows the effect of increasing Roughness when the Extinction Falloff is set to
0.21
. With increasing value, the cloud brightens, and we achieve the typical white powder like billowy look. The larger the roughness, the denser the cloud and sharper the details will become.The two images compare Extinction Falloff values against the same amount of Roughness. The right side of the image uses too high (
0.75
) extinction falloff value making the cloud pale with less contrast. -
Anisotropy Adjustment (Secondary Anisotropy)
As an alternative, instead of Roughness, enable Use Secondary Anisotropy to blend between two anisotropy values.
The image on the left side shows a render using Roughness set to
1
, while the image on the right side rendered with secondary anisotropy enabled, and uses0.5
as Secondary Mix and0
as Secondary Anisotropy. The image on the left side is considerably smoother, with less sharp details. This can be helped to an extent by increasing Roughness. On the other hand, the image on the right side seems to drastically increase the brightness of areas with less density.This video shows the effect of changing the Secondary Mix. Notice how the render becomes much noisy with various mix values, which is not an issue when using Roughness to change anisotropy.
パラメータ ¶
Smoke ¶
Enable Smoke
ボリュームの煙の部分を有効にします。 煙は、その中を通過する光を吸収して減衰させます。 Smoke Volume を使用して、煙の密度を記録したボリュームを指定します。
Density Scale
Controls the overall density of the smoke. Increasing this value will give the smoke a thicker appearance. Reducing it will make the smoke less opaque. To remap the thickness of the smoke, change the menu on the right side of this parameter from Constant to Use Ramp.
Density Range
Specifies the horizontal extent of the Density Ramp, which is evaluated to get the transformed smoke density.
This parameter is available when the menu next to Density Scale is set to Use Ramp.
Density Ramp
Controls how the smoke’s density values are remapped. The horizontal axis of this ramp spans Density Range.
This parameter is available when the menu next to Density Scale is set to Use Ramp.
Control Range
The values of Density Control Volume are remapped from this range to Scale Range before the result is multiplied by density values.
Scale Range
Controls the range of multipliers that can be applied to density by the control volume. Set the menu on the right to Use Ramp if you want to control the mapping. When this menu is set to Constant, mapping is linear.
Control Ramp
Determines how the control volume values are mapped to density scales. The horizontal and vertical axes of this ramp span Control Range and Scale Range, respectively.
This parameter is available when the menu next to Scale Range is set to Use Ramp.
Smoke Brightness
煙の全体的な明るさを制御します。 この値は、煙のカラーに対する乗数として作用します。 この値を上げると、煙がもっと明るくなります。
Smoke Color
煙の全体的なカラーを制御します。 より自然に見える煙を得るには、このパラメータの右側にあるメニューで Constant から Use Ramp に変更します。 これによって、煙のカラーを密度で可変させることができます。
Source Range
The minimum and maximum values (given by Smoke Color Source Volume) to map to the left and right endpoints of the Density Color Ramp.
Shadow Color Ramp
Controls how the values (given by Smoke Color Source Volume) are mapped to its smoke color. The horizontal axis of this ramp spans the Source Range.
Absorption Color
光がボリュームを通過する時に吸収されるカラー。
Source Range
The minimum and maximum values (given by Absorption Color Source Volume) to map to the left and right endpoints of the Absorption Color Ramp.
Absorption Color Ramp
Controls how the values (given by Absorption Color Source Volume) are mapped to its absorption color. The horizontal axis of this ramp spans the Source Range.
Shadow Color
ボリュームから落とされるシャドウのカラー。 このパラメータの右側にあるメニューを Constant から Use Ramp に変更することで、煙の密度に基づいてシャドウのカラーを変更することができます。
Source Range
The minimum and maximum values (given by Shadow Color Source Volume) to map to the left and right endpoints of the Shadow Color Ramp.
Shadow Color Ramp
Controls how the values (given by Shadow Color Source Volume) are mapped to its shadow color. The horizontal axis of this ramp spans the Source Range.
Shadow Density
この乗数は、ボリュームをライティングした時に Density Scale に適用されます。 この値を上げると、ビューアに煙の不透明度の影響を与えることなく、ボリュームを貫通する光を減らします。 この値を下げると、煙の不透明度の見え方を変えることなく光の吸収を減らします。
Tint Smoke Color with Cd
When turned on, the smoke color set by the Smoke Color parameter is multiplied by Cd
color volume (given by Cd Volume) if it exists to obtain the final smoke color.
Mix Smoke Color with Cd using Alpha
When turned on, the Alpha
volume is used to blend between the Smoke Color and the Cd
volume (given by Cd Volume) instead. Where alpha has a value of 1
, it will use the color from the Cd
volume and where Alpha is 0
, it will use the color set by Smoke Color. When this checkbox is turned off, the smoke color is the product of these two values instead.
Anisotropy
Controls the direction in which light entering the volume is scattered. At the default of 0
, light scatters evenly in all directions (isotropic scattering). Positive values up to 1
scatter more and more in the same direction as the incoming light. Negative values down to -1
scatter backwards. For clouds use a value around 0.877
.
Roughness
Use this to control how fast the a none-zero anisotropy value (given by Anisotropy) changes to 0
based on the number of volumetric ray bounces. This is used for cloud rendering when the Anisotropy value is set to a large forward scattering value (around 0.877
). The larger this value, the brighter, sharper, and less noisy the cloud will render. Larger density clouds require larger values as well. To render a volume with multiple volumetric ray bounces, increase the Volume Limit on the Karma Render Settings LOP.
The video shows the effect of increased roughness on a cloud volume:
Use Secondary Anisotropy
Enables a secondary phase function, which is blended linearly with the primary anisotropy. This allows the phase function to include both forward (positive values) and backwards (negative values) scattering. This can improve cloud rendering where you can fill in the cloud with backwards scattering, while maintaining the silver lining on the edges with forward scattering.
Secondary Mix
Controls the blend between the primary (given by Anisotropy) and secondary anisotropy (given by Secondary Anisotropy).
This video shows the effect of changing secondary mix:
Secondary Anisotropy
Controls the secondary scattering that can improve cloud rendering. To preserve a silver lining on the edges of the cloud, make the primary scattering (given by Anisotropy) largely positive, while using 0
or lower values for this parameter to make the center of the cloud look more 'dark'.
Extinction Falloff
When the number of volumetric ray bounces reached the Start Level, the extinction coefficient is scaled by the power of this value. A value of 0
has no effect, while a value less then 1.0
exponentially reduces the extinction coefficient, which helps to brighten the shadowed regions since the rays are less attenuated and exit the medium sooner with a fewer number of ray bounces. This effect helps to reduce rendering time for clouds that otherwise need many more ray bounces. To render a volume with multiple volumetric ray bounces, increase the Volume Limit on Karma Render Settings .
The video shows the effect of increased falloff on a cloud volume:
Albedo Contribution
A constant multiplier for the albedo that is used in phase function. This helps to increase the direct lighting contribution. Values above 1.0
might appear softer and more translucent. To render a volume with multiple volumetric ray bounces increase the Volume Limit on Karma Render Settings .
Start Level
This number of volumetric ray bounces must be reached before the Extinction Falloff and Albedo Contribution multiplier takes effect. To render a volume with multiple volumetric ray bounces increase the Volume Limit on Karma Render Settings .
Scatter ¶
Enable Scatter
ボリュームの発光部分の散乱を有効にします。 これは爆発のシェーディングに使用します。 これは、レンダリングでも使用される Scatter Volume を生成します。 Source Volume を使用して、この発光を制御するボリュームを指定します。
Enable Scatterを無効(右)または有効(左)にした場合のビューポートの爆発( Enable Mask を無効にしています)。
Intensity Scale
散乱の発光強度を設定します。 この値を上げると散乱が明るくなります。
Hot Core Scale
散乱の輝度が明るい箇所における散乱の発光強度をスケールします。 爆発が時間の経過とともにフェードアウトしていくにつれて、散乱値の輝度も時間の経過とともに減少するので、このパラメータが非常に大きな値でも、このパラメータの効果が弱くなっていくのが確認できます。 爆発の開始時に爆発の明るさを上げるのは良い考えです。 Hot Core Scale の値を上げると、爆発の割れ目が明るくなります。
Color Correct
散乱カラーのカラー補正コントロールを有効にします。
Hue
値が0-1範囲で循環する色相を回転させます。
Saturation
彩度を調整します。
Enable Mask
閾値範囲を使って Mask Volume に基づいて発光をマスクします。
Mask Center と Mask Width がそのマスク範囲を制御します。
デフォルトでは、mask
ボリュームがこの範囲の最小値と最大値の箇所において、それぞれ追加発光乗数が1
と0
になります。
mask
値が大きい領域の発光が弱くなります。
マスクは、爆発の焦げ目の付いたディテールを引き出すのに役立ちます。
マスクなし(右)とマスクあり(左)の散乱。
Mask Center
Mask Width と併用して、このパラメータは、発光のマスクに使用される値の範囲を制御します。
mask
値の有効範囲は、Mask Center - Mask Width * 0.5
からMask Center + Mask Width * 0.5
までです。
このパラメータに低い値を設定すると、より多くの発光がマスクされ、爆発があまり明るく白熱しなくなります。
このパラメータに高い値を設定すると、ボリュームが内部で白熱するようになり、この白熱が煙の隙間から垣間見えるようになります。
以下の動画では、 Mask Width を固定にしたまま、このパラメータを上げた効果を示しています。
Mask Width
Mask Center と併用して、発光のマスクに使用される値の範囲を制御します。
mask
値の有効範囲は、Mask Center - Mask Width * 0.5
からMask Center + Mask Width * 0.5
までです。
Use Mask Ramp
ランプを使用して、( Mask Center と Mask Width で設定された)最小マスク閾値と最大マスク閾値の間での発光の変化の挙動を設定することができます。
Mask Ramp
( Mask Center と Mask Width で設定された)最小マスク閾値と最大マスク閾値の間での発光の変化の挙動を設定します。 白が完全発光で、黒が発光なしを意味します。
Note
デフォルトの白から黒のランプは、 Use Mask Ramp が無効な時とまったく同じ結果を生成します。
ランプが左から右に向かって白から黒に設定した場合:
ランプが左から右に向かって黒から白に設定した場合:
Fire ¶
Enable Fire
2次発光コンポーネントを有効にします。 Fire は主に炎や火炎のタイプのシミュレーションで使用します。
このコンポーネントは Scatter と非常に似ています。 唯一の違いは、 Scatter は発光の強度とカラーに同じフィールドを使用する必要があることと、 Scatter には発光を広げるためのブラー機能が用意されていることです。
Enable Fire を無効(右)または有効(左)にした場合のビューポートの炎シミュレーション( Enable Mask を無効にしています)。
Enable Scatter を無効(右)または有効(左)にした場合のビューポートの炎シミュレーション( Enable Fire を有効にしています)。
Intensity Scale
炎の発光強度を設定します。 この値を上げると炎が明るくなります。 このパラメータの右側にあるメニューを Use Ramp に設定することで、この強度をリマップすることができます。
Source Range
Fire Intensity Ramp の左端と右端にマッピングする最小ソース値と最大ソース値。 ボリュームの発光部分を減らすには最小ソース値を上げます。
最小ソース値をゼロから上げることで、炎の領域が収縮します( Enable Mask を無効にしています)。
Fire Intensity Ramp
そのままの Intensity Volume 値を有効な強度にマッピングする方法を制御します。 このランプの横軸が Source Range になっています。
Color Mode
炎のカラーの計算方法を設定します。 Color Ramp は、 Fire Color Ramp を使用して、指定された Source Range からカラーをマッピングします。 白熱ブラックボディの温度に基づいてカラーを計算したいのであれば、 Physical Blackbody または Planck Backbody を選択します。
Note
Planck Blackbody は、計算されたカラーに発光パワーを組み込みます。
このパワーは、高温で急激にスケールするので、それを補正するために発光強度を下げる必要性が出てくる場合があります。
純粋に物理的なブラックボディを使用したいのであれば、発光強度を1
に設定し、そのIntensity Rampを一定の1
に設定します。
Source Range
Fire Color Ramp の左端と右端にマッピングする最小ソース値と最大ソース値。
Fire Color Ramp
Color Volume 値を発光カラーにマッピングする方法を制御します。 このランプの横軸が Source Range になっています。
Temperature Scale
Color Volume 値にスケールを適用した後の値がブラックボディカラーにマッピングされます。
Enable Mask
閾値範囲を使って Mask Volume に基づいて発光をマスクします。
Mask Center と Mask Width がそのマスク範囲を制御します。
デフォルトでは、mask
ボリュームがこの範囲の最小値と最大値の箇所において、それぞれ追加発光乗数が1
と0
になります。
mask
値が大きい領域の発光が弱くなります。
マスクは、爆発の焦げ目の付いたディテールを引き出すのに役立ちます。
マスクなし(右)とマスクあり(左)の散乱。
Mask Center
Mask Width と併用して、このパラメータは、発光のマスクに使用される値の範囲を制御します。
mask
値の有効範囲は、Mask Center - Mask Width * 0.5
からMask Center + Mask Width * 0.5
までです。
このパラメータに低い値を設定すると、より多くの発光がマスクされ、爆発があまり明るく白熱しなくなります。
このパラメータに高い値を設定すると、ボリュームが内部で白熱するようになり、この白熱が煙の隙間から垣間見えるようになります。
以下の動画では、 Mask Width を固定にしたまま、このパラメータを上げた効果を示しています。
Mask Width
Mask Center と併用して、発光のマスクに使用される値の範囲を制御します。
mask
値の有効範囲は、Mask Center - Mask Width * 0.5
からMask Center + Mask Width * 0.5
までです。
Use Mask Ramp
ランプを使用して、( Mask Center と Mask Width で設定された)最小マスク閾値と最大マスク閾値の間での発光の変化の挙動を設定することができます。
Mask Ramp
( Mask Center と Mask Width で設定された)最小マスク閾値と最大マスク閾値の間での発光の変化の挙動を設定します。 白が完全発光で、黒が発光なしを意味します。
Note
デフォルトの白から黒のランプは、 Use Mask Ramp が無効な時とまったく同じ結果を生成します。
ランプが左から右に向かって白から黒に設定した場合:
ランプが左から右に向かって黒から白に設定した場合:
Bindings ¶
Density Volume
The name of the volume to be used as smoke. Usually you should leave this as density
.
Density Control Volume
The control volume used to modify smoke density values. This volume is used if Scale by Control Volume is turned on. Use tempearture
or flame
for fire effects, where you want the density scaled according to your emissive volume.
Smoke Color Source Volume
Selects the volume that is used for mapping the smoke color. Setting this to Smoke Density will use the modified smoke density by the shader. Otherwise, Geometry Volume will use the specified incoming volume from the geometry.
Custom Volume
The volume that is used for mapping the smoke color.
Absorption Color Source Volume
Selects the volume that is used for mapping the absorption color. Setting this to Smoke Density will use the modified smoke density by the shader. Otherwise, Geometry Volume will use the specified incoming volume from the geometry.
Custom Volume
The volume that is used for mapping the absorption color.
Shadow Color Source Volume
Selects the volume that is used for mapping the shadow color. Setting this to Smoke Density will use the modified smoke density by the shader. Otherwise, Geometry Volume will use the specified incoming volume from the geometry.
Custom Volume
The volume that is used for mapping the shadow color.
Cd Volume
The name of the volume to be used as the color volume. Usually you should leave this as Cd
.
Alpha Volume
The name of the volume to be used as the alpha volume. Usually you should leave this as Alpha
.
Anisotropy Control Volume
Scatter Volume
散乱カラーに使用されるボリュームの名前。 通常では、このボリュームはPyro Bake Volumeノードで作成します。
Mask Volume
Selects the volume that is used for masking the scatter emission, when Enable Masking is on. Setting this to Smoke Density will use the modified smoke density by the shader. Otherwise, Geometry Volume will use the specified incoming volume from the geometry.
Custom Volume
The volume that is used for masking the scatter emission.
Alpha Volume
Selects the volume that is used for multiplying the scatter emission, when Enable Masking is on. Setting this to Smoke Density will use the modified smoke density by the shader. Otherwise, Geometry Volume will use the specified incoming volume from the geometry.
Alpha Volume
When Enable Mask is on, the scatter emission is multiplied by this volume.
Intensity Volume
炎の強度に使用されるボリュームの名前。
Color Volume
炎のカラーに使用されるボリュームの名前。
Mask Volume
Selects the volume that is used for masking the fire emission, when Enable Masking is on. Setting this to Smoke Density will use the modified smoke density by the shader. Otherwise, Geometry Volume will use the specified incoming volume from the geometry.
Custom Volume
The volume that is used for masking the fire emission.
Alpha Volume
Selects the volume that is used for multiplying the fire emission, when Enable Masking is on. Setting this to Smoke Density will use the modified smoke density by the shader. Otherwise, Geometry Volume will use the specified incoming volume from the geometry.
Custom Volume
When Enable Mask is on, the fire emission is multiplied by this volume.
See also |