Nima Kalantari
CSCE 441 - Computer Graphics
Rendering Overview
Some slides from Ren Ng and Ravi Ramamoorthi
3D Graphics Pipeline
Modeling
Animation
Rendering
Image from
Levoy et al. 2000
Image from
Liu and Popovic 2002
3D Graphics Pipeline
Modeling
Animation
Rendering
Image from
Levoy et al. 2000
Image from
Liu and Popovic 2002
Outline
Image Formation
Capturing the World
Pinhole camera
Pinhole camera
From Photography, London et al.
Camera model
Camera
Image Plane
Lens
Camera model
Camera
Image Plane
Pinhole
Center of Projection (COP)
Camera model
Camera
Image Plane
Pinhole
Center of Projection (COP)
Camera model
Camera
Image Plane
COP
Digital Image
Camera model
Camera
Image Plane
COP
Outline
Rendering
Model from Pradeep Sen
Geometry
Shape Primitives
3dgep.com
Polygon Meshes
Life of Pi (2012)
Triangle Meshes
Triangles - Fundamental Area Primitive
Rendering
Model from Pradeep Sen
Geometry
Rendering
Geometry
Light Source(s)
Camera
Model from Pradeep Sen
Rendering
Geometry
Camera
COP
Goal: compute the color of each pixel
Light Source(s)
Model from Pradeep Sen
Rendering
Geometry
Camera
COP
Goal: compute the color of each pixel
Light Source(s)
Model from Pradeep Sen
Rendering
Geometry
Camera
COP
Model from Pradeep Sen
Rasterization
Geometry
Camera
COP
Model from Pradeep Sen
Ray Tracing
COP
Geometry
Camera
Model from Pradeep Sen
Rendering
Geometry
Camera
COP
Model from Pradeep Sen
Outline
Rasterization Pipeline
Vertex Processing
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Display
Application
1
2
3
4
Input: vertices in 3D space
Vertex Stream
Vertices positioned in screen space
Triangle Stream
Triangles positioned in screen space
Fragment Stream
Fragments (one per covered sample)
Shaded Fragments
Shaded fragments
Output: image (pixels)
Application
Example
NBA 2K21 – from IGN - Gaming YouTube channel
Rasterization Pipeline
Vertex Processing
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Shaded Fragments
Fragment Stream
Triangle Stream
Vertex Stream
Display
Application
z
x
y
Modeling & viewing transforms
Transformation
Digital Scene
Geometry
Model from Pradeep Sen
Local Coordinate
y
x
z
World Coordinate
Model Transformation
Model Transformation
Model Transformation
Transformation
View Transformation
Model from Pradeep Sen
Camera
World Coordinate
Camera Coordinate
Transformation
Projection
Model from Pradeep Sen
Camera
Image Plane
3D
2D
Transformation
3D in Local Coordinate
2D
Transformation
(7.1, 0.6)
(1.4, 9.5)
(9.8, 7.6)
Rasterization Pipeline
Vertex Processing
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Shaded Fragments
Fragment Stream
Triangle Stream
Vertex Stream
Display
Application
z
x
y
Modeling & viewing transforms
Rasterization Pipeline
Vertex Processing
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Shaded Fragments
Fragment Stream
Triangle Stream
Vertex Stream
Display
Application
Connecting points to form triangles
Triangle processing
(7.1, 0.6)
(1.4, 9.5)
(9.8, 7.6)
Rasterization Pipeline
Vertex Processing
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Shaded Fragments
Fragment Stream
Triangle Stream
Vertex Stream
Display
Application
Sampling triangle coverage
output -> fragments
Fragments
Rasterization Pipeline
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Shaded Fragments
Fragment Stream
Triangle Stream
Vertex Stream
Display
Application
+ Specular
Phong Reflection
=
Ambient
Diffuse
+
Evaluating shading functions
Vertex Processing
Rasterization Pipeline
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Shaded Fragments
Fragment Stream
Triangle Stream
Vertex Stream
Display
Application
Texture mapping
Vertex Processing
Rasterization Pipeline
Vertex Processing
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Shaded Fragments
Fragment Stream
Triangle Stream
Vertex Stream
Display
Application
Z-Buffer Visibility Tests
Rasterization Pipeline
Monitor
Vertex Processing
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Display
Application
1
2
3
4
Input: vertices in 3D space
Vertex Stream
Vertices positioned in screen space
Triangle Stream
Triangles positioned in screen space
Fragment Stream
Fragments (one per covered sample)
Shaded Fragments
Shaded fragments
Output: image (pixels)
CPU & GPU
Graphics Processing Unit (GPU)
Rasterization Pipeline
Monitor
Vertex Processing
Triangle Processing
Rasterization
Fragment Processing
Framebuffer Operations
Display
Application
1
2
3
4
Input: vertices in 3D space
Vertex Stream
Vertices positioned in screen space
Triangle Stream
Triangles positioned in screen space
Fragment Stream
Fragments (one per covered sample)
Shaded Fragments
Shaded fragments
Output: image (pixels)
CPU & GPU
Graphics Processing Unit (GPU)
Graphics Processing Unit (GPU)
Dedicated Graphics Card
NVIDIA GeForce Titan X
Connection
to Monitor
Connection
to CPU
GPU
Graphics Processing Unit (GPU)
Comparison of GPU and CPU
CPU
(few cores)
GPU
(thousands of cores)
| | | |
| | | |
| | | |
| | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
| | | | | | | | | | | | | |
Why GPU is necessary?
Unreal Engine 5 Demo (2020)