Shaders de brouillard

Fog shaders are used to define how fog is added (or subtracted) from a scene in a given area. Fog shaders are always used together with FogVolumes and volumetric fog. Fog shaders only have one processing function, the fog() function.

The resolution of the fog shaders depends on the resolution of the volumetric fog froxel grid. Accordingly, the level of detail that a fog shader can add depends on how close the FogVolume is to the camera.

Les shaders de brouillard sont une forme spéciale de shader de calcul qui est appelé une fois pour chaque froxel qui est touché par une boîte de délimitation alignée sur les axes (AABB) du FogVolume associé. Cela signifie que les froxels qui touchent à peine un FogVolume donné seront toujours utilisés.

Variables intégrées

Values marked as in are read-only. Values marked as out can optionally be written to and will not necessarily contain sensible values. Samplers cannot be written to so they are not marked.

Variables intégrées Globales

Global built-ins are available everywhere, including in custom functions.

Intégré

Description

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 affected by time_scale but not by pausing. If you need a TIME variable that is not affected by time scale, add your own global shader uniform and update it each frame.

in float PI

A PI constant (3.141592). A ratio of a circle's circumference to its diameter and amount of radians in half turn.

in float TAU

A TAU constant (6.283185). An equivalent of PI * 2 and amount of radians in full turn.

in float E

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

Fog built-ins

All of the output values of fog volumes overlap one another. This allows FogVolumes to be rendered efficiently as they can all be drawn at once.

Intégré

Description

in vec3 WORLD_POSITION

Position of current froxel cell in world space.

in vec3 OBJECT_POSITION

Position of the center of the current FogVolume in world space.

in vec3 UVW

UV 3-dimentionnels, utilisé pour cartographier une texture 3D au FogVolume actuel.

in vec3 SIZE

Size of the current FogVolume when its shape has a size.

in vec3 SDF

Signed distance field to the surface of the FogVolume. Negative if inside volume, positive otherwise.

out vec3 ALBEDO

Output base color value, interacts with light to produce final color. Only written to fog volume if used.

out float DENSITY

Output density value. Can be negative to allow subtracting one volume from another. Density must be used for fog shader to write anything at all.

out vec3 EMISSION

Output emission color value, added to color during light pass to produce final color. Only written to fog volume if used.