Advanced Lighting Techniques Dan Baker (Meltdown 2005)

90

Transcript of Advanced Lighting Techniques Dan Baker (Meltdown 2005)

Page 1: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)
Page 2: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Advanced Lighting TechniquesDan BakerSoftware Design EngineerMicrosoft Corporation

Page 3: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Review The BRDF• Bidirectional Reflectance

Distribution Function• Ratio of irradiance to

reflected radiance

ωedωi

ωi

Page 4: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

The BRDF• Incident, excitant directions defined

in the surface’s local frame (4D function) Nωe

ωi

T

θiθe

φiφe

Page 5: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

The BRDF• Isotropic BRDFs are 3D functions

Nωe ωiθi

θe

φ

Page 6: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

The Reflection Equation

Page 7: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

The Reflection Equation

Page 8: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

The BRDF• The laws of physics impose certain constraints

on a BRDF• To be physically plausible, it must be:

• Reciprocal• Energy-Conserving

• You are already using a BRDF, even if you don’t know it• Phong• Blinn-Phong• Diffuse

Page 9: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

How Do We Evaluate a Lighting Model?• Real time graphics technology is

based on rasterization• Currently, our pipeline consists of

triangles, which get processed by a vertex shader, and then rasterized

• The rasterization step produces pixels (aka fragments), which are then processed and placed into a rendertarget

Page 10: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A Modern Real Time Graphics System

VertexBuffer

InputAssembler

VertexShader

SetupRasterizer

OutputMerger

PixelShader

IndexBuffer Texture Render

TargetDepthStencilTexture

Memory

memory programmable fixed

Sampler Sampler

Constant Constant

Page 11: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Tomorrows Graphic’s System

VertexBuffer

InputAssembler

VertexShader

SetupRasterizer

OutputMerger

PixelShader

GeometryShader

IndexBuffer Texture Texture Render

TargetDepthStencilTexture Stream

Buffer

Stream out

Memory

memory programmable fixed

Sampler Sampler Sampler

Constant Constant ConstantMemory

Page 12: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Where We Have Control• Shader controls each process point• With some restrictions, can perform

any computation we want• A reflectance model can be evaluated

at any of these stages, or any combination

• Historically, computations were done on vertex levels, but have steadily moved into pixels

• Soon, will be able to shade on a triangle

Page 13: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Frequency of Evaluation• Generally, vertex evaluation is lowest

frequency, while pixel is at a higher frequency

• Not the case for low resolution• Small triangles (sliver) not rendered

by realtime hardware• Geometry aliasing avoided by not

drawing sliver triangles

Page 14: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

An Example BRDF• In HLSL, the Blinn-Phong model looks like:

float3 BlinnPhong(float3 L, float3 V){

float3 H = normalize(V + L);float3 C = Ks*pow(dot(H, float3(0,0,1)), Power) + Kd*dot(N,L);

}

Page 15: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Gamma Space• BRDFs operate in linear space, not

gamma space• Most albedo textures are authored in

gamma space, so must convert into linear space in the shader (and convert them back into gamma space)

• Can use SRGB to convert gamma albedo textures into linear space, gives more precision where needed and acts as a compression scheme

Page 16: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Gamma Correcting• If we render straight to the screen, and

backbuffer isn’t linear (usual case), need to go into gamma

• sqrt is a close approximation

float3 BlinnPhong(float3 L, float3 V){

float3 H = normalize(V + L);float3 C = Ks*pow(dot(H, float3(0,0,1)), Power) + Kd*dot(N,L);

C = sqrt(C);}

Page 17: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Dynamic Range• BRDFs can have a wide range of color

intensities• 8 bit per channel backbuffer does poor

job of capturing range• Easy for information to be lost – e.g.

clamped to max value, or not enough precision

Page 18: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Blooming/Tone Mapping• Bright pixels bleed to neighbors• Exposure control • If these are used – BRDF will store

color value stored in rendertarget, and an image space filter applied

• Likely de-facto standard in future

Page 19: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

How Do We Evaluate a BRDF?• Direct Evaluation

• Make an ALU program in the GPU• Texture Evaluation

• Perform a texture lookup• A combination of the 2.

