week 9 - monday. what did we talk about last time? brdfs texture mapping and bump mapping in...

31
CS361 Week 9 - Monday

Upload: santiago-kilborn

Post on 15-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

CS361Week 9 - Monday

Page 2: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Last time

What did we talk about last time? BRDFs Texture mapping and bump mapping

in shaders

Page 3: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Questions?

Page 4: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Project 3

Page 5: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Choosing BRDFs

Page 6: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Fresnel reflectance

Fresnel reflectance is an ideal mathematical description of how perfectly smooth materials reflect light

The angle of reflection is the same as the angle of incidence and can be computed:

The transmitted (visible) radiance Lt is based on the Fresnel reflectance and the angle of refraction of light into the material:

it

iiFt L

θθ

θRL 2

2

sinsin

))(1(

lnlnr )(2i

Page 7: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Snell's Law

The angle of refraction into the material is related to the angle of incidence and the refractive indexes of the materials below the interface and above the interface:

We can combine this identity with the previous equation:

)sin()sin( 21 ti θnθn

iiFt Lnn

θRL 21

22))(1(

Page 8: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Fresnel example

Page 9: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

External reflection

Reflectance is obviously dependent on angle Perpendicular (0°) gives

essentially the specular color of the material

Higher angles will become more reflective

The function RF(θi) is also dependent on material (and the light color)

Page 10: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Approximating reflection

Because it's non-linear, Schlick gives an approximation that works for most substances:

We can use a table of RF(0°) values

5)cos1))(0(1()0()( iFFiF θRRθR

Page 11: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Internal reflection

External reflection needs to be modeled more often than internal reflection

Modeling internal reflection is the same except that the higher optical density can cause total internal reflection

Page 12: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Diffuse light

Usually is not as complex as specular light We can measure a value ρ that gives the ratio

between light escaping a surface relative to light entering a surface

ρ is called the scattering albedo Because of conversation of energy, the more

light that is reflected through Fresnel reflection, the less there is to be reflected diffusely

Thus, a simple approximation for diffuse light is

πρ

θRf iF ))(1(),(diff vl

Page 13: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Microgeometry

Page 14: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Microgeometry

The cause of many lighting effects is microgeometry The smoother the surface, the tighter (and brighter) the

reflections are

Page 15: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Weird effects

Glancing angles can minimize the impacts of surface roughness, making rough surfaces reflective at very high angles

Most surfaces are isotropic (symmetrical) in the way they are rough

Anisotropic surfaces like brushed metal have directional blurring

Page 16: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Implementing BRDFs

Page 17: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Where do BRDFs come from?

The book gives a number of BRDF equations

It is also possible to samples materials (from every angle, at every color of light) to measure a BRDF of your own

Once you've got such a model, how do you implement it?

Page 18: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Implementation

The shader will use the following equation:

The cosine term is found with the dot product Most BRDFs contain a 1/π term Many systems pre-divide EL by π

Make sure you don't double divide (or double multiply)

If some value is computed repeatedly, consider putting it in a texture for lookup

Mipmapping may not work for non-linear BRDFs

kiL

n

kko EfL θcos),()(

1

vlv

Page 19: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Optimizations

It may be expensive to compute the shading based on all the light sources

Also, many APIs (and various graphics cards) limit the number of light sources

Some lights must be averaged into each other for performance reasons

Page 20: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Deferred shading

Shading is usually done while z-buffer testing is done

It's possible to do all the z-buffer testing and then go back and shade only those fragments that contribute to the final scene

Page 21: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

The Other Side of the Fence

Page 22: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Image based rendering

A great deal of graphics research deals with rendering real scenes Don't cameras do that?

Sure, but these graphics guys couldn't publish papers if the stuff wasn't hard for some reason: Reconstructing novel viewpoints Walkthroughs with user controlled paths Introducing synthetic objects into real scenes Re-lighting real scenes with new light sources

I would be remiss if I didn't mention these topics even though they usually have nothing to do with video games and often cannot be rendered in real time

Page 23: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Plenoptic function

A central idea in image-based rendering is the plenoptic function, sometimes called a light field

The basic plenoptic function is and its result is a color In other words, it tells you the color you would

see if you were at and looked in the direction given by angles and

There are also more complicated plenoptic functions that take into account time, wavelength, and more

Page 24: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Sea of Images

Although the research is old now, Daniel Aliaga et al. produced an impressive system for recreating real scenes in real time in which a user can control the path he or she takes

A robot records thousands and thousands of omnidirectional images and its location when it takes them

Then, images are merged together to create a novel view for the current location and orientation

Page 25: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Sea of Images issues

Rendering the images in real time isn't hard Knowing the robot's position for all images is

surprisingly difficult Storing and loading the next images that will

be needed in reconstruction is a huge caching and compression problem

Getting the robot to walk around and scan a scene automatically ended up being too hard

Some of these ideas were used for Google Street View, which is neither real time nor allows for arbitrary locations

Page 26: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Sea of Images Video

Page 27: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Image based lighting

Synthetic objects can be rendered using a BRDF based on measurements of real-world materials

Alternatively, we could sample a real-world object from many different directions and get enough information to re-light it

You can also capture lighting from the real world using a mirrored ball

Then you can re-light: A real image with a different set of real lights Synthetic objects with realistic real light

Page 28: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Image Based Lighting Video

Page 29: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Upcoming

Page 30: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Next time…

Area lighting Environment mapping

Page 31: Week 9 - Monday.  What did we talk about last time?  BRDFs  Texture mapping and bump mapping in shaders

Reminders

Work on Assignment 4 Due this Friday, March 20

Start working on Project 3 Due April 2

Keep reading Chapter 8