lecture 16 computer graphics mirror and shadows taku komura

40
Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Upload: patrick-hall

Post on 24-Dec-2015

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Computer Graphics

Mirror and Shadows

Taku Komura

Page 2: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Today

• Mirrors– How to render the scene– Using the stencil buffer

• Shadows– Overview– Projective shadows– Shadow texture– Shadow volume– Shadow map

Page 3: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Planar Reflections (Flat Mirrors)

• Basic idea: Drawing a scene with mirrors!– We need to draw all the stuff around the mirror

– We need to draw the stuff in the mirror, reflected, without drawing over the things around the mirror

• Key point: You can reflect the viewpoint about the mirror to see what is seen in the mirror, or you can reflect the world about the mirror

Page 4: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Reflecting Objects

• If the mirror passes through the origin, and is aligned with a coordinate axis, then just negate appropriate coordinate

• Otherwise, transform into mirror space, reflect, transform back

MirrorWall

Page 5: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

We need to use the “Stencil Buffer”

• The stencil buffer acts like a paint stencil - it lets some fragments through but not others

• It stores multi-bit values• You specify two things:

– The test that controls which fragments get through

– The operations to perform on the buffer when the test passes or fails

Page 6: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Stencil Tests

• You give an operation, a reference value, and a mask

• Operations:– Always let the fragment through

– Never let the fragment through

– Logical operations between the reference value and the value in the buffer: <, <=, =, !=, >, >=

Page 7: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Color Buffer, Z-Buffer

• Color Buffer (frame buffer)– The buffer in which the RGB

data is saved

• Z-Buffer (depth buffer)– The depth to the object is saved

– Depth test can be conducted; check whether the new object is farther or closer than the depth in the buffer

– Only update the color buffer when the depth is smaller

Page 8: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Stencil Operations

• Specify three different operations– If the stencil test fails– If the stencil passes but the depth test fails– If the stencil passes and the depth test passes

• Operations are:– Keep the current stencil value– Zero the stencil– Replace the stencil with the reference value– Increment the stencil– Decrement the stencil– Invert the stencil (bitwise)

Page 9: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

mirror

Reflection Example

Page 10: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Normal first, reflected area next

• First pass:– Render the scene without the mirror

• For each mirror– Second pass:

• Clear the stencil, render the mirror, setting the stencil if the depth test passes

– Third pass:• Clear the depth buffer with the stencil

active, passing things inside the mirror only

• Reflect the world and draw using the stencil test. Only things seen in the mirror will be drawn

• Combine it with the scene made during the first pass

The stencil buffer after the second pass

The color buffer after the second pass – the reflected scene cleared outside the stencil

Page 11: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Multiple mirrors

• Can manage multiple mirrors– Render normal view, then do other

passes for each mirror

• A recursive formulation exists for mirrors that see other mirrors– After rendering the reflected area

inside the mirror surface, render the mirrors inside the mirror surface, and so on

Page 12: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Today

• Mirrors– How to render the scene– Using the stencil buffer

• Shadows– Overview– Projective shadows– Shadow texture– Shadow volume– Shadow map

Page 13: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Why Shadows?

• Shadows tell us about the relative locations and motions of objects

Page 14: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Shadows and Motion

Humans conceive the motion of objects using shadows

Demo movie

http://gandalf.psych.umn.edu/users/kersten/kersten-lab/images/ball-in-a-box.mov

Page 15: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Facts about Shadows

• Shadows can be considered as areas hidden from the light source

• A shadow on A due to B can be found by projecting B onto A with the light as the center of projection– Suggests the use of projection transformations

• Point lights have hard edges, and area lights have soft edges

Page 16: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Soft and hard shadows

Soft shadows Hard shadows

Page 17: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Today

• Mirrors– How to render the scene– Using the stencil buffer

• Shadows– Overview– Projective shadows– Shadow texture– Shadow volume

Page 18: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Ground Plane Shadows

• Shadows cast by point light sources onto planes are an important case that is relatively easy to compute– Shadows cast by objects

(cars, players) onto the ground

(xp,yp,zp)

(xsw,ysw,zsw)

L(light position)(xl,yl,zl)

Page 19: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Point Light Shadows

Light source

Object

Floor

Page 20: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Point Light Shadows

• Blinn ’88 gives a matrix that works for local point light sources– Takes advantage of perspective transformation (and

homogeneous coordinates)

1100

0000

00

00

1

0 p

p

p

l

ll

ll

sw

sw

z

y

x

z

yz

xz

y

x

Page 21: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Drawing the Shadow

• We now have a matrix that transforms an object into its shadow

• Drawing the shadow:– Draw the polygon– Multiply the shadow matrix into the model transformation– Redraw the object in grey with blending on

