ECS 175 COMPUTER GRAPHICS - University of...

Preview:

Citation preview

ECS 175

COMPUTER GRAPHICSKen Joy !Winter 2014

Viewing Volume

!2ECS 175 – The Graphics Pipeline

The Graphics Pipeline

!3ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera TransformPrimitives

The Graphics Pipeline

!4ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera Transform

Most important pre-2000

Primitives

The Graphics Pipeline

!5ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera Transform

Most important post-2000

Primitives

The Graphics Pipeline

!6ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera TransformPrimitives

Produce VerticesTriangle Processors Bezier Patches, B-Spline Patches Subdivision Methods Modeling Systems

Model SpaceVertices Color Texture Coordinates

The Graphics Pipeline

!7ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera TransformPrimitives

4x4 Matrix EngineInput vertices - Output vertices

World Space

The Graphics Pipeline

!8ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera TransformPrimitives

4x4 Matrix EngineProjective space

Image Space

The Graphics Pipeline

!9ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera TransformPrimitives

The Vertex Processor

!10ECS 175 – The Graphics Pipeline

• Operates on vertices • “Transform” the object and place it in relation to camera • Perform coordinate transformations • Process per-vertex attributes (colors, etc.) !

• OpenGL: • Vertex Shader: Maps vertices to vertices

!

Clipping and Assembling

!11ECS 175 – The Graphics Pipeline

• Assembles primitives from vertices • Determines which objects are visible from camera

Rasterization

!12ECS 175 – The Graphics Pipeline

• Working towards a representation that fits frame buffer • From normalized device coordinates

to window coordinates • Identify pixels ‘inside’ of primitive • Convert primitives into sets of fragments • Interpolate attributes given by vertices !!

Rasterization

!13ECS 175 – The Graphics Pipeline

• Fragments • Carry more than ‘just’ color • Depth, alpha, texture coordinates,… • are potential pixels !

The Pipeline

!14ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

The Fragment Processor

!15ECS 175 – The Graphics Pipeline

• Operates on fragments • Apply per-fragment operations (color, texture, …) • Hidden surface removal • Alpha compositing • Update frame buffer pixels !

Lower Pipeline Summary

!16ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

3D Triangles

Clipped Triangles

2D Triangles Fragments

Depth Buffers (pre-1974)

!17ECS 175 – The Graphics Pipeline

frame buffer

color lookup table

screen

Depth Buffers (about-1975)

!18ECS 175 – The Graphics Pipeline

frame buffer

screen

Depth Buffers (post-1975)

!19ECS 175 – The Graphics Pipeline

frame buffer

screen

depth buffer

Depth Buffers

!20ECS 175 – The Graphics Pipeline

• Programmable stages in computer graphics pipeline !!!!!

• Operations are inherently parallel • SIMD: Single Instruction, Multiple Data !

• Stages are implemented on graphics hardware • From vertices to pixels

Lower Pipeline Summary

!21ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Triangle Processors Bezier Patches, B-Spline Patches Subdivision Methods Modeling Systems

What do we have to do?

!22ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera TransformPrimitives

Vertices Color Texture Coordinates

Produce VerticesModel Space

What do we have to do?

!23ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Learn How to Program These

Recommended