180 likes | 689 Views
3D Computer Graphics in a Nutshell Guillaume Caumon, January 2002 Introduction Computer graphics is concerned with all the aspects of “drawing” on computers Performance is critical 3D Computer Graphics deals with the generation images from 3D objects. The Rendering Pipeline
E N D
3D Computer Graphics in a Nutshell Guillaume Caumon, January 2002
Introduction • Computer graphics is concerned with all the aspects of “drawing” on computers • Performance is critical • 3D Computer Graphics deals with the generation images from 3D objects.
The Rendering Pipeline Pipeline = Linear succession of operations Rendering speed = speed of the slowest step (bottleneck) Application Geometry Rasterization
meshing decimation collision detection animation … Application Software-based processing / modifications Rendering primitives 3D Model
Geometry Transforms Lightning Projection Clipping
Geometry : Transforms Model Transform Model Coordinates World Coordinates Scaling, etc. View Transform Viewing Coordinates
Geometry: lighting and shading Simulate interaction of light with matter: - Emission - Absorption - Reflection
L α N β IR(l) Ambient light coefficient Ex: (.1, .1, .1) Material color Ex: (1, 0, 0) Specular Coeficient Ex: (1, 1, 1) ν : r, g or b Shininess (s > 1) Geometry: A Lightning Equation
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 normalization Viewing Coordinates Virtual Device Coordinates Perspective/ parallel
Geometry: Device Coordinates My Window Unit Cube
Rasterization Screen = matrix Per-pixel operations: ray-tracing Scan conversion of lines: naive version Bresenham algorithm Scan conversion of polygons Aliasing / antialiasing Texturing
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 • 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,2nd edition. Addisson Wesley, 1997 • Moller, Haines, Real-Time Rendering. AK Peters, 1999 (http://www.realtimerendering.com) • The Graphic Gems series, Academic Press. • Neider, Davis, Woo, OpenGL Programming Guide. Addisson Wesley, 1993 • Wernecke, The Inventor Mentor, release 2, Addisson Wesley,1994 • Schroeder, Martin, Lorensen, The Visualization Toolkit, 2nd edition. Prenctice Hall, 1998 • Proceedings of Siggraph, Visualization, Eurographics, etc.