Difference between revisions of "Cubemaps"

From Team Fortress Wiki
Jump to: navigation, search
(Quick introduction to cubemaps)
 
m (Redirects -> direct links.)
 
(12 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{stub}}
+
{{otherWikis|{{vdc|Cubemaps}}|[[w:Cube mapping|Cube mapping]] on Wikipedia}}
{{needimage}}
+
{{Quotation|'''The Engineer''' after successfully building new cubemaps|We did it! With a little help from Mother Science.|sound=Cm_engie_gamewon_14.mp3}}
{{otherWikis|[[vdc:Cubemaps|Valve developer wiki on Cubemaps]]}}
+
[[File:Env_cubemap.png|thumb|The entity icon used by [[Valve Hammer Editor|Hammer]].]]
 +
'''Cubemaps''' store data about a reflective object's surroundings, and are used to correctly render its appearance. Most [[Source Engine]] games rely on cubemaps, including ''Team Fortress 2''.
  
A cubemap is a set textures that are stored on the sides of a cube. They are commonly used for static reflections in Source engine games, such as TF2.
+
== Implementation ==
 +
Cubemap entities are placed at eye level (about ~64 [[Hammer unit|HUs]]) to create the most realistic reflections. If an area of a map differs in lighting or size, another cubemap is needed to ensure correct reflections.
 +
 
 +
Once lighting is compiled and the map is running, the map author uses the console command {{code|buildcubemaps}} to generate the reflections.
  
 
== Missing cubemaps ==
 
== Missing cubemaps ==
Maps that are in development may have missing cubemaps. This leads to the familiar effect of all reflections either reflecting the [[skybox]] or the magneta/black missing texture fallback texture.
+
If no cubemap entities are placed in a map or the cubemaps aren't built, reflections are supposed to default to the [[List of skyboxes|skybox]] texture. This issue is common in maps that are still under development.
 +
 
 +
Because of a bug in [[vdc:VBSP|VBSP]], the skyboxes in ''Team Fortress 2'' can't be used as the default cubemap, and therefore the engine falls back to the missing texture pink checkerboard texture. This makes it glaringly obvious when the cubemaps have not been built and complicates building the cubemaps by requiring specular reflections disabled ({{cvar|mat_specular}}) to avoid the ugly reflections being saved in the built cubemaps.
  
Cubemaps must manually be captured by the map author using the <tt>buildcubemaps</tt> console command. Note that this changes the BSP file for the map, meaning that the map will differ from the version on the server.
+
== See also ==
 +
* [[Illustrative Rendering in Team Fortress 2]]

Latest revision as of 14:58, 22 May 2023

We did it! With a little help from Mother Science.
The Engineer after successfully building new cubemaps
The entity icon used by Hammer.

Cubemaps store data about a reflective object's surroundings, and are used to correctly render its appearance. Most Source Engine games rely on cubemaps, including Team Fortress 2.

Implementation

Cubemap entities are placed at eye level (about ~64 HUs) to create the most realistic reflections. If an area of a map differs in lighting or size, another cubemap is needed to ensure correct reflections.

Once lighting is compiled and the map is running, the map author uses the console command buildcubemaps to generate the reflections.

Missing cubemaps

If no cubemap entities are placed in a map or the cubemaps aren't built, reflections are supposed to default to the skybox texture. This issue is common in maps that are still under development.

Because of a bug in VBSP, the skyboxes in Team Fortress 2 can't be used as the default cubemap, and therefore the engine falls back to the missing texture pink checkerboard texture. This makes it glaringly obvious when the cubemaps have not been built and complicates building the cubemaps by requiring specular reflections disabled (mat_specular) to avoid the ugly reflections being saved in the built cubemaps.

See also