There are a number of OpenGL® effects that can be achieved through the use of blending, scaling of surface normals, materials and lighting. OpenGL® does not really directly support many special effects, as some graphics cards do, but it does provide tools such as the OpenGL® shader language (GLSL) to allow some OpenGL® effects to be produced with relative ease. Basic effects such as fog, edge detection and lighting tricks can be used to help provide a more stylistic scene rendering, while effects such as truly reflective surfaces, volumetric shadows and dynamically animated textures can be used to reveal a scene that is very realistic.
One of the most basic OpenGL® effects that can be found in many applications is anti-aliasing. This involves taking a series of pixels that have been rendered and then computing the spaces between them to create intermediary steps and colors to surround them. The end result is a scene that can sometimes appear a little blurred, with a softness added to all the hard edges that were drawn. Most graphics hardware supports accelerated anti-aliasing, because it reduces unattractive pixilation on the screen.
Many programmers who are just starting out are surprised to learn that shadows inside a scene are actually one of the special OpenGL® effects that must be explicitly programmed and do not occur by default. This effect can be achieved by rendering the outline of a model to a stencil buffer and then projecting that stencil onto a plane that is placed into a scene at the appropriate angle. Through more complex blending techniques, shadows that are more realistic in their depth also can be made.
The lighting model used by OpenGL® does not actually calculate the bouncing of light rays within a scene in a manner that is consistent with the physical world. This has led to the development of truly reflective surfaces as one of the more popular OpenGL® effects. This type of effect essentially renders the scene from a different angle onto an image and then uses that image as the texture for the reflective surface. Although computationally expensive, it can help to emulate realism in a scene.
One of the more generic, and most used, of the OpenGL® effects that can be performed with shaders is a particle system. This is a way to apply algorithms, usually fractal algorithms, to elements of a scene to provide objects or other elements that might seem to move or display organic qualities, even though those qualities are actually the result of a static formula. Particle systems can be used in OpenGL® to simulate a burning fire, the movement of birds, or even the shape of clouds in a sky.