• Tricks:– Lift the shadow a little off the plane to avoid z-buffer

quantization errors (can be done with extra term in matrix)

Page 22: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Lifting the shadow above the surface

Z equal with hit polygonZ-buffer quantization errors

Z above hit polygonApparent shadow too big

ViewerLight

Page 23: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Point Light Shadows : problem

• shadows can only be cast onto planes and not on arbitrary objects.

• the resulting shadows generated have hard edges

• If there is a texture on the floor, grey shadows look bad– If we use blending, the shadow part with

multiple polygons overlapping will look darker

Page 24: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Improving Planar Projected Shadows with Stencil

• Only pixels tagged with the ground plane’s unique stencil value will be updated when the shadow is rendered.

• When a shadow is rendered, the stencil value is set to zero– subsequent pixel updates will fail

• Lifting the shadows above the floor not necessary, – stencil buffer used to avoid rendering the floor over the shadow

region

Page 25: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Shadow Texture

• Use a shadow image as a projective texture

• Generate an image of the occluder from the light’s view and color it grey

• Project this image onto the background and render it using texture mapping

• Can render shadows over curved surfaces

Page 26: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Shadow Texture : Drawbacks

Drawbacks• The occluder and receiver

must be specified• Occluding objects cannot

shadow themselves• Magnification of textures

– Resolution must be adapted

Page 27: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Adaptive Shadow Mapping

• The resolution of the shadow maps is lower than that of the rendered image – Many box shape artifacts

• Need to use shadow map of higher resolutions • Changing the resolution the shadow map according to

the viewpoint• [Fernando et al. 2001]

Page 28: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Today

• Mirrors– How to render the scene– Using the stencil buffer

• Shadows– Overview– Projective shadows– Shadow texture– Shadow volume– Shadow map

Page 29: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Shadow Volume

• In the real world, the shadow cast by an object blocking a light is a volume, not merely some two-dimensional portion of a plane.

• An algorithm that models shadow regions as volumes.

Page 30: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Using Shadow Volumes to Render Shadows

Two stages• Compute the shadow volume formed by a light

source and a set of shadowing objects. • Check whether the point is inside / outside the

shadow volume • inside shadowed

• Outside illuminated by light source

Page 31: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Page 32: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

How to decide inside or out

• Get the polygonal boundary representation for the shadow volume

• Render the scene with the lights enabled• Clear the stencil buffer, and render the shadow volume

– Whenever a rendered fragment of the shadow volume is closer than the depth of the other objects, invert a bit in the stencil value for that pixel

• After rendering, if the bit is on, then it means the fragment is inside the shadow volume, so must be shadowed

• Otherwise outside the shadow

Page 33: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Advantage / Disadvantages of Shadow Volume

• Advantage– It can be used on general-purpose graphics hardware

• Only using the stencil buffer

• Disadvantage – Bottle neck at the rasterizer

– Many shadow volumes covering many pixels

Page 34: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Shadow Mapping

• A method using the Z-buffer

• Render the scene from the light source using the Z-buffer algorithm– The Z-buffer contains the distance to the object – shadow depth map / shadow buffer

• Render the scene from the view point – If the rendered vertex is farther away from the value in

the Z-buffer, it is in the shadow

Page 35: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Shadow Map

• Checking whether Va,Vb is closer to the light

Page 36: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Shadow Map

Preparation • Prepare a depth buffer for each light• Render the scene from the light position• Save the depth information in the depth buffer

Rendering the scene1. Render the objects; when ever rendering an object, check if it

is shadowed or not by transforming its coordinate into the light space

2. After the transformation, if the depth value is larger than that in the light’s depth buffer it should be shadowed

Page 37: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Shadow Map

Advantage• Don’t need a stencil buffer• When there are many shadows, it is faster then

shadow volume

Disadvantage 1. Less accurate than the shadow volume – why?

Page 38: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Soft shadowing by multiple point light sources

• Model an area light source as a collection of point light sources

• Can be used with both planar projected shadows approach or shadow volume approach

• Additive blending is used to accumulate the contribution of each light.

• The softness of the shadow depends on an adequate number of samples.

• The time to render the scene increases linearly with the number of samples used to approximate an area light source.

• Artifacts are introduced if not enough samples are used

Page 39: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Other techniques to generate soft shadow

• Using convolutions - Creating a hard edged shadow texture and render it a number of times by jittering the location, and finally filtering it

Page 40: Lecture 16 Computer Graphics Mirror and Shadows Taku Komura

Lecture 16

Summary

• Mirrors– How to render the scene– Using the stencil buffer

• Shadows– Overview– Projective shadows– Shadow texture– Shadow volume– Shadow map