From Valve Developer Community
Revision as of 09:12, 21 July 2021 by Ljj (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
English 简体中文
An env_cubemap_fog
The Citadel from Half Life: Alyx without and with cubemap fog respectively

env_cubemap_fog is a point entity available in the following Source 2 engine games:

Half-Life: Alyx Half-Life: Alyx , SteamVR Home SteamVR Home . The cubemap fog entity is one of several methods of adding fog along with gradient fog and volumetric fog to a level. It adds a global MIP fog based on a cubemap texture. The fog samples the MIP maps of the texture based on view distance, using lower resolutions up close. This gives a high degree of control of the fog color based on both direction and distance, and is useful for matching the fog color to the lighting in open outdoor environments. It is usable in conjunction with other fog effects to create a nicer looking scene. Together with env_gradient_fog, it fills a similar role as env_fog_controller from Source 1.

To do: Add a link to a tutorial on volumetric fogging when it's ready.

In addition to view distance blending, absolute height based blending in the world space is also supported. This effect is additive with the distance blending.


1. Place down the env_cubemap_fog

2. Under the "Cubemap Texture" parameter, change it to whatever .vtex cubemap texture is to your liking

3. Adjust the distance values to your liking


Start Disabled (startDisabled) <boolean>

Cubemap Texture (cubemapfogtexture) <string>
The texture (.vtex file) to use for the cubemap fog.
Note.png Note: This requires a texture setup as a VTEX, rather than a material.

To do: Document setting up and compiling textures.

Cubemap LOD (mip) Bias (cubemapfoglodbiase) <float>
Adjust how quickly the cubemap blurs out at closer distances. A value of 0.0 always uses the lowest resolution MIP over the entire range, while a value of 1.0 uses the highest.

Fog Start Distance (cubemapfogstartdistance) <float>
The distance from the player at which the fog will start to fade in.

Fog End Distance (cubemapfogenddistance) <float>
The distance from the player at which the fog will be at full strength.

Distance Falloff Exponent (cubemapfogfalloffexponent) <float>
Exponent for distance falloff. For example, 2.0 is proportional to square of distance.

Height Fog Width (cubemapfogheightwidth) <float>
The distance between the start of the height fog and where it is fully opaque. Setting this to 0 will disable height based blending.

Height Fog Start (cubemapfogheightstart) <float>
The absolute height in the map at which the height fog will start to fade in.

Height Fog Exponent (cubemapfogheightexponent) <float>
Exponent for height falloff. For example, 2.0 is proportional to square of distance.

Source 2 Transform:

origin <coordinates>
The world space origin of the entity.
angles <angles>
The pitch, yaw, roll orientation of the entity.
scales <vector>
The x, y, z scales of the entity. Not all entities can use this.
Transform Locked <boolean>
Lock the transform at its current value, preveting the transform of the node from being modified.
Force Hidden <boolean>
Visually hides the entity from the viewports. The Outliner pane will still list hidden entities.
Editor Only <boolean>
Entity is only displayed in Hammer and will not appear in game.

Source 2 Targetname:

Name (targetname) <string>
The targetname that other entities refer to this entity by.
Entity Scripts (vscripts) <scriptlist>
Space delimited list of VScript files (without file extension) that are executed after all entities have spawned. The scripts are all executed in the same script scope, later ones overwriting any identical variables and functions.


Source 2 Targetname:

Removes this entity from the world.
Removes this entity and all its children from the world.
AddOutput <string>
Evaluates a keyvalue/output on this entity. It can be potentially very dangerous, use with care.
Format: <key> <value>
Format: <output name> <targetname>:<inputname>:<parameter>:<delay>:<max times to fire, -1 means infinite>
FireUser1 to FireUser4
Fire the OnUser outputs; see User Inputs and Outputs.

RunScriptFile <string>
Execute a VScript file from disk, without file extension. The script contents are merged with the script scope of the receiving entity.
RunScriptCode <string>
Execute a string of VScript source code in the scope of the entity receiving the input.
CallScriptFunction <string>
Call a script function.
CallPrivateScriptFunction <string>
Calls a script function from this entity's private script scope.
CallGlobalScriptFunction <string>
Calls a script function in the global script scope.


Source 2 Targetname:

OnUser1 to OnUser4
These Outputs each fire in response to the firing of the like-numbered FireUser1 to FireUser4 Input; see User Inputs and Outputs.
This Output fires when the entity is killed and removed from the game.

See Also

Example of MIP Fog