snow
snow
cpp
// OpenGL SuperBible
// Rotation amounts
////////////////////////////////////////////////////////////////////////////
GLfloat fAspect;
if(h == 0)
h = 1;
glViewport(0, 0, w, h);
fAspect = (GLfloat)w/(GLfloat)h;
// Reset coordinate system
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
// the scene.
void SetupRC()
// Enable lighting
glEnable(GL_LIGHTING);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,whiteLight);
glLightfv(GL_LIGHT0,GL_AMBIENT,sourceLight);
glLightfv(GL_LIGHT0,GL_DIFFUSE,sourceLight);
glLightfv(GL_LIGHT0,GL_POSITION,lightPos);
glEnable(GL_LIGHT0);
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
{
if(key == GLUT_KEY_UP)
xRot-= 5.0f;
if(key == GLUT_KEY_DOWN)
xRot += 5.0f;
if(key == GLUT_KEY_LEFT)
yRot -= 5.0f;
if(key == GLUT_KEY_RIGHT)
yRot += 5.0f;
glutPostRedisplay();
void RenderScene(void)
glPushMatrix();
// Draw something
pObj = gluNewQuadric();
gluQuadricNormals(pObj, GLU_SMOOTH);
// Main Body
glPushMatrix();
// Eyes
// Nose
glPopMatrix();
// Hat
glPushMatrix();
// Hat brim
glDisable(GL_CULL_FACE);
glEnable(GL_CULL_FACE);
glPopMatrix();
// Buffer swap
glutSwapBuffers();
glutInit(&argc, argv);
glutInitWindowSize(800, 600);
glutReshapeFunc(ChangeSize);
glutSpecialFunc(SpecialKeys);
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();
return 0;