The focus of our example is transparency through what is called Blending. Thus, we need to enable it with the call
    glEnable(GL_BLEND);
Next, we first render the checker board on which the surface of revolution sits. We disable lighting for this phase of the rendering since we are using colors for the squares of the board versus materials.

We now use the OpenGL function glBlendFunc for setting the type of blending to be applied as the geometries within our scene are rendered. glBlendFunc reguires two int parameters which will be OpenGL constants. The first parameter sets a multiplier that is applied to the colors of the segment being rendered well the second parameter sets the multiplier for the portion of the frame buffer where the segment is being written. The computation that is performed in general is
   firstParameter * incoming pixel color
 + secondParameter * frame buffer pixel color
Since we want the checker board to be fully opaque, each of its color components must be multiplied by one while each of the corresponding frame pixels is multiplied by zero. We accomplish this with the following call made prior to calling our function that draws the board.
    glBlendFunc(GL_ONE, GL_ZERO);
When we render the surface of revolution, we want to use its alpha value for it color multiplier while using one minus this alpha value for the frame buffer multiplier. The call that accomplishes our goal is as follows:
  glBlendFunc(GL_SRC_ALPHA, 
              GL_ONE_MINUS_SRC_ALPHA);
Thus, when the alpha value for the surface of revolution is one (which is value for GL_SRC_ALPHA), the surface will be fully opaque while the board behind the surface will be fully transparent. Now, while the surface's alpha value diminishes to zero, the surface becomes more transparent and the board becomes more opaque.