david luebke2/23/2016 cs 551 / 645: introductory computer graphics color continued clipping in 3d

31
David Luebke 06/19/22 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

Upload: kelly-powers

Post on 18-Jan-2018

217 views

Category:

Documents


0 download

DESCRIPTION

David Luebke2/23/2016 Recap: Basics of Color l Physics: –Illumination n Electromagnetic spectra –Reflection n Material properties (i.e., conductance) n Surface geometry and microgeometry (i.e., polished versus matte versus brushed) l Perception –Physiology and neurophysiology –Perceptual psychology

TRANSCRIPT

Page 1: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

CS 551 / 645: Introductory Computer Graphics

Color ContinuedClipping in 3D

Page 2: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Administrivia

Hand back assignment 1 (finally…) Hand out assignment 3 Graphics Lunch (Glunch)…Fridays at noon,

typically in Olsson 236D (this week in 228E)– Announcements on uva.cs.graphics or at

http://www.cs.virginia.edu/glunch– This week:

Antialiasing on LCD screens Graphical interface stuff in Windows2000

Page 3: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Recap: Basics of Color

Physics: – Illumination

Electromagnetic spectra

– Reflection Material properties (i.e., conductance) Surface geometry and microgeometry (i.e., polished

versus matte versus brushed)

Perception– Physiology and neurophysiology– Perceptual psychology

Page 4: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Recap: Physiology of Vision

The retina– Rods– Cones

Page 5: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Recap: Cones

Three types of cones:– L or R, most sensitive to red light (610 nm) – M or G, most sensitive to blue light (560 nm)– S or B, most sensitive to blue light (430 nm)

– Color blindness results from missing cone type(s)

Page 6: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Recap: Metamers

A given perceptual sensation of color derives from the stimulus of all three cone types

Identical perceptions of color can thus be caused by very different spectra

Page 7: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Recap: Perceptual Gotchas

Color perception is also difficult because:– It varies from person to person (thus std observers)– It is affected by adaptation (transparency demo)– It is affected by surrounding color:

Page 8: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Color Spaces

Three types of cones suggests color is a 3D quantity. How to define 3D color space?

Idea: shine given wavelength () on a screen, and mix three other wavelengths (R,G,B) on same screen. Have user adjust intensity of RGB until colors are identical:

How closely does this correspond to a color CRT?

Problem: sometimes need to “subtract” R to match

Page 9: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

CIE Color Space

The CIE (Commission Internationale d’Eclairage) came up with three hypothetical lights X, Y, and Z with these spectra:

Idea: any wavelength can be matched perceptually by positive combinations of X,Y,Z

Note that:X ~ R + BY ~ G + everythingZ ~ B

Page 10: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

CIE Color Space

The gamut of all colors perceivable is thus a three-dimensional shape in X,Y,Z:

For simplicity, we often project to the 2D plane X+Y+Z=1X = X / (X+Y+Z)Y = Y / (X+Y+Z)Z = 1 - X - Y

Page 11: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

CIE Chromaticity Diagram (1931)

Page 12: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Device Color Gamuts

Since X, Y, and Z are hypothetical light sources, no real device can produce the entire gamut of perceivable color

Example: CRT monitor

Page 13: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Device Color Gamuts

The RGB color cube sits within CIE color space something like this:

Page 14: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Device Color Gamuts

We can use the CIE chromaticity diagram to compare the gamuts of various devices:

Note, for example, that a color printercannot reproduceall shades availableon a color monitor

Page 15: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Converting Color Spaces

Simple matrix operation:

The transformation C2 = M-12 M1 C1 yields

RGB on monitor 2 that is equivalent to a given RGB on monitor 1

BGR

ZZZYYYXXX

BGR

BGR

BGR

BGR

