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 lose depth perception when we do not use information about the normals to obtain a Lambert coefficient. Please notice that we are using a diffusive lighting model.
Usually constant coloring is indicated for objects that are going to become assets in a...