Graphics Graphics Korea University kucg.korea.ac.kr 1 Lights & Material 고려대학교 컴퓨터 그래픽스 연구실
KUCG Graphics Korea University kucg.korea.ac.kr 2 Contents Phone reflection model Diffuse, specular, and ambient reflections OpenGL lighting Specifying a light source Point, distant, and spot lights Specifying a material Exercise
KUCG Graphics Korea University kucg.korea.ac.kr 3 DrawScene( ) – WireTeapot
KUCG Graphics Korea University kucg.korea.ac.kr 4 Wired Utah Teapot
KUCG Graphics Korea University kucg.korea.ac.kr 5 Phong Reflection Model Simple analytic model: Diffuse reflection + Specular reflection + Emission + “Ambient”
KUCG Graphics Korea University kucg.korea.ac.kr 6 Diffuse Reflection (1/3) Assume surface reflects equally in all directions Examples: chalk, clay
KUCG Graphics Korea University kucg.korea.ac.kr 7 Diffuse Reflection (2/3) How much light is reflected? Depends on angle of incident light dL dA cos
KUCG Graphics Korea University kucg.korea.ac.kr 8 Diffuse Reflection (3/3) Lambertian model Cosine law (dot product)
KUCG Graphics Korea University kucg.korea.ac.kr 9 Specular Reflection (1/3) Reflection is strongest near mirror angle Examples: mirrors, metals
KUCG Graphics Korea University kucg.korea.ac.kr 10 Specular Reflection (2/3) How much light is seen? Depends on angle of incident light and angle to viewer
KUCG Graphics Korea University kucg.korea.ac.kr 11 Specular Reflection (3/3) Phong model {cos( )} n
KUCG Graphics Korea University kucg.korea.ac.kr 12 Emission Represents light emitting directly from polygon Emission ≠ 0
KUCG Graphics Korea University kucg.korea.ac.kr 13 Ambient Term Represents reflection of all indirect illumination This is a total hack (avoids complexity of global illumination)!
KUCG Graphics Korea University kucg.korea.ac.kr 14 OpenGL Lighting Must enable “lighting calculation” and each “light source” All colors will be assigned based on light sources and material properties not by glColor*( ) glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);
KUCG Graphics Korea University kucg.korea.ac.kr 15 DrawScene( ) – SolidTeapot
KUCG Graphics Korea University kucg.korea.ac.kr 16 Solid Utah Teapot
KUCG Graphics Korea University kucg.korea.ac.kr 17 Enable Lighting (1/3)
KUCG Graphics Korea University kucg.korea.ac.kr 18 Enable Lighting (2/3)
KUCG Graphics Korea University kucg.korea.ac.kr 19 Specifying a Light Source (1/2) Defaults for “glEnable(GL_LIGHT0)” No ambient light Diffuse and specular component – white (1.0, 1.0, 1.0, 1.0) Cf) Other lights – black (0.0, 0.0, 0.0, 1.0) Position – (0.0, 0.0, 1.0, 0.0) distant light
KUCG Graphics Korea University kucg.korea.ac.kr 20 Specifying a Light Source (2/2) Create a light source light GL_LIGHT0, GL_LIGHT1, … param GL_POSITION, GL_DIFFUSE, GL_SPECLAR, GL_AMBIENT glLight{if}(GLenum light, GLenum param, TYPE value); glLight{if}v(GLenum light, GLenum param, TYPE *value); glLight{if}(GLenum light, GLenum param, TYPE value); glLight{if}v(GLenum light, GLenum param, TYPE *value);
KUCG Graphics Korea University kucg.korea.ac.kr 21 Light Sources Distant light GL_POSITION, GL_DIFFUSE, GL_SPECULAR, GL_AMBIENT Point light GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION Spot light GL_SPOT_DIRECTION, GL_SPOT_CUTOFF, GL_SPOT_EXPONENT
KUCG Graphics Korea University kucg.korea.ac.kr 22 Point Light Source (1/2)
KUCG Graphics Korea University kucg.korea.ac.kr 23 Point Light Source (2/2)
KUCG Graphics Korea University kucg.korea.ac.kr 24 Control of Light Position (1/4)
KUCG Graphics Korea University kucg.korea.ac.kr 25 Control of Light Position (2/4)
KUCG Graphics Korea University kucg.korea.ac.kr 26 Control of Light Position (3/4)
KUCG Graphics Korea University kucg.korea.ac.kr 27 Control of Light Position (4/4)
KUCG Graphics Korea University kucg.korea.ac.kr 28 Specifying All Terms (1/2)
KUCG Graphics Korea University kucg.korea.ac.kr 29 Specifying All Terms (2/2)
KUCG Graphics Korea University kucg.korea.ac.kr 30 Point Light – Attenuation (1/2)
KUCG Graphics Korea University kucg.korea.ac.kr 31 Point Light – Attenuation (2/2)
KUCG Graphics Korea University kucg.korea.ac.kr 32 Spot Light (1/4)
KUCG Graphics Korea University kucg.korea.ac.kr 33 Spot Light (2/4)
KUCG Graphics Korea University kucg.korea.ac.kr 34 Spot Light (3/4)
KUCG Graphics Korea University kucg.korea.ac.kr 35 Spot Light (4/4)
KUCG Graphics Korea University kucg.korea.ac.kr 36 Multiple Lights (1/2)
KUCG Graphics Korea University kucg.korea.ac.kr 37 Multiple Lights (2/2)
KUCG Graphics Korea University kucg.korea.ac.kr 38 Specifying a Material (1/5) Reflectivity properties of a material face GL_FRONT, GL_BACK, GL_FRONT_AND_BACK name GL_DIFFUSE, GL_SPECLAR, GL_AMBIENT, GL_AMBIENT_AND_DIFFUSE, GL_EMISSION, GL_SHININESS glMaterial{if}(GLenum face, GLenum name, TYPE value); glMaterial{if}v(GLenum face, GLenum name, TYPE *value); glMaterial{if}(GLenum face, GLenum name, TYPE value); glMaterial{if}v(GLenum face, GLenum name, TYPE *value);
KUCG Graphics Korea University kucg.korea.ac.kr 39 Specifying a Material (2/5)
KUCG Graphics Korea University kucg.korea.ac.kr 40 Specifying a Material (3/5)
KUCG Graphics Korea University kucg.korea.ac.kr 41 Specifying a Material (4/5)
KUCG Graphics Korea University kucg.korea.ac.kr 42 Specifying a Material (5/5)
KUCG Graphics Korea University kucg.korea.ac.kr 43 White Shiny Material (1/2)
KUCG Graphics Korea University kucg.korea.ac.kr 44 White Shiny Material (2/2)
KUCG Graphics Korea University kucg.korea.ac.kr 45 Brass Material (1/2)
KUCG Graphics Korea University kucg.korea.ac.kr 46 Brass Material (2/2)
KUCG Graphics Korea University kucg.korea.ac.kr 47 Red Plastic Material (1/2)
KUCG Graphics Korea University kucg.korea.ac.kr 48 Red Plastic Material (2/2)
KUCG Graphics Korea University kucg.korea.ac.kr 49 Multiple Objects (1/2)
KUCG Graphics Korea University kucg.korea.ac.kr 50 Multiple Objects (2/2)
KUCG Graphics Korea University kucg.korea.ac.kr 51 Exercise Create yours!! color plate 25