24
CS361 Week 9 - Friday

Week 9 - Friday. What did we talk about last time? Area lighting Environment mapping Blinn and Newell's method Sphere mapping Cubic environmental

Embed Size (px)

Citation preview

CS361Week 9 - Friday

Last time

What did we talk about last time? Area lighting Environment mapping

Blinn and Newell's method Sphere mapping Cubic environmental mapping

Questions?

Project 3

Assignment 4

Student Lecture:Global Illumination

Global Illumination

The true rendering equation 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 our point is the outgoing light from some other point

Unfortunately, this is all recursive (and can go on nearly forever)

iioo ωdθrLfL Ω

cos)),,((),(),( llpvlvp

iiio ωdθLfL Ω

cos),(),(),( lpvlvp

Local lighting

Real-time rendering uses local (non-recursive) lighting whenever possible

Global illumination causes all of our problems (unbounded object-object interaction) Transparency Reflections Shadows

Light paths

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|SSEither a diffuse or

two specular bounces

() Group (D|S)* Zero or more of diffuse or specular

Shadows

Which ball is closer?

The blue one!

No, wait…

Shadows

Shadow terminology: Occluder: object that blocks the

light Receiver: object the shadow is

cast onto 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

Projection shadows

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

Problems with projection shadows

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

Other projection shadow issues Another fix for projection shadows is rendering

them to a texture, then rendering the texture Effects like blurring the texture can soften shadows

softer If the light source is between the occluder and

the receiver, an antishadow is generated

Soft shadows

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

Convolution (blurring)

You can just blur based on the amount of distance from the occluder 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

Projection Shadows in SharpDX

Upcoming

Next time…

More on shadows Ambient occlusion

Reminders

Keep working on Project 3 Finish Assignment 4!

Due tonight by midnight! Keep reading Chapter 9