25
Color John C. Hart CS 418 Intro to Computer Graphics

Color John C. Hart CS 418 Intro to Computer Graphics

Embed Size (px)

Citation preview

Page 1: Color John C. Hart CS 418 Intro to Computer Graphics

Color

John C. Hart

CS 418

Intro to Computer Graphics

Page 2: Color John C. Hart CS 418 Intro to Computer Graphics

Light Spectrum

Page 3: Color John C. Hart CS 418 Intro to Computer Graphics

Cone Response

Stockman, MacLeod & Johnson (1993)J. Optical Society of America A, 10,2491-2521, via Wikipedia

0

0.2

0.4

0.6

0.8

1.0

400 450 500 550 600 650 700

log

hum

an c

one

resp

onse

wavelength

Page 4: Color John C. Hart CS 418 Intro to Computer Graphics

RGB Additive Color

• Red, Green, Blue• Color model used in luminous

displays (CRT, plasma, LCD)• Physically linear• Perceptually logarithmic• Additive• Designed to stimulate each

kind of cone

R

G

B

Geoff Martin

Page 5: Color John C. Hart CS 418 Intro to Computer Graphics

Light Adds R(L1) + R(L2) = R(L1 + L2)

+ =

Page 6: Color John C. Hart CS 418 Intro to Computer Graphics

Light Stage

Page 7: Color John C. Hart CS 418 Intro to Computer Graphics

Point Light Sources

Debevec et al., Acquiring the Reflectance Field of a Human Face, Proc. SIGGRAPH 2000

Page 8: Color John C. Hart CS 418 Intro to Computer Graphics

Environment Lighting

Debevec et al., Acquiring the Reflectance Field of a Human Face, Proc. SIGGRAPH 2000

Page 9: Color John C. Hart CS 418 Intro to Computer Graphics

CMY Subtractive Color

• Cyan, Magenta, Yellow• Color model used in pigments

and reflective materials(ink,paint)

• Grade school color rules

Blue + Yellow = Green?

Cyan + Yellow = Green• Also CMYK (blacK)

C + M + Y = Brown?

C + M + Y = Black (in theory)

C + M + Y = Gray (in practice)

C

M

Y

1 1

1 1

1 1

1 1 1

C R

M G

Y B

1 min( , , )

1 min( , , )

1 min( , , )

min( , , ) 1

C C M Y C

M C M Y M

Y C M Y Y

K C M Y

Page 10: Color John C. Hart CS 418 Intro to Computer Graphics

NTSC TV Colors

• YIQ – Yluminance = 59%G + 30%R + 11%B– Intermodulation (or In-Phase)– Quadrature

• Flesh tones in I given more bandwidththan Q, but not as much as luminance

• Luminance resolution of NTSC video is about 500 pixels

• Full-color resolution of NTSC video isabout 160 pixels (limited by Q’s carrier)

Y

I

Q

