Sky camera: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (clean up, replaced: {{ModernTip| → {{tip|, {{ModernWarning| → {{warning|, {{ModernNote| → {{note|)
m (→‎top: clean up, replaced: {{source| → {{src|)
Line 5: Line 5:
|img=[[File:sky_camera.png]] [[File:Missing entity icon.png]] [[File:Missing entity icon (blue).png]]
|img=[[File:sky_camera.png]] [[File:Missing entity icon.png]] [[File:Missing entity icon (blue).png]]
|type=e0
|type=e0
|engine={{source|4}} {{source2|4}}
|engine={{src|4}} {{source2|4}}
|in=0
|in=0
}}
}}

Revision as of 03:59, 4 January 2024

English (en)中文 (zh)Translate (Translate)
sky_camera
Sky camera.png Missing entity icon.png Missing entity icon (blue).png
TypePoint entity
EngineSource Source Source 2 Source 2
AvailabilityIn all games
 
C++ Class hierarchy
CSkyCamera
CLogicalEntity
CServerOnlyEntity
CBaseEntity
C++ SkyCamera.cpp

Template:Entity It is used to mark the position of the map's origin inside the 3D Skybox. As your position changes relative to the maps origin it will be scaled and applied relative to the sky_camera.

When the map is compiled, the areas containing sky_camera(s) are skipped during vis calculations. This can be overridden by -forceskyvis on VBSP.

By default, only one sky_camera may be active at a time and it cannot move.

Tip.pngTip:
  • There is a trick to emulate multiple or moving 3D Skyboxes in any game. More info here.
  • Duplicate your main env_fog_controller and then turn that into a sky_camera so that the fog settings will be carried over.
Note.pngNote:fog values on sky_camera cannot be changed through inputs (unlike env_fog_controller) and the max density keyvalue is missing from the FGD by default.
Cpp.pngCode:There is some leftover code for multiple sky_camera entities which can be restored in mods. Half-Life 2: Downfall has restored this feature and the work involved is open-source. Downfall's repository can be found here. Mapbase Mapbase uses the aforementioned Downfall code and also adds native support for moving (and rotating) skyboxes. Mapbase's repository can be found here.

Keyvalues

Name (targetname) <string> !FGD
The targetname that other entities refer to this entity by.
3D Skybox scale (scale) <integer>
This number determines how large objects in your skybox will seem relative to the map.
For example, at a skybox scale of 16, an object 1 unit high in the skybox will seem to be 16 units high to player.
Fog Enable (fogenable) <boolean>
Enable Fog in the Skybox by Default
Fog Blend (fogblend) <boolean>
This will enable blending between two fog colors, 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 the secondary color; if facing in the complete opposite direction, the fog will be drawn with the primary color.
This can be used to approximate the aesthetic effect of diffuse light filtering through the fog, but since the fog effect color is changed 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'.
Use Angles for Fog Dir (use_angles) <boolean>
Primary Fog Color (fogcolor) <color255>
The Primary Color of the Fog in the Skybox
Secondary Fog Color (fogcolor2) <color255>
The Secondary Color of the Fog in the Skybox that will be blended to
Primary Fog Dir (fogdir) <string>
A vector (given by three space-separated numbers X Y Z) which points from the secondary fog color fogcolor2 towards the primary fog color fogcolor.
Fog Start (fogstart) <string>
How far from the point-of-view the fog should start. Generally, this should be the same setting as your env_fog_controller.
Fog End (fogend) <string>
How far from the point-of-view the view should be completely fogged. Generally, this should be the same setting as your env_fog_controller.
Fog Max Density ([confirm]) <float> !FGD
Fog Max Density [0..1].
Clip 3D sky near plane to world far plane (clip_3D_skybox_near_to_world_far) <boolean> (only in Left 4 Dead 2)
3D sky near plane offset (clip_3D_skybox_near_to_world_far_offset) <float> (only in Left 4 Dead 2)
Offset for the near clip plane for the 3D sky in world units. This is only used if the above field is true. Negative values to pull closer, etc.


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.

Inputs

ActivateSkybox  (in all games since Left 4 Dead 2) !FGD
Activates targeted sky_camera and disables rest.
Warning.pngWarning:Should your skyboxes have models or brushwork capable of throwing shadows, all shadows of all props from all skyboxes will compile shadows onto your map. Even when the skybox is switched, the shadows on your map will remain.

See also