• Factor some things into textures• Do others with ALU

Page 20: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

How Do We Represent Material Variation?

• Microvariation is important• Want more then just a single

BRDF for a surface, this BRDF must change across the surface

• Bumpmapping is a coarse variation

Page 21: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Which Reflectance Model to Use• Different reflectance models have

different costs• Cost – Data• Cost – ALU• Cost – Time to make content• Cost – Accuracy• Consider: Strong trend toward more

ALU, less data

Page 22: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

BRDF Costs, Minimal Surface Variation

Model Texture costs ALU costsBlinn-Phong Direct 0 7Blinn-Phong factored 1 2Banks Direct 0 12Banks Factored 1 5Ashikhmin/Shirley 0 40Ashikhmin/Shirley factored 4 10Lafortune Direct 0 10 + 5 *nCook-Torrance 0 35

Page 23: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

BRDF Costs With Surface Variation

Model Texture costs ALU costsBlinn-Phong Direct 1 15Blinn-Phong factored 2 10Banks Direct 1 25Banks Factored 2 18Ashikhmin/Shirley 2 50 (60)*Ashikhmin/Shirley factored 6 30 Lafortune Direct 2 30 +

5*LobesCook-Torrance 1 40

Page 24: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

chart courtesy of Addy Ngan, Frédo Durand, and Wojciech Matusik

Accuracy of Blinn-Phong

Page 25: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

chart courtesy of Addy Ngan, Frédo Durand, and Wojciech Matusik

Accuracy of Ashikhmin Shirley

Page 26: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Getting Variation• Could sample real materials to

generate a BRDF map [McAllister SBRDF].

• But, variation usually done by an artist.

• Sometimes we get variation by using an understanding of mesogeometry

• Sometimes it is done by making changes in the assumption of the microgeometry

Page 27: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Bump Mapping

Page 28: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Pixel Level Evaluation

Page 29: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Pixel Level Evaluation, Shift

Page 30: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Shifting Samples• The sample points change drastically

as the triangle moves and changes size

• If using micro variation, e.g. loading data elements from a texture, the evaluation can be significantly different

• Texture filters – solves this problem for linear data elements

• Linear for temporal, MIP mapping for resolution changes

Page 31: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

But…• Texture filters are linear• BRDFs are usually non linear• Get some image stability, but not

great results• Must at least prevent radical shifts in

image • Often, variation must be mitigated• Would be nice to texel shade instead

Page 32: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

What Does a Sample Point Mean?

What happens What happens when this pixel when this pixel is evaluated? is evaluated? Given a set of Given a set of parameters parameters interpolated interpolated from the from the triangles 3 triangles 3 vertices, how vertices, how do we go about do we go about generating a generating a color?color?

Page 33: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Texture Filtering Review

A (1-A)

B

(1-B)

Sample Color =

A*B * +A*(1-B) * +(1-A)*B * +(1-A)*(1-B)* +

Page 34: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Texture swimming

Page 35: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

What about lower resolutions?

Page 36: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A common hack: Level of Detail

MIP

Lev

el

By lowering the By lowering the amplitudeamplitudeOf the Of the displacement, displacement, effectively effectively decreasing to a decreasing to a less complex less complex model as the model as the model moves model moves further away. This further away. This will prevent will prevent aliasing, but isn’t aliasing, but isn’t accurateaccurate

Page 37: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Scale independent lighting• Ideally, the size in pixels of an

object on the screen should not affect its overall appearance

• High frequency detail should disappear

• Global effects should stay the same

• Reasoning behind MIP mapping• Shouldn’t see drastic changes in

image as sample points change

Page 38: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A low resolution rendering of an object should look like a scaled down version of the high resolution one

Scale independent lighting

Page 39: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

MIP Mappingr

t

Page 40: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Mip mapping for diffuse

• For a simple diffuse case, the lighting calculating can be approximately refactored

• The normal integration can also be substituted by a MIP map aware texture filter

rr

rr

rrrrr

