3D Computer Graphics in a Nutshell Guillaume Caumon, January 2002
Introduction Computer graphics is concerned with all the aspects of “drawing” on computers Computer graphics is concerned with all the aspects of “drawing” on computers Performance is critical Performance is critical 3D Computer Graphics deals with the generation images from 3D objects. 3D Computer Graphics deals with the generation images from 3D objects.
The Rendering Pipeline ApplicationGeometryRasterization Pipeline = Linear succession of operations Rendering speed = speed of the slowest step (bottleneck)
Application Software-based processing / modifications 3D Model Renderingprimitives meshing decimation animation collision detection …
Geometry TransformsLightningProjectionClipping
Geometry : Transforms Model Coordinates World Coordinates Model Transform Scaling, etc. View Transform Viewing Coordinates
Geometry: lighting and shading Simulate interaction of light with matter: - Emission - Absorption - Reflection
Geometry: A Lightning Equation N L α β I R ( ) ν : r, g or b Ambient light coefficient Ex: (.1,.1,.1) Material color Ex: (1, 0, 0) Shininess (s > 1) Specular Coeficient Ex: (1, 1, 1)
Geometry: Shading Flat shading: each triangle has the same color Gouraud shading: colors are interpolated between vertices Phong shading: normal are interpolated and colors computed for each pixel
Geometry: Projection Virtual Device Coordinates Viewing Coordinates normalization Perspective/parallel
Geometry: Clipping
Geometry: Device Coordinates My Window Unit Cube
Rasterization Per-pixel operations: ray-tracing Screen = matrix Texturing Aliasing / antialiasing Scan conversion of lines: naive version Bresenham algorithm Scan conversion of polygons
Graphics Hardware Quickly evolving Main principle: use of buffers Color buffer : 1 byte per pixel (256) + lookup tables 2 bytes per pixel (65 536) “high color” 3+1 bytes per pixel bpp (16 millions) “true color” + alpha channel Depth buffer : 16 to 32 bit per pixel
Graphics Hardware (II) Double buffering : show the front buffer while rasterizing the back buffer show the front buffer while rasterizing the back buffer swap buffers in synchronization with the screen refresh swap buffers in synchronization with the screen refresh to get the new frame Stencil buffer : allows high-level operations (antialiasing, filtering, etc.) See OpenGL programmer’s reference for more details
Conclusion 3D Graphics require intensive computations Yet, 3D Graphics are time-critical Bottlenecks Display lists Only low-level graphics have been described. Scene Graphs Selection and tools } See OpenInventor, VTK, etc.
References and further reading Foley, van Dam, Feiner, Hughes, Computer Graphics Principle and practice, 2 nd edition. Addisson Wesley, 1997 Foley, van Dam, Feiner, Hughes, Computer Graphics Principle and practice, 2 nd edition. Addisson Wesley, 1997 Moller, Haines, Real-Time Rendering. AK Peters, 1999 ( Moller, Haines, Real-Time Rendering. AK Peters, 1999 ( The Graphic Gems series, Academic Press. The Graphic Gems series, Academic Press. Neider, Davis, Woo, OpenGL Programming Guide. Addisson Wesley, 1993 Neider, Davis, Woo, OpenGL Programming Guide. Addisson Wesley, 1993 Wernecke, The Inventor Mentor, release 2, Addisson Wesley,1994 Wernecke, The Inventor Mentor, release 2, Addisson Wesley,1994 Schroeder, Martin, Lorensen, The Visualization Toolkit, 2 nd edition. Prenctice Hall, 1998 Schroeder, Martin, Lorensen, The Visualization Toolkit, 2 nd edition. Prenctice Hall, 1998 Proceedings of Siggraph, Visualization, Eurographics, etc. Proceedings of Siggraph, Visualization, Eurographics, etc.