The final color of pixel is assigned in the fragment shader by setting the ESSL special variable
gl_FragColor. If all the fragments in the object have the same color we can say that the object has a constant color. Otherwise, the object has a per-vertex color.
To obtain a constant color we store the desired color in a uniform that is passed to the fragment shader. This uniform is usually called the object's diffuse material property. We can also combine object normals and light source information to obtain a Lambert coefficient. We can use the Lambert coefficient to proportionally change the reflecting color depending on the angle on which the light hits the object.
As shown in the following diagram, we ...