void Cube(GLfloat sc)
{
sc = sc / 2;
glPushMatrix();
glScalef(sc, sc, sc);
glBegin(GL_QUADS);
// Front Face
glNormal3f(0, 0, 1); glVertex3f(-1.0f, -1.0f, 1.0f);
glNormal3f(0, 0, 1); glVertex3f( 1.0f, -1.0f, 1.0f);
glNormal3f(0, 0, 1); glVertex3f( 1.0f, 1.0f, 1.0f);
glNormal3f(0, 0, 1); glVertex3f(-1.0f, 1.0f, 1.0f);
// Back Face
glNormal3f(0, 0, -1); glVertex3f(-1.0f, -1.0f, -1.0f);
glNormal3f(0, 0, -1); glVertex3f(-1.0f, 1.0f, -1.0f);
glNormal3f(0, 0, -1); glVertex3f( 1.0f, 1.0f, -1.0f);
glNormal3f(0, 0, -1); glVertex3f( 1.0f, -1.0f, -1.0f);
// Top Face
glNormal3f(0, 1, 0); glVertex3f(-1.0f, 1.0f, -1.0f);
glNormal3f(0, 1, 0); glVertex3f(-1.0f, 1.0f, 1.0f);
glNormal3f(0, 1, 0); glVertex3f( 1.0f, 1.0f, 1.0f);
glNormal3f(0, 1, 0); glVertex3f( 1.0f, 1.0f, -1.0f);
// Bottom Face
glNormal3f(0, -1, 0); glVertex3f(-1.0f, -1.0f, -1.0f);
glNormal3f(0, -1, 0); glVertex3f( 1.0f, -1.0f, -1.0f);
glNormal3f(0, -1, 0); glVertex3f( 1.0f, -1.0f, 1.0f);
glNormal3f(0, -1, 0); glVertex3f(-1.0f, -1.0f, 1.0f);
// Right face
glNormal3f(1, 0, 0); glVertex3f( 1.0f, -1.0f, -1.0f);
glNormal3f(1, 0, 0); glVertex3f( 1.0f, 1.0f, -1.0f);
glNormal3f(1, 0, 0); glVertex3f( 1.0f, 1.0f, 1.0f);
glNormal3f(1, 0, 0); glVertex3f( 1.0f, -1.0f, 1.0f);
// Left Face
glNormal3f(-1, 0, 0); glVertex3f(-1.0f, -1.0f, -1.0f);
glNormal3f(-1, 0, 0); glVertex3f(-1.0f, -1.0f, 1.0f);
glNormal3f(-1, 0, 0); glVertex3f(-1.0f, 1.0f, 1.0f);
glNormal3f(-1, 0, 0); glVertex3f(-1.0f, 1.0f, -1.0f);
glEnd();
glPopMatrix();
}
Освещение
У меня проблема: крутится 4 шестеренки, их освещает источник. Так он таким образом освещает что ближние шестеренки полностью белые, а дальние того цвета, который излучают. Т.е. нету такого что грань, наклоненная под таким-то углом на экрне темнее чем та, которая перпендикулярно. В GLUT настройка автоматом шла, а на WinAPI автонастройки нет и я ничего не понимаю... Помогите, плиз...
Кубики делаю так:
Вышли исходники.