23
ECS 175 COMPUTER GRAPHICS Ken Joy Winter 2014

ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

  • Upload
    dinhnhu

  • View
    315

  • Download
    8

Embed Size (px)

Citation preview

Page 1: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

ECS 175

COMPUTER GRAPHICSKen Joy !Winter 2014

Page 2: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

Viewing Volume

!2ECS 175 – The Graphics Pipeline

Page 3: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

The Graphics Pipeline

!3ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera TransformPrimitives

Page 4: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

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

Page 5: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

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

Page 6: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

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

Page 7: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

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

Page 8: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input 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

Page 9: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

The Graphics Pipeline

!9ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Transformation Processor

Camera TransformPrimitives

Page 10: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

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

!

Page 11: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

Clipping and Assembling

!11ECS 175 – The Graphics Pipeline

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

Page 12: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

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 !!

Page 13: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

Rasterization

!13ECS 175 – The Graphics Pipeline

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

Page 14: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

The Pipeline

!14ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

Page 15: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

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 !

Page 16: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

Lower Pipeline Summary

!16ECS 175 – The Graphics Pipeline

Vertex Processor

Clipper and Assembler Rasterizer Fragment

Processor

3D Triangles

Clipped Triangles

2D Triangles Fragments

Page 17: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

Depth Buffers (pre-1974)

!17ECS 175 – The Graphics Pipeline

frame buffer

color lookup table

screen

Page 18: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

Depth Buffers (about-1975)

!18ECS 175 – The Graphics Pipeline

frame buffer

screen

Page 19: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

Depth Buffers (post-1975)

!19ECS 175 – The Graphics Pipeline

frame buffer

screen

depth buffer

Page 20: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

Depth Buffers

!20ECS 175 – The Graphics Pipeline

Page 21: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

• 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

Page 22: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World Space

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

Page 23: ECS 175 COMPUTER GRAPHICS - University of …graphics.cs.ucdavis.edu/~joy/ecs175/Lectures/Lecture7.pdfCOMPUTER GRAPHICS Ken Joy ! ... Input vertices - Output vertices World 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