Basic Lighting and Shading

Post on 22-Feb-2016

35 views 0 download

description

Basic Lighting and Shading. The Important Properties of Light. It can Reflect, bend, spread and scatter. Most Common Light Sources. Global Illumination Light Located at Infinity (Distant Light) Light Located Locally Uniform Light (Ambient) Point Source - PowerPoint PPT Presentation

Transcript of Basic Lighting and Shading

Basic Lighting and Shading

The Important Properties of Light

• It can Reflect, bend, spread and scatter

Most Common Light Sources

• Global Illumination• Light Located at Infinity (Distant Light)• Light Located Locally– Uniform Light (Ambient)– Point Source • Intensity is L(p,P0) = (1 / |p-p0|2 ) L(P0)

– Spotlights (Directional Lights)

OpenGL Light Types

PointSpotlightAmbientDistant

Point

home.elka.pw.edu.pl/.../general/General.html

Spot

home.elka.pw.edu.pl/.../general/General.html

Ambient (Area)

home.elka.pw.edu.pl/.../general/General.html

Distant (Sun / Moon)

home.elka.pw.edu.pl/.../general/General.html

Physical Light

Bidirectional Reflection Distribution Function– (BRDF)

This is based on 5 Variables:– Frequency– Source Vector (x,y)– Output Vector (x,y)

• It also requires a ‘real’ surface

This is a hugely expensive calculation

• Most light consists of a large frequency Range

• In games we have many fast ways of creating the effects of light

Firslty we need to get rid of the ‘spectrum’

• The human Eye recognises colours through 3 types of cones– We can exploit this behaviour by directly

addressing the cones

http://www.unenergy.org/index.php?p=1_180_CPV---Concentrated-PVhttp://www.atmos.ucla.edu/~fovell/AS3/theory_of_color.html

By exploiting this behaviour we can define the colour of light as

• RGB• Varying the levels of Red, Green and Blue can

make the eye ‘see’ every colour of the spectrum.

• The downside to this simplification is that our model of light looses the ability to separate during reflections/refractions.

• As a solution to this we can either use multiple lights, or use explicit functions to ‘create’ light separation

• For offline rendering you may even consider doing a BRDF Rendering using a more complex Lighting method

http://www.tufts.edu/as/tampl/projects/micro_rs/theory.html

Using Basic Lighting in OpenGL

http://www.cs.virginia.edu/~gfx/Courses/2002/RealTime.fall.02/Cg/CG%20Effects%20Explained/Cg%20Effects%20Explained.htm

Enabling Lighting

Enable Lighting in OpenGLglEnable(GL_LIGHTING)

Enable Each Individual LightglEnable(GL_LIGHTi)i <= GL_MAX_LIGHTS

All implementations support at least 8 lights

The 3 Functions to set you lights

• glLightfv(…)• glLightf(…)• glLightModelfv(…)

Specular Reflection

• Specular– The more specular a surface, the move light is

reflected very closely to the angle of reflection– A mirror is a near perfect Specular Surface

http://www.indigorenderer.com/joomla/forum/files/specular_material_test_01_168.jpg

Diffuse Reflection(Lambertian reflection)

http://torcode.com/http://www.glenspectra.co.uk/SiteResources/Data/Templates/1product.asp?DocID=389&v1ID=

Emissive

• It Glows!

http://www.gennetten-concreteartist.com/d-network.html

The End (for now)