3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Volume rendering 243<br />
External links<br />
• The Visualization Toolkit – VTK (http:/ / www. vtk. org) is a free open source toolkit, which implements several<br />
CPU and GPU volume rendering methods in C++ using OpenGL, and can be used from python, tcl and java<br />
wrappers.<br />
• Linderdaum Engine (http:/ / www. linderdaum. com) is a free open source rendering engine with GPU raycasting<br />
capabilities.<br />
• Open Inventor by VSG (http:/ / www. vsg3d. com/ / vsg_prod_openinventor. php) is a commercial <strong>3D</strong> <strong>graphics</strong><br />
toolkit for developing scientific and industrial applications.<br />
• Avizo is a general-purpose commercial software application for scientific and industrial data visualization and<br />
analysis.<br />
Volumetric lighting<br />
Volumetric lighting is a technique used in<br />
<strong>3D</strong> computer <strong>graphics</strong> to add lighting effects<br />
to a rendered scene. It allows the viewer to<br />
see beams of light shining through the<br />
environment; seeing sunbeams streaming<br />
through an open window is an example of<br />
volumetric lighting, also known as<br />
crepuscular rays. The term seems to have<br />
been introduced from cinematography and is<br />
now widely applied to <strong>3D</strong> modelling and<br />
rendering especially in the field of <strong>3D</strong><br />
gaming.<br />
Forest scene from Big Buck Bunny, showing light rays through the canopy.<br />
In volumetric lighting, the light cone emitted by a light source is modeled as a transparent object and considered as a<br />
container of a "volume": as a result, light has the capability to give the effect of passing through an actual three<br />
dimensional medium (such as fog, dust, smoke, or steam) that is inside its volume, just like in the real world.<br />
How volumetric lighting works<br />
Volumetric lighting requires two components: a light space shadow map, and a depth buffer. Starting at the near clip<br />
plane of the camera, the whole scene is traced and sampling values are accumulated into the input buffer. For each<br />
sample, it is determined if the sample is lit by the source of light being processed or not, using the shadowmap as a<br />
comparison. Only lit samples will affect final pixel color.<br />
This basic technique works, but requires more optimization to function in real time. One way to optimize volumetric<br />
lighting effects is to render the lighting volume at a much coarser resolution than that which the <strong>graphics</strong> context is<br />
using. This creates some bad aliasing artifacts, but that is easily touched up with a blur.<br />
You can also use stencil buffer like with the shadow volume technique<br />
Another technique can also be used to provide usually satisfying, if inaccurate volumetric lighting effects. The<br />
algorithm functions by blurring luminous objects away from the center of the main light source. Generally, the<br />
transparency is progressively reduced with each blur step, especially in more luminous scenes. Note that this requires<br />
an on-screen source of light. [1]