Up to date

This page is up to date for Godot 4.3. If you still find outdated information, please open an issue.

Fogシェーダー

Fogシェーダーは特定の領域のシーンからフォグを追加 (または削除) する方法を定義するために使用されます。Fogシェーダーは常に FogVolumes およびボリューメトリックフォグと一緒に使用されます。Fogシェーダーにはプロセッサー関数が1つだけあり、それは fog() 関数です。

Fogシェーダーの解像度はボリューメトリックフォグの視錐台ボクセルのグリッド解像度に依存します。したがってFogシェーダーが追加できるLODは、FogVolume がカメラにどれだけ近いかによって決まります。

Fogシェーダーは特別なコンピュートシェーダーで、関連する FogVolume の軸に整列したバウンディング ボックスに触れる視錐台ボクセルごとに 1 回呼び出されます。これは指定された FogVolume にかろうじて触れる視錐台ボクセルが引き続き使用されることを意味します。

ビルトイン

"in"とマークされた値は読み取り専用です。 "out"とマークされた値はオプションの書き込み用であり、必ずしも適切な値を含むとは限りません。サンプラーには書き込む対象ではないためマークされません。

グローバルビルトイン

グローバルビルトインはカスタム関数を含めあらゆる場所で使用できます。

ビルトイン

説明

in float TIME

Global time since the engine has started, in seconds. It repeats after every 3,600 seconds (which can be changed with the rollover setting). It's not affected by time_scale or pausing. If you need a TIME variable that can be scaled or paused, add your own global shader uniform and update it each frame.

in float PI

PI 円周率の定数 (3.141592)。円の円周とその直径の比率、および半回転のラジアン量。

in float TAU

定数 TAU` は円周率の2倍 (6.283185)。 PI * 2 と、1回転のラジアン量に相当します。

in float E

An E constant (2.718281). Euler's number and a base of the natural logarithm.

Fogビルトイン

Fogボリュームの出力値はすべて互いに重なり合います。これにより FogVolumes をすべて一度に描画できるため、効率的にレンダリングできるようになります。

ビルトイン

説明

in vec3 WORLD_POSITION

ワールド空間における現在の視錐台ボクセルのセルの位置。

in vec3 OBJECT_POSITION

ワールド空間における現在の FogVolume の中心の位置。

in vec3 UVW

3次元UV。3D テクスチャを現在の FogVolume にマッピングするために使用されます。

in vec3 SIZE

shape にサイズがあるときの、現在の FogVolume のサイズ。

in vec3 SDF

FogVolume の表面までのSigned Distance Field (SDF)。ボリューム内にある場合はマイナス値、外にある場合はプラス値です。

out vec3 ALBEDO

基本の色を出力します。これは光と相互作用して最終的なカラーを生成します。使用する場合はフォグボリュームにのみ書き込まれます。

out float DENSITY

密度の値を出力します。あるボリュームを別のボリュームから減算できるようにするにはマイナスの値を指定します。Fogシェーダーで何かに書き込む際は、この密度の指定は必須です。

out vec3 EMISSION

発光色を出力します。光の通過中にこの発光色が追加されて最終的な色が生成されます。使用した際はフォグボリュームにのみ書き込まれます。