As noted for the cube material, whenever lighting is enabled, the geometry color must be given as a material. Also, the material color properties are given for calculating ambient, diffuse and specular reflections. For our teapot, we set yellow as the color for both ambient and diffuse reflection using the constant GL_AMBIENT_AND_DIFFUSE. We have also set white as the color for specular reflection. We use white since it does not change the "wave length" of the light that produces any specular hightlights.
Shininess is a parameter that is used in the computation of specular reflection. The range of values for the parameter is [0.0, 128.0]. Shininess controls the concentration (size) of the specular highlight. The size of the highlight decreases as the shininess value increases. For our example, the shininess value is initialize at zero and the user can change this value through keyboard input.