r WAWNLWANL *)()(

),(2*)),(2,()( tcolormapDtextnormalmapDtexLdotWTNL rrr

r

Page 41: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Non Linear Lighting models

prr

r

prr NWHHNW )*()(

p

r

prr tnormalmapDtexHHNW )),(2()(

Blinn-Phong isn’t Linear!Blinn-Phong isn’t Linear!

Page 42: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Texture Space Lighting• Rasterize using texture coordinates

as a position• Equivalent to explicitly evaluating

the summation• An object needs a texture atlas• The values in the texture space are

now colors – and are linear• Create a MIP chain explicitly or

through the auto MIP gen option• Render the object with this MIP chain

Page 43: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Texture Space Lighting

Rasterize triangles using texture coordinates as positions, the left image is the normal sampled at each point, and the right image is the computed lighting

Page 44: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Texture Space lighting

We paste the texture onto the object

Page 45: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

TSL: A case study• Texture Space Lighting (TSL) can

allows us to have high frequency lighting on fast moving objects

• Will only have aliasing problems associated with standard filtering techniques

• A roadway is a perfect candidate, subtle specular reflections with a high degree of motion

Page 46: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A roadway, snapshots

We can see Moiré patterns on any filtered non linear functions. Additionally, temporal aliasing becomes problematic.

Page 47: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Using TSL

The artifacts are largely mitigated if we render the non linear function and MIP reduce. We can also see more high frequency detail.

Page 48: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

How this demo works• Each road segment is rendered into a

1024x1024 rendertarget in texture space – alpha is set to 0

• AUTOMIPGEN is then used to do a simple mip filter of the highest level rendering

• This model is then light with the prelit, mip filtered texture and rendered with full aniso

• Art content is simple – just an albedo texture, a normal map with a glossy term

• Everything is done in linear space

Page 49: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

The Shadervoid lightPositional( …){ // norm, light and half are in tangent space // power, Kd, Ks and norm come from textures … //normalized blinn phong float fS = pow(saturate(dot(norm, half)), power)) * power; float fD = saturate(dot(norm, light)) * diffuseIntensity; vColorOut.xyz = fS * Ks + fD * Kd; vColorOut.a = 1; //put us in gamma space for the direct rendering only if (bTextureView) vColorOut = sqrt(vColorOut); }

Page 50: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Pasting the texture on the Scene void light_from_texture( float2 vTexCoord: TEXCOORD0,

out float4 vColorOut: COLOR0 ){

// this is done with full anisotropy turned on// with SRGBTexture set to truevColorOut = tex2D(LightMapSampler, vTexCoord);

//for atlased objects, we do not want to blend in // unrendered pixels

if( vColorOut.a > 1e-5 )vColorOut.xyz /= vColorOut.a;

//put us in gamma spacevColorOut = sqrt(vColorOut);

}

Page 51: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Drawing polygons on the backside[emittype [triangle MyVType ]][maxvertexcount [3]]void ClipGeometryShader(triangle MyVType TextureTri[3]){ float2 coord1 = project(TextureTri[0]); float2 coord2 = project(TextureTri[1]); float2 coord3 = project(TextureTri[2]); float3 Vec1 = float3(coord3 – coord1, 0); float3 Vec2 = float3(coord3 – coord2, 0); float Sign = cross(Vec1, Vec2).z; if (Sign > -EPSILON) { emit(TextureTri[0]); emit(TextureTri[1]); emit(TextureTri[2]); cut; }}

Page 52: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Problems with TSL• Main problem is performance• We can’t render each object in the

screen at a fixed resolution and scale down

• We need a way to render the object at a reduced resolution which looks close to the higher detail one when zoomed out

• Basically, we need to know how to create non linear MIP chains

Page 53: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

MIP-Mapping Reflectance Models

Page 54: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

MIP-Mapping Reflectance Models• Commonly thought of as the normal

map filtering problem • Some common techniques involve

first MIP mapping the height map, and then creating a normal map from them, or fading the normal to (0,0,1)

• All of these techniques are grossly inaccurate– in fact, the normal is the least important aspect of a correct MIP filter

• Only NDM (Olano and North) filters linearly

Page 55: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A little bit of microfacet Theory• Surface modeled as flat microfacets

• Each microfacet is a Fresnel mirror• most BRDFs are microfacet models

• Normal Distribution Function (NDF) p(ω)• p(ω)dω is fraction of facets which have

normals in the solid angle dω around ω• ω is defined in the surfaces’ local

frame• There are various different options for p(ω)

Page 56: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Microfacet Theory• For given ωi and ωe, only facets

oriented to reflect ωi into ωe are active

• These facets have normals at ωhωi

ωe

ωiωiωi

ωiωiωi

ωeωe ωe ωe ωe

ωe

ωhωhωh

ωh ωh ωh

ωh

Page 57: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Microfacet Theory• Fraction of active microfacets is

p(ωh)dω• Active facets have reflectance RF(αh)• αh is the angle between ωi (or ωe) and

ωh ωiωi ωi

ωe

ωiωiωiωi

ωeωe ωe ωe ωe

ωe

ωhωhωh

ωh ωh ωh

ωh

Page 58: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

So what does a MIP map mean anyway?• Non-linear lighting functions

fundamentally represent microfacets • Specifically, represents a distribution

of micofacets• A mip map is a lower resolution image

which best represents the higher resolution one

• But – how does this work if we have a bunch of little mirrors?

Page 59: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A simple non linear function

The Blinn-Phong lighting model is one of the most common half angle based lighting functions. The above is a normalized version, that is the total emitted energy is close to constant for any power. This model is parameterized by N, Kd, Ks, and p. Changing these values changes the properties of the underlying surface

psd VLNkpLNkVLf )(*)(),(

Page 60: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A common approach

The image on the left is lit with MIP maps fading to flat, while the image on the right is what the image would look like if rendered at a higher resolution and scaled down. The objects do not physically look the same.

Page 61: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A more correct MIP map

The images in the middle were rendered directly to the screen using a BRDF approximating MIP map. The more we zoom out, the larger the difference between the correct and incorrect approaches

Page 62: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Examining a mip level – simple

32 32

32 32

32

Next MIP Level – same thing

Page 63: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Examining a mip level8 45

16 25

25

Next MIP Level, Average Power?

Page 64: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Examining a MIP level

32 32

32 32

32

Next MIP Level, Average power, normal?

Page 65: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

What about a larger patch and a lower mip?

5

Page 66: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Setting up the problem• Forgetting for a second about

texture filtering, each MIP level should approximate the signal in the higher level texture

• For a BRDF model, this means that the lower MIP levels should approximate the more detailed version

• In other words, we want the BRDF at a different scale

Page 67: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A simple BRDF• To start, consider the specular part

of the normalized Blinn-Phong BRDF

• For each texel, there is a function F(V,L), which given a View direction and a Light direction, returns a color

• Each texel has a different N, Kd, and Power to get surface variation

• N, Ks, and Power are the parameters of a Blinn-Phong lighting model

Page 68: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Reflectance at a single texel

Ks = .02, P = 30 Ks = .02, P = 30

Ks = .02, P = 24 Ks = .01, P =30 Ks = ???, P = ???

(?,?,?)

For a given light and view For a given light and view direction, how do we pick a Ks, direction, how do we pick a Ks, a Power and Normal so that a Power and Normal so that we get the same final color?we get the same final color?

MIP Level 0 MIP Level 1

Page 69: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Solving for a single patch of texels

),(4

),(),(),(),( 22211211 VLFVLFVLFVLFVLF

For a given patch of texels w wide and h tall:For a given patch of texels w wide and h tall:

),(),(10 0

VLFVLFwj

w

i

h

jij

ijpijijijij VLNkpVLF )(),(

Where,Where,

Page 70: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

We care about all pairs of L and V

L V

w

i

h

jij VLFVLF

wjpkNE

2

0 0

),(),(1),,(

2

0 0

),(),(1),,(

VLFVLFwj

pkNew

i

h

jij

Creating an error function for a single pair of L and V:Creating an error function for a single pair of L and V:

Need to find the minimum error across all possible V and L Need to find the minimum error across all possible V and L

Page 71: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Creating a MIP filter• We want to find a value of N, k, and p

such that E(N, k, p) is the smallest value possible

• This is a non-linear optimization problem

• There are many ways to fit non-linear problems, for this problem we chose to use BFGS which is a quasi-Newton algorithm

Page 72: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Non Linear fitting• BFGS requires the partial derivatives of the

error function with respect to each parameter we want to fit

• The derivatives must be continuous over the space we are interested in

• Double integral cannot be solved analytically, so it is numerically evaluated

• A good way to express the normal is as an X, Y with an implied Z. But error function must take care to keep the normal normalized

Page 73: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Giving a good first guess• Non-linear algorithms work well when

we don’t have many local minima and we have a reasonable starting guess

• For the Blinn-Phong, seed of the averaged Normal, the averaged Ks, and a low power – less then half of the previous level works well

• But, power should not be near or less then 1!

Page 74: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Non linear with Blinn PhongWith the Blinn-With the Blinn-Phong BRDF, the Phong BRDF, the error plot shows error plot shows that the function that the function is mostly smooth. is mostly smooth. As long as we take As long as we take a guess in the a guess in the dark region, we dark region, we should be fine. should be fine. Graph is log(1 + Graph is log(1 + error)error)

power

Ks

Page 75: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Speeding it up• Running a BFGS with that error function

took a few hours on a 512x512 texture• Gives a good fit, but still too slow• However, this function can be

refactored in terms of the half angle• This reduces dimensionality from 4 to 2!• Additionally, summation in middle of

integral is constant for a given H, so this can be precomputed and reused, assuming enough memory

Page 76: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Speeding it up

H

w

i

h

jij HFHF

wjpkNE

2

0 0

)()(1),,(

But, we must use Half Angle But, we must use Half Angle Distribution Distribution

Page 77: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Results• Resulting MIP level looks closer to

original detail • Turns out that the optimal normal is

usually pretty close to the average normal. You can get away with minimizing just P and Ks

• The power decreases rapidly for a rough surface. Each MIP has about 50-70% of the exponent of its previous level!

• An object with a shiny rough surface will appear dull as the object is further away

Page 78: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Dealing with Anisotropy• Using a simple Blinn-Phong BRDF doesn’t allow

anisotropic effects to be captured at lower MIP levels

• A simplified, half angle version of the Ashikhmin-Shirley BRDF can do this

• We now have E(N, T, Ks, Pu, Pv), that is, we have 2 powers for the tangent frame – and the Tangent frame might vary per pixel

• Anisotropic objects, e.g. a record with grooves on it should stay anisotropic

Page 79: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Why Ashikhmin-Shirley ?• Convergence is generally better,

compared to other BRDFS • Is half angle based – so MIP

evaluation is still fast• Is data light, computation heavy• Can exactly represent Blinn-

Phong

Page 80: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Anisotropy• For more complex BRDFs, one should take

care to ensure function well behaved at limit points

222

22

)()(21)(

)()(

0)()(lim HTPHTPHN

HTPHTP

HN

vvuu

vvuu

eHN

2

22

)()()(

)()( HNHTPHTP

vus

vvuu

HNPPKHF

Page 81: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

A side note:• Artists can create extremely high

resolution height maps, modeling the micro geometry aspects of a surface

• Brush strokes, grooves, scratches etc would just appear on the high-res height map

• A fitting algorithm could then capture the various aspects – roughness, anisotropy, etc.

Page 82: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Solution for high quality rendering1) Determine objects maximum MIP level2) Render from that MIP level downward,

culling off unseen polygons3) Compute lower MIP levels4) Draw object with the lit texture, using best

