Week 11 - Monday What did we talk about last time? Project 2 work - - PowerPoint PPT Presentation

week 11 monday what did we talk about last time project 2
SMART_READER_LITE
LIVE PREVIEW

Week 11 - Monday What did we talk about last time? Project 2 work - - PowerPoint PPT Presentation

Week 11 - Monday What did we talk about last time? Project 2 work day Before that: environment mapping Blinn and Newell's method Sphere mapping Cubic environmental mapping Environment mapping in MonoGame The


slide-1
SLIDE 1

Week 11 - Monday

slide-2
SLIDE 2

 What did we talk about last time?  Project 2 work day  Before that: environment mapping

  • Blinn and Newell's method
  • Sphere mapping
  • Cubic environmental mapping
  • Environment mapping in MonoGame
slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7
slide-8
SLIDE 8

 The reflectance equation we have been

studying is:

 The full rendering equation is:  The difference is the Lo(r(p,l),-l) term

which means that the incoming light to

  • ur point is the outgoing light from some
  • ther point

 Unfortunately, this is all recursive (and

can go on nearly forever)

i i

  • ω

d θ r L f L

− ⊗ =

Ω

cos ) ), , ( ( ) , ( ) , ( l l p v l v p

i i i

  • ω

d θ L f L

⊗ =

Ω

cos ) , ( ) , ( ) , ( l p v l v p

slide-9
SLIDE 9

 Real-time rendering uses local (non-recursive) lighting

whenever possible

 Global illumination causes all of our problems (unbounded

  • bject-object interaction)
  • Transparency
  • Reflections
  • Shadows
slide-10
SLIDE 10

 We can describe a path that light L makes to the eye E using

the following notation

Operator Description Example Explanation * Zero or more

S*

Zero or more specular bounces + One or more

D+

One or more diffuse bounces ? Zero or one

S?

Zero or one specular bounces | Either/or

D|SS

Either a diffuse or two specular bounces () Group

(D|S)*

Zero or more of diffuse or specular

slide-11
SLIDE 11
slide-12
SLIDE 12
slide-13
SLIDE 13
slide-14
SLIDE 14
slide-15
SLIDE 15

 Shadow terminology:

  • Occluder: object that blocks the light
  • Receiver: object the shadow is cast
  • nto

 Point lights cast hard shadows

(regions are completely shadows or not)

 Area lights cast soft shadows

  • Umbra is the fully shadowed part
  • Penumbra is the partially shadowed part
slide-16
SLIDE 16

 A planar shadow occurs when an object casts a shadow on a flat surface  Projection shadows are a technique for making planar shadows:

  • Render the object normally
  • Project the entire object onto the surface
  • Render the object a second time with all its polygons set to black

 The book gives the projection matrix for arbitrary planes

slide-17
SLIDE 17

 We need to bias (offset) the plane just

a little bit

  • Otherwise, we get z fighting and the

shadows can be below the surface

 Shadows can be draw larger than the

plane

  • The stencil buffer can be used to fix this

 Only opaque shadows work

  • Partially transparent shadows will make

some parts too dark

  • Z-buffer and stencil buffer tricks can

help with this too

Hard to see example from Shogo: MAD

slide-18
SLIDE 18

 Another fix for projection shadows is rendering them to a

texture, then rendering the texture

  • Effects like blurring the texture can soften shadow

 If the light source is between the occluder and the receiver, an

antishadow is generated

slide-19
SLIDE 19

 True soft shadows occur due to area lights  We can simulate area lights with a number of point lights

  • For each point light, we draw a shadow in an accumulation buffer
  • We use the accumulation buffer as a texture drawn on the surface

 Alternatively, we can move the receiver up and down slightly and average those results  Both methods can require many passes to get good results

slide-20
SLIDE 20

 You can also blur based on the amount of distance from the

  • ccluder to the receiver
  • It doesn't always look right if the occluder touches the receiver

 Haines's method is to paint the silhouette of the hard shadow with

gradients

  • The width is proportional to the height of the silhouette edge casting the

shadow

slide-21
SLIDE 21
slide-22
SLIDE 22

 All you need is the appropriate matrix to flatten all the geometry

  • f your model onto a plane

 In this case, the shadow is cast from a light vector that's in positive

y onto a plane with a normal that's also positive y, 100 units below the origin

 All that's needed is to update the world matrix:  Then draw the model with lighting off and a black color Matrix shadow = Matrix.CreateShadow(Vector3.UnitY, new Plane(Vector3.UnitY, 100)); world = world * shadow

slide-23
SLIDE 23
slide-24
SLIDE 24

 More on shadows

  • Shadow volumes
  • Shadow mapping

 Ambient occlusion

slide-25
SLIDE 25

 Start Assignment 4  Start Project 3  Keep reading Chapter 9