Example by Wikipedia user: (3ucky(3all

Page 11: Color John C. Hart CS 418 Intro to Computer Graphics

Digital Video Colors

• YUV– yLuminance– U B – Y– V R – Y

• Aka YPbPr (analog) andYCbCr (digital)

• YUV422 transmits pixel pairs with individual luminance but shared chrominance

Page 12: Color John C. Hart CS 418 Intro to Computer Graphics

Selecting Colors

HSV = Hue, Saturation, Value• 1978, Alvy Ray Smith• Hue [0,360] is angle about color wheel

0 = red, 60 = yellow, 120 = green,

180 = cyan, 240 = blue, 300 = magenta

• Saturation [0,1] is distance from gray

S = (maxRGB – minRGB)/maxRGB• Value [0,1] is distance from black

V = maxRGB

HLS = Hue, Saturation, Lightness• Double cone, saturation in middle

D = maxRGB – minRGB

maxRGB = R H = (G – B)/D

maxRGB = G H = 2+(B – R)/D

maxRGB = B H =4+ (R – G)/D

H = (60*H) mod 360

Eric Pierce

Page 13: Color John C. Hart CS 418 Intro to Computer Graphics

CIE XYZ

• CIE: International Commission on Illumination

• 3-D space defined by three color-matching functions– X R, Y G, Z B– Y indicates brightness

• Projected to 2-D using

x = X/(X + Y + Z)

y = Y/(X + Y + Z)• Perceptually designed• L,a*,b* space measures perceptual

distance between colors

520

560

540

580

600

620

700

500

490

480

470460 380

x

y

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0.00.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Page 14: Color John C. Hart CS 418 Intro to Computer Graphics

520

560

540

580

600

620

700

500

490

480

470460 380

x

y

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0.00.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8

Gamut

• Portion of the spectrum reproduced by a given color space

• TV’s (even HDTV’s) can only display a small portion of perceivable colors

• Printers can display a slightly different portion of colors

Page 15: Color John C. Hart CS 418 Intro to Computer Graphics

Gamma

• We perceive differences in intensity more carefully for darker shades

• Monitors accommodate this feature

I = cV g

• Gamma usually between 2 and 2.5• Need to correct pixel values so they

display correct intensity

log I = log c + g log V

Page 16: Color John C. Hart CS 418 Intro to Computer Graphics

Lynwood Dunn(1904-1998)• Visual effects pioneer• Acme-Dunn optical printer

Page 17: Color John C. Hart CS 418 Intro to Computer Graphics
Page 18: Color John C. Hart CS 418 Intro to Computer Graphics

Academy of Motion Picture Arts & SciencesScientific and Engineering AwardTo Alvy Ray Smith, Tom Duff, Ed Catmull and Thomas Porterfor their Pioneering Inventions in Digital ImageCOMPOSITING.PRESENTED MARCH 2, 1996

Page 19: Color John C. Hart CS 418 Intro to Computer Graphics

The Over Operator

• How to indicate which parts of front picture are clear and which are opaque

• Use alpha channel to indicate opacity [Smith]

• Over operator [Porter & Duff S’84]• A over B:

CA over B = aA CA + (1 – aA) aB CB

aA over B = aA + (1 – aA) aB

• Note that aA CA used in color equations, so store aA CA instead of CA

• A over B w/premultiplied alpha

CA over B = CA + (1 – aA) CB

aA over B = aA + (1 – aA) aB

B

A

C = (aR aG aB a)

Page 20: Color John C. Hart CS 418 Intro to Computer Graphics

C

Is Over Transitive?

• A over (B over C)

= CA + (1-aA)(CB + (1-aB)CC)

= CA + (1-aA)CB + (1-aA)(1-aB)CC

= CAB + (1 – aA – (1-aA)aB)CC

= CAB + (1-aAB) CC

= (A over B) over C• What about a

= aA + (1-aA) aBC

= aA + (1-aA)(aB + (1-aB) aC)

= aA + (1-aA)aB + (1-aA)(1-aB)aC

= aAB + (1-aAB)aC

B

A

Page 21: Color John C. Hart CS 418 Intro to Computer Graphics

Accumulating Opacity• Depends on order of accumulation• Back to front

– Over operator

Cout = a C + (1 – a) Cin

aout = a + (1 – a) ain

– No need to maintain a• Front to back

– Under operator

Cout = ain Cin + (1 – ain) C

aout = ain + (1 – ain) a– Need to maintain a

Cin,ainCout,aout

C,a

Cout,aoutCin,ain

C,a

view

Page 22: Color John C. Hart CS 418 Intro to Computer Graphics

Order Independent Transparency• Alpha blending works for sorted

rendering– Front to back– Back to front

• Doesn’t work for out-of-order– Front, back, middle

• Would need to keep track separately of the front part and the back part

• Could keep a linked list at each pixel– A-buffer (Catmull)– Not practical for hardware

Page 23: Color John C. Hart CS 418 Intro to Computer Graphics

Depth Peeling

• Cass Everett, NVIDIA Tech Rep, 2001• Needs 2 z-buffers (previous, current)• One rendering pass per layer• Fragment written to frame buffer if

– Farther than previous z-buffer– Closer than current z-buffer

• After each pass, current z-buffer written to previous z-buffer

• Surviving fragment composited “under” displayed fragment

Page 24: Color John C. Hart CS 418 Intro to Computer Graphics

Depth Peels

Page 25: Color John C. Hart CS 418 Intro to Computer Graphics

Results