filter possible*5) At lower MIP levels, once texel variation is

minimal, disable TSL *Optionally blend MIP transitions to eliminate any

popping

Page 83: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

System considerations• Don’t need a texture for each objects

–just a set of textures which we recycle

• Can reduce render resolution to adjust framerate

Page 84: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Final thoughts on fitting• More research to be done on

BRDF fitting • Untackled issues : more

anisotropic fitting, need to look at more data

• Optimizing for bilinear reconstruction would also help direct rasterization at the expense of removing some detail

Page 85: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

More thoughts• Even if you don’t use Texture space

lighting, fitting non linear functions to create MIP maps should be done

• It’s free at runtime! • Texture Space Lighting is an easily

scalable feature. It can be enabled on newer hardware

• Because TSL gets computed in point sampling mode and pasted once, we can invest a resources in a much better reconstruction filter – e.g. bicubic with better anisotropy

Page 86: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

• Introduction To Modern Optics, 2nd ed., Fowles (Dover)• Principles of Digital Image Synthesis, Glassner (MK)• The Physics and Chemistry of Color, 2nd ed., Nassau (Wiley)• Geometric considerations and nomenclature for reflectance, Nicodemus et. al.

(NBS 1977)• A practitioners' assessment of light reflection models, Shirley et. al. (Pacific

