
A lightmap is a
data structure
In computer science, a data structure is a data organization and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the relationships amo ...
used in lightmapping, a form of
surface caching
The ''Quake'' engine (part of id Tech 2) is the game engine developed by id Software to power their 1996 video game '' Quake''. It featured true 3D real-time rendering. Since 1999, it has been licensed under the terms of GNU General Public L ...
in which the brightness of surfaces in a virtual scene is
pre-calculated and stored in
texture maps
Texture may refer to:
Science and technology
* Image texture, the spatial arrangement of color or intensities in an image
* Surface texture, the smoothness, roughness, or bumpiness of the surface of an object
* Texture (roads), road surface c ...
for later use. Lightmaps are most commonly applied to static objects in applications that use
real-time
Real-time, realtime, or real time may refer to:
Computing
* Real-time computing, hardware and software systems subject to a specified time constraint
* Real-time clock, a computer clock that keeps track of the current time
* Real-time Control Syst ...
3D computer graphics
3D computer graphics, sometimes called Computer-generated imagery, CGI, 3D-CGI or three-dimensional Computer-generated imagery, computer graphics, are graphics that use a three-dimensional representation of geometric data (often Cartesian coor ...
, such as
video game
A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device) to generate visual fe ...
s, in order to provide lighting effects such as
global illumination
Global illumination (GI), or indirect illumination, is a group of algorithms used in 3D computer graphics that are meant to add more realistic lighting
Lighting or illumination is the deliberate use of light to achieve practical or aest ...
at a relatively low computational cost.
History
John Carmack
John D. Carmack II (born August 21, 1970) is an American computer programmer and video game developer. He co-founded the video game company id Software and was the lead programmer of its 1990s games ''Commander Keen'', ''Wolfenstein 3D'', ''Do ...
's ''
Quake'' was the first computer game to use lightmaps to augment
rendering. Before lightmaps were invented, realtime applications relied purely on
Gouraud shading
Gouraud shading ( ), named after Henri Gouraud (computer scientist), Henri Gouraud, is an interpolation method used in computer graphics to produce continuous shading of surfaces represented by Polygon mesh, polygon meshes. In practice, Gouraud ...
to interpolate vertex lighting for surfaces. This only allowed low frequency lighting information, and could create clipping artifacts close to the camera without perspective-correct interpolation.
Discontinuity meshing was sometimes used especially with
radiosity solutions to adaptively improve the resolution of vertex lighting information, however the additional cost in primitive setup for realtime rasterization was generally prohibitive.
Quake's software rasterizer used
surface caching
The ''Quake'' engine (part of id Tech 2) is the game engine developed by id Software to power their 1996 video game '' Quake''. It featured true 3D real-time rendering. Since 1999, it has been licensed under the terms of GNU General Public L ...
to apply lighting calculations in texture space once when polygons initially appear within the
viewing frustum
In 3D computer graphics, a viewing frustum or view frustum is the region of space in the modeled world that may appear on the screen; it is the field of view of a perspective virtual camera system.
The view frustum is typically obtained by t ...
(effectively creating temporary 'lit' versions of the currently visible textures as the viewer negotiated the scene).
As consumer 3d graphics hardware capable of
multitexturing
Texture mapping is a term used in computer graphics to describe how 2D images are projected onto 3D models. The most common variant is the UV unwrap, which can be described as an inverse paper cutout, where the surfaces of a 3D model are cut ap ...
, light-mapping became more popular, and engines began to combine light-maps in real time as a secondary
multiply-blend texture layer.
Limitations
Lightmaps are composed of
lumel
This is a glossary of terms relating to computer graphics.
For more general computer hardware terms, see glossary of computer hardware terms.
0–9
A
B
...
s (lumination elements), analogous to texels in
texture mapping
Texture mapping is a term used in computer graphics to describe how 2D images are projected onto 3D models. The most common variant is the UV unwrap, which can be described as an inverse paper cutout, where the surfaces of a 3D model are cut ap ...
. Smaller lumels yield a higher
resolution lightmap, providing finer lighting detail at the price of reduced performance and increased memory usage. For example, a lightmap scale of 4 lumels per world unit would give a lower quality than a scale of 16 lumels per world unit. Thus, in using the technique,
level design
In video games, a level (also referred to as a map, mission, stage, course, or round in some older games) is any space available to the player during the course of completion of an objective. Video game levels generally have progressively incre ...
ers and
3d artists often have to make a compromise between performance and quality; if high resolution lightmaps are used too frequently then the application may consume excessive system resources, negatively affecting performance. Lightmap resolution and scaling may also be limited by the amount of disk storage space, bandwidth/download time, or texture memory available to the application. Some implementations attempt to pack multiple lightmaps together in a process known as ''atlasing'' to help circumvent these limitations.
Lightmap resolution and scale are two different things. The resolution is the area, in pixels, available for storing one or more surface's lightmaps. The number of individual surfaces that can fit on a lightmap is determined by the scale. Lower scale values mean higher quality and more space taken on a lightmap. Higher scale values mean lower quality and less space taken. A surface can have a lightmap that has the same area, so a 1:1 ratio, or smaller, so the lightmap is stretched to fit.
Lightmaps in games are usually colored texture maps. They are usually flat, without information about the light's direction, whilst some
game engine
A game engine is a software framework primarily designed for the development of video games which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
s use multiple lightmaps to provide approximate directional information to combine with normal-maps. Lightmaps may also store separate precalculated components of lighting information for semi-dynamic lighting with shaders, such as ambient-occlusion & sunlight shadowing.
Creation
When creating lightmaps, any lighting model may be used, because the lighting is entirely precomputed and real-time performance is not always a necessity. A variety of techniques including
ambient occlusion
In 3D computer graphics, modeling, and animation, ambient occlusion is a shading and rendering technique used to calculate how exposed each point in a scene is to ambient lighting. For example, the interior of a tube is typically more occlude ...
, direct lighting with sampled shadow edges, and full
radiosity bounce light solutions are typically used. Modern 3D packages include specific plugins for applying light-map UV-coordinates, atlas-ing multiple surfaces into single texture sheets, and rendering the maps themselves. Alternatively game engine pipelines may include custom lightmap creation tools. An additional consideration is the use of compressed
DXT textures which are subject to blocking artifacts – individual surfaces must not collide on 4x4 texel chunks for best results.
In all cases,
soft shadows
The umbra, penumbra and antumbra are three distinct parts of a shadow, created by any light source after impinging on an opaque object of lesser size. In cases of equal or smaller impinging objects, only an umbra and penumba are generated. As ...
for static geometry are possible if simple occlusion tests (such as basic
ray-tracing) are used to determine which lumels are visible to the light. However, the actual softness of the shadows is determined by how the engine interpolates the lumel data across a surface, and can result in a
pixelated
Pixelization (in British English pixelisation) or mosaic processing is any technique used in editing images or video, whereby an image is blurred by displaying part or all of it at a markedly lower resolution. It is primarily used for censorshi ...
look if the lumels are too large. See
texture filtering
In computer graphics, texture filtering or texture smoothing is the method used to determine the texture color for a Texture mapping, texture mapped pixel, using the colors of nearby Texel (graphics), texels (ie. pixels of the texture).
Filtering ...
.
Lightmaps can also be calculated in real-time
[November 16, 2003]
Dynamic Lightmaps in OpenGL
Joshbeam.com Retrieved Jul. 07, 2014. for good quality colored lighting effects that are not prone to the defects of Gouraud shading, although shadow creation must still be done using another method such as
stencil shadow volumes
Shadow volume is a technique used in 3D computer graphics to add shadows to a rendered scene. It was first proposed by Frank Crow in 1977 as the geometry describing the 3D shape of the region occluded from a light source. A shadow volume divides ...
or
shadow mapping
Shadow mapping or shadowing projection is a process by which shadows are added to 3D computer graphics. This concept was introduced by Lance Williams in 1978, in a paper entitled "Casting curved shadows on curved surfaces." Since then, it has b ...
, as real-time ray-tracing is still too slow to perform on modern hardware in most 3D engines.
Photon mapping
In computer graphics, photon mapping is a two-pass global illumination rendering algorithm developed by Henrik Wann Jensen between 1995 and 2001Jensen, H. (1996). ''Global Illumination using Photon Maps''. nlineAvailable at: http://graphics.sta ...
can be used to calculate global illumination for light maps.
Alternatives
Vertex lighting
In vertex lighting, lighting information is computed per vertex and stored in
vertex color attributes
A vertex (plural vertices) in computer graphics is a data structure that describes certain attributes, like the position of a point in 2D or 3D space, or multiple points on a surface.
Application to 3D models
3D models are most often represente ...
. The two techniques may be combined, e.g. vertex color values stored for high detail meshes, whilst light maps are only used for coarser geometry.
Discontinuity mapping
In discontinuity mapping, the scene may be further
subdivided and
clipped along major changes in light and dark to better define shadows.
See also
*
Baking (computer graphics)
This is a glossary of terms relating to computer graphics.
For more general computer hardware terms, see glossary of computer hardware terms.
0–9
A
B
...
*
Environment map
In computer graphics, reflection mapping or environment mapping is an efficient image-based lighting technique for approximating the appearance of a Specular reflection, reflective surface by means of a precomputed Texture mapping, texture. The t ...
*
Screen space ambient occlusion
Screen space ambient occlusion (SSAO) is a computer graphics technique for efficiently approximating the ambient occlusion effect in real time. It was developed by Vladimir Kajalin while working at Crytek and was used for the first time in 2007 by ...
*
Shader
In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene—a process known as '' shading''. Shaders have evolved to perform a variety of s ...
*
Texture mapping
Texture mapping is a term used in computer graphics to describe how 2D images are projected onto 3D models. The most common variant is the UV unwrap, which can be described as an inverse paper cutout, where the surfaces of a 3D model are cut ap ...
References
Video game graphics
Geometric data structures