Under the Hood: 3D Pipeline
description
Transcript of Under the Hood: 3D Pipeline
![Page 1: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/1.jpg)
Under the Hood: 3D Pipeline
![Page 2: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/2.jpg)
Motherboard & Chipset
PCI Express x16
![Page 3: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/3.jpg)
![Page 4: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/4.jpg)
Discrete 3D Graphics Architecture
CPUCPU
NorthBridge
NorthBridge3D GFX3D GFX
LocalMemory
LocalMemory
SystemMemory
SystemMemory
SouthBridge
SouthBridge
DisplayDevices
GraphicsSub-System
AGP / PCI-E
Frame BufferZ-BufferTextureVertex…
![Page 5: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/5.jpg)
Discrete Graphics Cards
• NVIDIA
• ATI
![Page 6: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/6.jpg)
Integrated 3D Graphics (Unified Memory
Architecture)
CPUCPU
NB +3D GFX
NB +3D GFX3D GFX3D GFX
LocalMemory
LocalMemory
SystemMemory
SystemMemory
SouthBridge
SouthBridge
DisplayDevices
GraphicsSub-System
AGP / PCI-E
DisplayDevices
Optional
Frame BufferZ-BufferTextureVertex…
LocalMemory
LocalMemory
![Page 7: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/7.jpg)
Example: Intel Core i7 (1st Generation)
![Page 8: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/8.jpg)
Example: Intel Core i7 (2nd Generation)
![Page 9: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/9.jpg)
Keep in mind that…
3D graphics processor works in parallel to the CPU
![Page 10: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/10.jpg)
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/presentations/kirk/index.htm
![Page 11: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/11.jpg)
Simplified View
• The Data Flow:3D Polygons (+Colors, Lights, Normals,
Texture Coordinates…etc.)2D Polygons2D Pixels (I.e., Output Images)
Transform(& Lighting)
Rasterization
![Page 12: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/12.jpg)
![Page 13: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/13.jpg)
Some different versions…
![Page 14: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/14.jpg)
14
OpenGL ES 1.X (Fixed Function Pipeline)
![Page 15: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/15.jpg)
15
RasterizationRasterization
RenderingRendering
RasterizationRasterization
RenderingRendering
Texture MappingTexture MappingTexture MappingTexture Mapping
TrianglesTriangles
Transform &Lighting
Transform &Lighting
Triangle SetupTriangle Setup
RasterizationRasterization
RenderingRendering
Conventional 3D Graphics Pipeline
Texture MappingTexture MappingRasterizationRasterization
RenderingRendering
TrianglesTriangles
Transform &Lighting
Transform &Lighting
Evolution of 3D Graphics Hardware
Pixel ShaderPixel Shader
Vertex ShaderVertex Shader
Surface EngineSurface Engine
Texture MappingTexture Mapping
![Page 16: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/16.jpg)
And some really scary ones…
![Page 17: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/17.jpg)
17
A Detailed 3D Graphics Pipeline
![Page 18: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/18.jpg)
![Page 19: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/19.jpg)
A Quick ReviewBy 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
![Page 20: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/20.jpg)
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
![Page 21: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/21.jpg)
Evolutions of Graphics Hardware
1. Gouraud-shaded polygons.
2. Then came antialiasing.
3. Then came texture mapping.
4. Now comes programmable shading.
![Page 22: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/22.jpg)
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
![Page 23: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/23.jpg)
OpenGLFixed Function Vertex
TransformTransform[MVP],[MV],[MV][MVP],[MV],[MV]-T-T
LightinLightingg
[0,1][0,1]
[0,1][0,1]
TexgenTexgen TextureTextureMatrixMatrixnn
ColorColorSecondaryColSecondaryColoror
TexCoordTexCoordnn
EdgeFlagEdgeFlag
NormalNormal
Vertex Vertex (object)(object)
TexCoordTexCoordnn
EdgeFlagEdgeFlag
Vertex (eye)Vertex (eye)
Vertex (clip)Vertex (clip)
Front&BackFront&BackColorColor
Front&BackFront&BackSecondaryColSecondaryColoror
![Page 24: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/24.jpg)
24
FrontFacing
ColorColor
Coord
Depth
OpenGLFixed Function Fragment
TexTexnn
TETEnn
SuSumm
FogFog[0,1][0,1]
Coord
FrontFacing
ColorColor
SecondaryColSecondaryColoror
TexCoord[TexCoord[nn]]
zz (|zzee|,f )
Depth
![Page 25: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/25.jpg)
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.
![Page 26: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/26.jpg)
GL2 Vertex Processor
TemporariesTemporaries
VertexVertexShaderShader
UniformUniform
ColorColorSecondaryColSecondaryColoror
TexCoordTexCoordnn
EdgeFlagEdgeFlag
NormalNormal
Vertex Vertex (object)(object)
TexCoordTexCoordnn
EdgeFlagEdgeFlag
Vertex (eye)Vertex (eye)
Vertex (clip)Vertex (clip)
Front&BackFront&BackColorColor
Front&BackFront&BackSecondaryColSecondaryColoror
![Page 27: Under the Hood: 3D Pipeline](https://reader031.fdocuments.us/reader031/viewer/2022012918/56813480550346895d9b5db1/html5/thumbnails/27.jpg)
27
GL2 Fragment Processor
TexCoord[TexCoord[nn]]
FrontFacing
zz (|zzee|,f )
Coord
FrontFacing
ColorColor
Coord
ColorColor
SecondaryColSecondaryColoror
Depth Depth
TemporariesTemporaries
FragmenFragmentt
ShaderShader
UniformUniform TextureTexture