Computer graphics lighting
Computer graphics lighting is the collection of techniques used to simulate light in computer graphics scenes. While lighting techniques offer flexibility in the level of detail and functionality available, they also operate at different levels of computational demand and complexity. Graphics artists can choose from a variety of light sources, models, shading techniques, and effects to suit the needs of each application.Light sources allow for different ways to introduce light into graphics scenes.Point
Point sources emit light from a single point in all directions, with the intensity of the light decreasing with distance. An example of a point source is a standalone light bulb.Directional
A directional source uniformly lights a scene from one direction. Unlike a point source, the intensity of light produced by a directional source does not change with distance over the scale of the scene, as the directional source is treated as though it is extremely far away. An example of a directional source is sunlight on Earth.Spotlight
A spotlight produces a directed cone of light. The light becomes more intense as the viewer gets closer to the spotlight source and to the center of the light cone. An example of a spotlight is a flashlight.Area
Area lights are 3D objects which emit light. Whereas point lights and spot lights sources are considered infinitesimally small points, area lights are treated as physical shapes. Area light produce softer shadows and more realistic lighting than point lights and spot lights.Ambient
Ambient light sources illuminate objects even when no other light source is present. The intensity of ambient light is independent of direction, distance, and other objects, meaning the effect is completely uniform throughout the scene. This source ensures that objects are visible even in complete darkness.Lightwarp
A lightwarp is a technique of which an object in the geometrical world refracts light based on the direction and intensity of the light. The light is then warped using an ambient diffuse term with a range of the color spectrum. The light then may be reflectively scattered to produce a higher depth of field, and refracted. The technique is used to produce a unique rendering style and can be used to limit overexposure of objects. Games such as Team Fortress 2 use the rendering technique to create a cartoon cel shaded stylized look.HDRI
HDRI stands for High dynamic range image and is a 360° image that is wrapped around a 3D model as an outdoor setting and uses the sun typically as a light source in the sky. The textures from the model can reflect the direct and ambient light and colors from the HDRI.Lighting interactions
In computer graphics, the overall effect of a light source on an object is determined by the combination of the object's interactions with it usually described by at least three main components. The three primary lighting components are diffuse, ambient, and specular.Diffuse
Diffuse lighting is the direct illumination of an object by an even amount of light interacting with a light-scattering surface. After light strikes an object, it is reflected as a function of the surface properties of the object as well as the angle of incoming light. This interaction is the primary contributor to the object's brightness and forms the basis for its color.Ambient
As ambient light is directionless, it interacts uniformly across all surfaces, with its intensity determined by the strength of the ambient light sources and the properties of objects' surface materials, namely their ambient reflection coefficients.Specular
The specular lighting component gives objects shine and highlights. This is distinct from mirror effects because other objects in the environment are not visible in these reflections. Instead, specular lighting creates bright spots on objects based on the intensity of the specular lighting component and the specular reflection coefficient of the surface.Illumination models
Lighting models are used to replicate lighting effects in rendered environments where light is approximated based on the physics of light. Without lighting models, replicating lighting effects as they occur in the natural world would require more processing power than is practical for computer graphics. This lighting, or illumination model's purpose is to compute the color of every pixel or the amount of light reflected for different surfaces in the scene. There are two main illumination models, object oriented lighting and global illumination. They differ in that object oriented lighting considers each object individually, whereas global illumination maps how light interacts between objects. Currently, researchers are developing global illumination techniques to more accurately replicate how light interacts with its environment.Object oriented lighting, also known as local illumination, is defined by mapping a single light source to a single object. This technique is fast to compute, but often is an incomplete approximation of how light would behave in the scene in reality. It is often approximated by summing a combination of specular, diffuse, and ambient light of a specific object. The two predominant local illumination models are the Phong and the Blinn-Phong illumination models.One of the most common reflection models is the Phong model. The Phong model assumes that the intensity of each pixel is the sum of the intensity due to diffuse, specular, and ambient lighting. This model takes into account the location of a viewer to determine specular light using the angle of light reflecting off an object. The cosine of the angle is taken and raised to a power decided by the designer. With this, the designer can decide how wide a highlight they want on an object; because of this, the power is called the shininess value. The shininess value is determined by the roughness of the surface where a mirror would have a value of infinity and the roughest surface might have a value of one. This model creates a more realistic looking white highlight based on the perspective of the viewer.The Blinn-Phong illumination model is similar to the Phong model as it uses specular light to create a highlight on an object based on its shininess. The Blinn-Phong differs from the Phong illumination model, as the Blinn-Phong model uses the vector normal to the surface of the object and halfway between the light source and the viewer. This model is used in order to have accurate specular lighting and reduced computation time. The process takes less time because finding the reflected light vector's direction is a more involved computation than calculating the halfway normal vector. While this is similar to the Phong model, it produces different visual results, and the specular reflection exponent or shininess might need modification in order to produce a similar specular reflection.Global illumination differs from local illumination because it calculates light as it would travel throughout the entire scene. This lighting is based more heavily in physics and optics, with light rays scattering, reflecting, and indefinitely bouncing throughout the scene. There is still active research being done on global illumination as it requires more computational power than local illumination.Ray tracing
Light sources emit rays that interact with various surfaces through absorption, reflection, or refraction. An observer of the scene would see any light source that reaches their eyes; a ray that does not reach the observer goes unnoticed. It is possible to simulate this by having all of the light sources emit rays and then compute how each of them interact with all of the objects in the scene. However, this process is inefficient as most of the light rays would not reach the observer and would waste processing time. Ray tracing solves this problem by reversing the process, instead sending view rays from the observer and calculating how they interact until they reach a light source. Although this way more effectively uses processing time and produces a light simulation closely imitating natural lighting, ray tracing still has high computation costs due to the high amounts of light that reach viewer's eyes.Radiosity
Radiosity takes into account the energy given off by surrounding objects and the light source. Unlike ray tracing, which is dependent on the position and orientation of the observer, radiosity lighting is independent of view position. Radiosity requires more computational power than ray tracing, but can be more useful for scenes with static lighting because it would only have to be computed once. The surfaces of a scene can be divided into a large amount of patches; each patch radiates some light and affects the other patches, then a large set of equations needs to be solved simultaneously in order to get the final radiosity of each patch.Photon mapping
mapping was created as a two-pass global illumination algorithm that is more efficient than ray tracing. It is the basic principle of tracking photons released from a light source through a series of stages. The first pass includes the photons being released from a light source and bouncing off their first object; this map of where the photons are located is then recorded. The photon map contains both the position and direction of each photon which either bounce or are absorbed. The second pass happens with rendering where the reflections are calculated for different surfaces. In this process, the photon map is decoupled from the geometry of the scene, meaning rendering can be calculated separately. It is a useful technique because it can simulate caustics, and pre-processing steps do not need to be repeated if the view or objects change.