Download presentation
Presentation is loading. Please wait.
Published byKristina Fitzgerald Modified over 9 years ago
1
Under the Hood: 3D Pipeline
2
Motherboard & Chipset PCI Express x16
4
Discrete 3D Graphics Architecture CPU North Bridge North Bridge 3D GFX Local Memory Local Memory System Memory System Memory South Bridge South Bridge Display Devices Graphics Sub-System AGP / PCI-E Frame Buffer Z-Buffer Texture Vertex…
5
Discrete Graphics Cards NVIDIA ATI
6
Integrated 3D Graphics (Unified Memory Architecture) CPU NB + 3D GFX NB + 3D GFX Local Memory Local Memory System Memory System Memory South Bridge South Bridge Display Devices Graphics Sub-System AGP / PCI-E Display Devices Optional Frame Buffer Z-Buffer Texture Vertex… Local Memory Local Memory
7
Example: Intel Core i7 (1 st Generation)
8
Example: Intel Core i7 (2 nd Generation)
9
Keep in mind that… 3D graphics processor works in parallel to the CPU
10
Many Views of Graphics Pipeline Simple “Front-End/Back-End” view. Textbook version in [Foley/van Dam]. David Kirk’s (nVidia CTO) version presented in EG Hardware Workshop 1998: (slide 05) http://www.merl.com/hwws98/presentati ons/kirk/index.htm http://www.merl.com/hwws98/presentati ons/kirk/index.htm
11
Simplified View The Data Flow: 3D Polygons (+Colors, Lights, Normals, Texture Coordinates…etc.) 2D Polygons 2D Pixels (I.e., Output Images) Transform (& Lighting) Rasterization
13
Some different versions…
14
14 OpenGL ES 1.X (Fixed Function Pipeline)
15
15 Rasterization Rendering Rasterization Rendering Texture Mapping Triangles Transform & Lighting Transform & Lighting Triangle Setup Rasterization Rendering Conventional 3D Graphics Pipeline Texture Mapping Rasterization Rendering Triangle Setup Rasterization Rendering Triangles Transform & Lighting Transform & Lighting Transform & Lighting Transform & Lighting Evolution of 3D Graphics Hardware Pixel Shader Vertex Shader Surface Engine Texture Mapping
16
And some really scary ones…
17
17 A Detailed 3D Graphics Pipeline
19
A Quick Review By default, graphic pipeline will do the following: 1)Take as input various per-vertex quantities (color, light source, eye point, texture coordinates, etc.) 2)Calculate a final color for each vertex using a basic lighting model (OpenGL uses Phong lighting) 3)For each pixel, linearly interpolate the three surrounding vertex colors to shade the pixel (OpenGL uses Gouraud shading) 4)Write the pixel color value to the frame buffer
20
Why Need Hardware All parts of graphics pipeline can be done in software. –But very slowly. –Example: mesaGL For some applications, speed is beauty –Games –Walkthrough –Visualization
21
Evolutions of Graphics Hardware 1.Gouraud-shaded polygons. 2.Then came antialiasing. 3.Then came texture mapping. 4.Now comes programmable shading.
22
Fixed vs. Programmable Starting in 1999 some graphics cards used the standard lighting model and Gouraud shading to draw polygon fragments entirely in hardware Implementing the pipeline in hardware made processing polygons much faster, but the developer could not modify the pipeline (hence “ fixed function pipeline ” ) New programmable hardware allows programmers to write vertex and pixel programs to change the pipeline
23
OpenGL Fixed Function Vertex Transform [MVP],[MV],[MV] -T Lighting [0,1] [0,1] Texgen Texture Matrixn Color SecondaryColor TexCoordn EdgeFlag Normal Vertex (object) TexCoordn EdgeFlag Vertex (eye) Vertex (clip) Front&Back Color Front&Back SecondaryColor
24
24 FrontFacing Color Coord Depth OpenGL Fixed Function Fragment Tex n TE n SumFog [0,1] Coord FrontFacing Color SecondaryColor TexCoord[n] zz e z (|z e |,f ) Depth
25
Programmable Shaders A concept made popular by Pixar’s RenderMan. First appeared in hardware: UNC PixelFlow –See SIGGRAPH papers by Molnar 1995 and Olano 1997. Made affordable by nVidia GeForce3 and XBox.
26
GL2 Vertex Processor Temporaries Vertex Shader Uniform Color SecondaryColor TexCoordn EdgeFlag Normal Vertex (object) TexCoordn EdgeFlag Vertex (eye) Vertex (clip) Front&Back Color Front&Back SecondaryColor
27
27 GL2 Fragment Processor TexCoord[n] FrontFacing zz e z (|z e |,f ) Coord FrontFacing Color Coord Color SecondaryColor Depth Temporaries Fragment Shader Uniform Texture
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.