Notes
Slide Show
Outline
1
CS425
  • OpenGL Materials
2
What Color Is It?
3
What Color Is It?
4
What Color Is It?
5
What Color Is It?
6
What Color Is It?
7
What Color Is It?
8
What Color Is It?
9
Material Response to Light
  • The material specified in OpenGL can have three different responses to the light hitting it plus one emissive characteristic.
  • You can separately specify the response to:
    • Ambient
    • Diffuse
    • Specular
  • And you can specify that the material “emits light”
10
glMaterial{if}v(face, pname, param)
  • face
    • GL_FRONT
    • GL_BACK
    • GL_FRONT_AND_BACK



11
glMaterial{if}v(face, pname, param)
  • pname
    • GL_AMBIENT (ambient color of material)
    • GL_DIFFUSE (diffuse color of material)
    • GL_AMBIENT_AND_DIFFUSE (both)
    • GL_SPECULAR (specular color of material)
    • GL_SHININESS (specular exponent)
    • GL_EMISSION (emissive color of material)
    • GL_COLOR_INDEXES (ambient, diffuse, and specular color indices)
12
glMaterial{if}v(face, pname, param )
  • param
    • The value for the pname’d material property
  • Example
    • GLfloat mat_amb_diff [ ] = {0.1, 0.5, 0.8, 1.0};
    • glMaterialfv( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, mat_amb_diff);

13
 
14
Nate Robbins Lightmaterial
15
Color Material Mode
  • I didn’t find this previously.
  • Causes the material property specified to track the value of the current color (glColor*)
  • glColorMaterial(face, mode)
  • “face” and “mode” are same as for glMaterial.
  • Must use glEnable (see example)
16
glColorMaterial example
17
colormat.c
18
Two Sided Materials
19
Additional Clipping Plane
20
Two Sided Materials
with Cutting Plane
21
OpenGL Attenuation
  • Same formula that Denbigh gave.


22
Function Calls
  • You use the glLightf function to select attenuation factors.  Default values are kc=1, kl=0, kq=0.
    • glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 2.0);
    • glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.0);
    • glLlightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.0);


23