Env fog controller

From Valve Developer Community
Revision as of 12:08, 22 March 2010 by G6Net (talk | contribs)
Jump to navigation Jump to search

Template:Wrongtitle Template:Base point

Entity description

Fog controller.png

The env_fog_controller entity determines the density of aerial fog for the whole map.

Template:Map properties

For pre-Left 4 Dead games, only the "first" instance of the env_fog_controller entity in a level will be used, with other env_fog_controllers being redundant. However, in Left 4 Dead 1 and 2, multiple env_fog_controllers may be used in conjunction with a fog_volume to create different fog effects where needed. In addition, an env_fog_controller can be set as the "Master" fog controller under flags, in cases where a fog_volume is not tied to any specific fog_controller, or if no fog_volume is used in a region.

Note.pngNote:The 3D Skybox fog levels set by the sky_camera parameters should correspond to your env_fog_controller settings.
Tip.pngTip:By adding fog to a level, you can hide a FarZ Clip Plane, and reduce the amount of rendered geometry, improving game performance.

Adding fog (to represent haze, mist, diffuse smoke or dust) to the atmosphere has important implications for 'realistic' Lighting. Light is scattered and absorbed as it passes through fog. The denser the fog, the greater the effect.

  • Falloff - (or attenuation) is the rate at which light intensity decreases over distance. Falloff distance decreases as fog gets thicker.
  • Tyndall effects - can be seen when the fog particles reflect light toward the viewer. Halos and Lightbeams become more visible as fog gets thicker.
  • Diffused Lighting - the boundary-line between light and shadow becomes more blurred (diffuse) as fog gets thicker. See Lightmap Scale and shadow_control's "distance" parameter.

Keyvalues

Enable fog on map load.
  • fogstart <float>
How far from the viewer the fog should start.
  • fogend <float>
How far from the viewer the scene should be completely fogged.
  • fogmaxdensity <float>
Fog Max Density [0..1]
  • farz <integer>
Far Z Clip Plane
This setting is used for optimizing your map. Anything beyond this distance (in world units) will not be rendered. It is recommended to keep this number higher then your fogend value and ensure fogmaxdensity is set to 1.
  • fogcolor #000000
Primary Fog Color.
This will enable blending between fogcolor and fogcolor2, based on the direction the player is looking. If the player's viewpoint is equal to the fogdir vector, the fog will be drawn with fogcolor2 (red); if facing in the opposite direction, the fog will be drawn with fogcolor (blue). If facing perpendicular to the fogblend axis, the fog will be a 50/50 blend of fogcolor and fogcolor2 (purple).
This can be used to approximate the effect of light diffusing through the fog, but since the fogblend effect is applied for the entire rendered scene, it is best to keep the two colors relatively close to make the blending less obvious.
For example, sunlight with a Yaw of 45 degrees and a Pitch of -45 degrees could be enhanced using a fogdir of "-1 -1 1", a fogcolor of "120 110 100" and a fogcolor2 of "80 70 60".
  • fogcolor2 #000000
Secondary Fog Color.
Primary Fog Direction
A vector (given by three space-separated numbers X Y Z) which points from the secondary fogcolor2 towards the primary fogcolor.
Use Angles for Fog Dir
Use angles instead of fogdir for the fogblend-axis.
Pitch Yaw Roll (Y Z X) (angles) <QAngle>
This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
  • foglerptime (in all games since Half-Life 2: Episode One) <float>
Interpolate time
Minimum / Maximum DX Level (mindxlevel / maxdxlevel) <integer choices> (removed since Left 4 Dead)
The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices
Warning.pngWarning:If these are used, the object may break when the user switches their DirectX settings.[missing string]
Name (targetname) <string>[ Edit ]
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Flags

  • 1 : Master (Has priority if multiple env_fog_controllers exist)

Inputs

  • SetStartDist <float>
Set the fog start distance.
  • SetEndDist <float>
Set the fog end distance.
  • TurnOn
Turn the fog on.
  • TurnOff
Turn the fog off.
  • SetColor #000000
Set the primary fog color.
  • SetColorSecondary #000000
Set the secondary fog color.
  • SetFarZ <integer>
Set the far clip plane distance.
Set the angles to use for the secondary fog direction.
  • SetColorLerpTo <color255> (in all games since Half-Life 2: Episode One)
Set the primary fog color.
  • SetColorSecondaryLerpTo <color255> (in all games since Half-Life 2: Episode One)
Set the secondary fog color.
  • SetStartDistLerpTo <float> (in all games since Half-Life 2: Episode One)
Set the fog start distance.
  • SetEndDistLerpTo <float> (in all games since Half-Life 2: Episode One)
Set the fog end distance.
  • StartFogTransition (in all games since Half-Life 2: Episode One)
Start fog transition.

Outputs

See also