Graphics 1997)• A survey of shading and reflectance models for computer graphics, Schlick

(Computer Graphics Forum)• Illumination for computer generated pictures, Phong (Communications of the ACM)• Models of light reflection for computer synthesized pictures, Blinn (SIGGRAPH

1977)• A reflectance model for computer graphics, Cook and Torrance (ACM ToG)• Measuring and modeling anisotropic reflection, Ward (SIGGRAPH 1992)• An anisotropic phong BRDF model, Ashikhmin and Shirley (JGT)• Non-linear approximation of reflectance functions, Lafortune et. al. (SIGGRAPH

1977)• Generalization of Lambert's reflectance model, Oren and Nayar (SIGGRAPH 1994)• Predicting reflectance functions from complex surfaces, Westin et. al. (SIGGRAPH

1992)• A microfacet-based BRDF generator, Ashikmin et. al. (SIGGRAPH 2000)• Illumination in diverse codimensions, Banks (SIGGRAPH 1994)• An accurate illumination model for objects coated with multilayer films, Hirayama

et. al. (Eurographics 2000)• Diffraction shaders, Stam (SIGGRAPH 1999)• Simulating diffraction, Stam, in GPU Gems (AW)

References - Background

Page 87: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

References - Techniques• Experimental validation of analytical BRDF models, Ngan et. al. (SIGGRAPH 2004

Sketch)• Normal distribution functions and multiple surfaces, Fournier (Graphics Interface

1992)• From structure to reflectance, Fournier and Lalonde, in “Cloth Modeling and

