protected override void DrawContent()
{
GI.MatrixMode(MatrixMode.Modelview);
GI.LoadIdentity();
/* draw sphere in first row, first column
* diffuse reflection only; no ambient or specular
*/
GI.PushMatrix();
GI.Translate (-3.75f, 3.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Shininess, no_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in first row, second column
// * diffuse and specular reflection; low shininess; no ambient
// */
GI.PushMatrix();
GI.Translate(-1.25f, 3.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, mat_specular);
GI.Material(GLFace.Front, MaterialParameter.Shininess, low_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in first row, third column
// * diffuse and specular reflection; high shininess; no ambient
// */
GI.PushMatrix();
GI.Translate(1.25f, 3.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, mat_specular);
GI.Material(GLFace.Front, MaterialParameter.Shininess, high_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in first row, fourth column
// * diffuse reflection; emission; no ambient or specular reflection
// */
GI.PushMatrix();
GI.Translate(3.75f, 3.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Shininess, no_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, mat_emission);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in second row, first column
// * ambient and diffuse reflection; no specular
// */
GI.PushMatrix();
GI.Translate(-3.75f, 0.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, mat_ambient);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Shininess, no_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in second row, second column
// * ambient, diffuse and specular reflection; low shininess
// */
GI.PushMatrix();
GI.Translate(-1.25f, 0.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, mat_ambient);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, mat_specular);
GI.Material(GLFace.Front, MaterialParameter.Shininess, low_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in second row, third column
// * ambient, diffuse and specular reflection; high shininess
// */
GI.PushMatrix();
GI.Translate(1.25f, 0.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, mat_ambient);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, mat_specular);
GI.Material(GLFace.Front, MaterialParameter.Shininess, high_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in second row, fourth column
// * ambient and diffuse reflection; emission; no specular
// */
GI.PushMatrix();
GI.Translate(3.75f, 0.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, mat_ambient);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Shininess, no_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, mat_emission);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in third row, first column
// * colored ambient and diffuse reflection; no specular
// */
GI.PushMatrix();
GI.Translate(-3.75f, -3.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, mat_ambient_color);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Shininess, no_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in third row, second column
// * colored ambient, diffuse and specular reflection; low shininess
// */
GI.PushMatrix();
GI.Translate(-1.25f, -3.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, mat_ambient_color);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, mat_specular);
GI.Material(GLFace.Front, MaterialParameter.Shininess, low_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in third row, third column
// * colored ambient, diffuse and specular reflection; high shininess
// */
GI.PushMatrix();
GI.Translate(1.25f, -3.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, mat_ambient_color);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, mat_specular);
GI.Material(GLFace.Front, MaterialParameter.Shininess, high_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, no_mat);
sphere.Render(GI);
GI.PopMatrix();
///* draw sphere in third row, fourth column
// * colored ambient and diffuse reflection; emission; no specular
// */
GI.PushMatrix();
GI.Translate(3.75f, -3.0f, 0.0f);
GI.Material(GLFace.Front, MaterialParameter.Ambient, mat_ambient_color);
GI.Material(GLFace.Front, MaterialParameter.Diffuse, mat_diffuse);
GI.Material(GLFace.Front, MaterialParameter.Specular, no_mat);
GI.Material(GLFace.Front, MaterialParameter.Shininess, no_shininess);
GI.Material(GLFace.Front, MaterialParameter.Emission, mat_emission);
sphere.Render(GI);
GI.PopMatrix();
GI.Flush();
}
}