'''

Page 16: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Converting Color Spaces

Converting between color models can also be expressed as such a matrix transform:

YIQ is the color model used for color TV in America. Y is luminance, I & Q are color– Note: Y is the same as CIE’s Y – Result: backwards compatibility with B/W TV!

BGR

QIY

31.052.021.032.028.060.0

11.059.030.0

Page 17: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Gamma Correction

We generally assume colors are linear But most display devices are inherently

nonlinear– I.e., brightness(voltage) != 2*brightness(voltage/2)

Common solution: gamma correction– Post-transformation on RGB values to map them

to linear range on display device:– Can have separate for R, G, B

1

xy

Page 18: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Next Topic: 3-D Clipping

Page 19: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

3-D Clipping

Before actually drawing on the screen, we have to clip (Why?)– Safety: avoid writing pixels that aren’t there– Efficiency: save computation cost of rasterizing

primitives outside the field of view Can we transform to screen coordinates first,

then clip in 2-D?– Correctness: shouldn’t draw objects behind viewer

(what will an object with negative z coordinates do in our perspective matrix?) (draw it…)

Page 20: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Perspective Projection

Recall the matrix:

Or, in 3-D coordinates:

10100010000100001

zyx

ddzzyx

d

dzy

dzx ,,

Page 21: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Clipping Under Perspective

Problem: after multiplying by a perspective matrix and performing the homogeneous divide, a point at (-8, -2, -10) looks the same as a point at (8, 2, 10).

Solution A: clip before multiplying the point by the projection matrix – I.e., clip in camera coordinates

Solution B: clip before the homogeneous divide – I.e., clip in homogeneous coordinates

Page 22: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Clipping Under Perspective

We will talk first about solution A:

Clip againstview volume

Apply projectionmatrix and

homogeneousdivide

Transform intoviewport for2-D display

3-D world coordinateprimitives

Clippedworld

coordinates

2-D devicecoordinates

Canonicalscreen

coordinates

Page 23: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Recap: Perspective Projection

The typical view volume is a frustum or truncated pyramid– In viewing coordinates:x or y

z

Page 24: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Perspective Projection

The viewing frustum consists of six planes The Sutherland-Cohen algorithm (clipping

polygons to a region one plane at a time) generalizes to 3-D– Clip polygons against six planes of view frustum– So what’s the problem?

Page 25: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Perspective Projection

The viewing frustum consists of six planes The Sutherland-Cohen algorithm (clipping

polygons to a region one plane at a time) generalizes to 3-D– Clip polygons against six planes of view frustum– So what’s the problem?

The problem: clipping a line segment to an arbitrary plane is relatively expensive– Dot products and such

Page 26: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Perspective Projection

In fact, for simplicity we prefer to use the canonical view frustum:

1

-1

x or y

z-1

Front or hither plane

Back or yon plane

Why is this going to besimpler?

Page 27: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Perspective Projection

In fact, for simplicity we prefer to use the canonical view frustum:

1

-1

x or y

z-1

Front or hither plane

Back or yon plane

Why is the yon planeat z = -1, not z = 1?

Page 28: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Clipping Under Perspective

So we have to refine our pipeline model:

– Note that this model forces us to separate projection from modeling & viewing transforms

Applynormalizing

transformation

projectionmatrix;

homogeneousdivide

Transform intoviewport for2-D display

3-D world coordinateprimitives

2-D devicecoordinates

Clip against

canonical view

volume

Page 29: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Clipping Homogeneous Coords

Another option is to clip the homogeneous coordinates directly.– This allows us to clip after perspective projection:– What are the advantages?

Clipagainstview

volume

Apply projection

matrix

Transform intoviewport for2-D display

3-D world coordinateprimitives

2-D devicecoordinates

Homogeneousdivide

Page 30: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Clipping Homogeneous Coords

Other advantages:– Can transform the canonical view volume for

perspective projections to the canonical view volume for parallel projections

Clip in the latter (only works in homogeneous coords) Allows an optimized (hardware) implementation

– Some primitives will have w 1 For example, polygons that result from tesselating splines Without clipping in homogeneous coords, must perform

divide twice on such primitives

Page 31: David Luebke2/23/2016 CS 551 / 645: Introductory Computer Graphics Color Continued Clipping in 3D

David Luebke 05/05/23

Clipping: The Real World

In the Real World, a common shortcut is:

Projectionmatrix;

homogeneousdivide

Clip in 2-D screen

coordinates

Clip against

hither andyon planes

Transform intoscreen

coordinates