<<

The Rendering Pipeline is the interface between the device and the computer’s notion of an image • A memory array in which the computer stores an image – On most computers, separate memory bank from main memory – Many different variations, motivated by cost of memory

Framebuffers: True-Color

• A true-color (aka 24-bit or 32-bit) framebuffer stores one byte each for red, green, and blue • Each can thus be one of 224 colors • Pay attention to Endian-ness • How can 24-bit and 32-bit mean the same thing here?

Framebuffers: Indexed-Color

• An indexed-color (8-bit or PseudoColor) framebuffer stores one byte per pixel (also: GIF image format) • This byte indexes into a color map: • How many colors can a pixel be? • Common on low-end displays (cell phones, PDAs, GameBoys)

Framebuffers:

 Illustration of how an indexed palette works  A 2-bit indexed-color image.  The color of each pixel is represented by a number; each number corresponds to a color in the palette.

Image credits: Wikipedia Framebuffers: Hi-Color

• Hi-Color is (was?) a popular PC SVGA standard • Packs into 16 bits: – 5 Red, 6 Green, 5 Blue (why would green get more?) – Sometimes just 5,5,5 • Each pixel can be one of 216 colors • Hi-color images can exhibit worse quantization artifacts than a well-mapped 8-bit image

Color Quantization

 A process that reduces the number of distinct colors used in an image  Intention that the new image should be as visually similar as possible to the original image

Image credits: Wikipedia The Rendering Pipeline: A Tour

Transform Illuminate Transform Clip Project Rasterize

Model & Camera Rendering Pipeline Framebuffer Display Parameters The Display You Know

Transform Illuminate Transform Clip Project Rasterize

Model & Camera Rendering Pipeline Framebuffer Display Parameters The Framebuffer You Know

Transform Illuminate Transform Clip Project Rasterize

Model & Camera Rendering Pipeline Framebuffer Display Parameters The Rendering Pipeline

Transform Illuminate Transform Clip Project Rasterize

Model & Camera Rendering Pipeline Framebuffer Display Parameters 2-D Rendering: Rasterization

Transform Illuminate Transform Clip Project Rasterize

Model & Camera Rendering Pipeline Framebuffer Display Parameters The Rendering Pipeline: 3-D

Transform Illuminate Transform Clip Project Rasterize

Model & Camera Rendering Pipeline Framebuffer Display Parameters The Rendering Pipeline: 3-D

Scene graph Object geometry Result:

Modeling • All vertices of scene in shared 3-D “world” coordinate Transforms system Lighting Calculations • Vertices shaded according to lighting model

Viewing • Scene vertices in 3-D “view” or “camera” coordinate Transform system

• Exactly those vertices & portions of polygons in view Clipping frustum

Projection • 2-D screen coordinates of clipped vertices Transform The Rendering Pipeline: 3-D

Scene graph Object geometry Result:

Modeling • All vertices of scene in shared 3-D “world” coordinate Transforms system Lighting Calculations • Vertices shaded according to lighting model

Viewing • Scene vertices in 3-D “view” or “camera” coordinate Transform system

• Exactly those vertices & portions of polygons in Clipping view frustum

Projection • 2-D screen coordinates of clipped vertices Transform Rendering: Transformations • So far, discussion has been in screen space • But model is stored in model space (a.k.a. object space or world space) • Three sets of geometric transformations: – Modeling transforms – Viewing transforms – Projection transforms

The Rendering Pipeline: 3-D

Scene graph Object geometry Result:

Modeling • All vertices of scene in shared 3-D “world” coordinate Transforms system Lighting Calculations • Vertices shaded according to lighting model

Viewing • Scene vertices in 3-D “view” or “camera” coordinate Transform system

• Exactly those vertices & portions of polygons in view Clipping frustum

Projection • 2-D screen coordinates of clipped vertices Transform Rendering: Lighting • Illuminating a scene: coloring pixels according to some approximation of lighting – Global illumination: solves for lighting of the whole scene at once – Local illumination: local approximation, typically lighting each polygon separately • Interactive graphics (e.g., hardware) does only local illumination at run time

The Rendering Pipeline: 3-D

Scene graph Object geometry Result:

Modeling • All vertices of scene in shared 3-D “world” coordinate Transforms system Lighting Calculations • Vertices shaded according to lighting model

Viewing • Scene vertices in 3-D “view” or “camera” coordinate Transform system

• Exactly those vertices & portions of polygons in Clipping view frustum

Projection • 2-D screen coordinates of clipped vertices Transform Rendering: Clipping

• Clipping a 3-D primitive returns its intersection with the view frustum:

Rendering: Clipping • Clipping is tricky!

In: 3 vertices Clip Out: 6 vertices

Clip In: 1 polygon Out: 2 polygons The Rendering Pipeline: 3-D

Transform Illuminate Transform Clip Project Rasterize

Model & Camera Rendering Pipeline Framebuffer Display Parameters Trivia

 The first blockbuster to use CGs was  Star Wars in 1977.  The 40-second Death Star simulation sequence took the animation company Cuba 12 weeks to produce!  http://www.youtube.com/watch?v=4bSefSLaPFs