Difference between revisions of "Env cubemap fog"

From Valve Developer Community
Jump to: navigation, search
(env_cubemap_fog is an entity available in Half Life: Alyx and SteamVR Home. It allows you to add a fog effect to cubemaps and makes for a prettier scene.)
 
(documented the purpose of the entity)
Line 2: Line 2:
 
[[File:Citadelfognofog.png|400px|thumb|right|The Citadel from Half Life: Alyx without and with cubemap fog respectively]]
 
[[File:Citadelfognofog.png|400px|thumb|right|The Citadel from Half Life: Alyx without and with cubemap fog respectively]]
  
{{Source2 point multi|env_cubemap_fog|game1 = Half-Life: Alyx|game2 = SteamVR Home}} The cubemap fog entity is one of several methods of adding fog along with [[Env_gradient_fog|gradient fog]] and volumetric fog to a level. I can only assume it adds a fog effect to the cubemaps of a map. It is very likely you will use this entity in conjunction with other fog effects to create a nicer looking scene. It is similar in function to [[Env_fog_controller]] from Source 1.
+
{{Source2 point multi|env_cubemap_fog|game1 = Half-Life: Alyx|game2 = SteamVR Home}} The cubemap fog entity is one of several methods of adding fog along with [[Env_gradient_fog|gradient fog]] and volumetric fog to a level. It adds a global MIP fog based on a cubemap texture. The fog samples the [[MIP_Mapping|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|env_gradient_fog]], it fills a similar role as [[Env_fog_controller|env_fog_controller]] from Source 1.
  
 
{{todo|Add a link to a tutorial on volumetric fogging when it's ready.}}
 
{{todo|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.
  
 
{{clr-left}}
 
{{clr-left}}
Line 21: Line 24:
 
{{KV Source 2 Targetname}}
 
{{KV Source 2 Targetname}}
  
{{todo|Fill in the Keyvalues that are marked as '''''<unknown>'''''.}}
 
 
{{KV|Start Disabled (startDisabled)|bool|Sets whether the entity is enabled or disabled at map start.}}
 
{{KV|Start Disabled (startDisabled)|bool|Sets whether the entity is enabled or disabled at map start.}}
  
 
{{KV|Cubemap Texture (cubemapfogtexture)|string|The texture (.vtex file) to use for the cubemap fog.}}
 
{{KV|Cubemap Texture (cubemapfogtexture)|string|The texture (.vtex file) to use for the cubemap fog.}}
 +
{{note|This requires a texture setup as a VTEX, rather than a material.}}
 +
{{todo|Document setting up and compiling textures.}}
  
{{KV|Cubemap LOD (mip) Bias (cubemapfoglodbiase)|float|'''''<unknown>'''''}}
+
{{KV|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.}}
  
 
{{KV|Fog Start Distance (cubemapfogstartdistance)|float|The distance from the player at which the fog will start to fade in.}}
 
{{KV|Fog Start Distance (cubemapfogstartdistance)|float|The distance from the player at which the fog will start to fade in.}}
Line 32: Line 36:
 
{{KV|Fog End Distance (cubemapfogenddistance)|float|The distance from the player at which the fog will be at full strength.}}
 
{{KV|Fog End Distance (cubemapfogenddistance)|float|The distance from the player at which the fog will be at full strength.}}
  
{{KV|Distance Falloff Exponent (cubemapfogfalloffexponent)|float|'''''<unknown>'''''}}
+
{{KV|Distance Falloff Exponent (cubemapfogfalloffexponent)|float|Exponent for distance falloff. For example, 2.0 is proportional to square of distance.}}
  
{{KV|Height Fog Width (cubemapfogheightwidth)|float|'''''<unknown>'''''}}
+
{{KV|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.}}
  
{{KV|Height Fog Start (cubemapfogheightstart)|float|The distance from the player at which the height fog will start to fade in.}}
+
{{KV|Height Fog Start (cubemapfogheightstart)|float|The absolute height in the map at which the height fog will start to fade in.}}
  
{{KV|Height Fog Exponent (cubemapfogheightexponent)|float|'''''<unknown>'''''}}
+
{{KV|Height Fog Exponent (cubemapfogheightexponent)|float|Exponent for height falloff. For example, 2.0 is proportional to square of distance.}}
  
 
==Inputs==
 
==Inputs==
Line 45: Line 49:
 
==Outputs==
 
==Outputs==
 
{{O Source 2 Targetname}}
 
{{O Source 2 Targetname}}
 +
 +
==See Also==
 +
[http://advances.realtimerendering.com/other/2016/naughty_dog/NaughtyDog_TechArt_Final.pdf Example of MIP Fog]
 +
  
 
[[Category:Fog]]
 
[[Category:Fog]]

Revision as of 05:17, 7 November 2020

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.

Usage

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

Keyvalues

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.


Start Disabled (startDisabled) <boolean>
Sets whether the entity is enabled or disabled at map start.


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.

Inputs

Source 2 Targetname:

Kill
Removes this entity from the world.
KillHierarchy
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.


Outputs

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.
OnKilled
This Output fires when the entity is killed and removed from the game.


See Also

Example of MIP Fog