Animation” (AK Peters)• Efficient rendering of spatial bi-directional reflectance distribution functions, McAllister

et. al. (Graphics Hardware 2002)• An efficient representation for irradiance environment maps, Ramamoorthi and

Hanrahan (SIGGRAPH 2001)• Precomputed radiance transfer for real-time rendering in dynamic, low-frequency

lighting environments, Sloan et. al. (SIGGRAPH 2002)• The plenoptic function and the elements of early vision, Adelson and Bergen, in

Computational Models of Visual Processing (MIT)• Steerable illumination textures, Ashikhmin and Shirley (ToG)• Polynomial Texture Maps, Malzbender et. al. (SIGGRAPH 2001)• Interactive subsurface scattering for translucent meshes, Hao et. al. (Si3D 2003)• Clustered principal components for precomputed radiance transfer, Sloan et. al.

(SIGGRAPH 2003)• All-frequency precomputed radiance transfer for glossy objects, Liu et. al. (EGSR 2004)• Triple product wavelet integrals for all-frequency relighting, Ng et. al. (SIGGRAPH

2004)• All-frequency shadows using non-linear wavelet lighting approximation, Ng et. al.

(SIGGRAPH 2003)• The irradiance volume, Greger et. al. (IEEE CG&A Mar.98)• Spherical harmonic gradients for mid-range illumination, Annen et. al. (EGSR 2004)• Ambient occlusion fields, Kontkanen and Laine (Si3D 2005)• Normal Distribution Mapping, Olano and North (Tech Report, 1996)

Page 88: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

Acknowledgements• Shanon Drone, John Rapp, Jason

Sandlin and John Steed for demo help• Michael Ashikhmin, Henrik Wann

Jensen, Kazufumi Kaneda, Eric Lafortune, David McAllister, Addy Ngan, Michael Oren, Kenneth Torrance, Gregory Ward, and Stephen Westin for permission to use images

• Naty Hoffman for use of his background slides

Page 89: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

© 2005 Microsoft Corporation. All rights reserved. Microsoft, is a registered trademark of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

Page 90: Advanced Lighting Techniques   Dan Baker (Meltdown 2005)

© 2005 Microsoft Corporation. All rights reserved. Microsoft, is a registered trademark of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.