Upload
kedma
View
39
Download
0
Embed Size (px)
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
Citation preview
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
Translucent Surfaces
http://www.trinity3d.com/product.php?productid=1572&cat=293&page=2http://www.nondot.org/sabre/Projects/Raytracer/
The End (for now)