pix[l].setTexture(2002): // create texture // создаем текстуру
.. .similarly for other four textures … II аналогично для остальных четырех структур
glViewportCO. 0. 640. 480); // set up the viewing system
продолжение-^
Визуализация граней для усиления реалистичности
Листинг 8.2 (продолжение)
// устанавливаем систему просмотра glMatrixMode(GL_PROJECTION): glLoadldentityO:
gluPerspective(60.0. 640.0/ 480. 1.0. 30.0): // set camera shape // задаем форму камеры
glMatrixMode(GL_MODELVIEW):
glLoadldentityO:
glTranslated(0.0. 0.0. -4): // move camera back // двигаем камеру назад }
//«««««««««««««< display »»»»»»»»»»»
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT): glTexEnvf(GL_TEXTURE_ENV. GL_TEXTURE_ENV_MODE. GL_DECAL): glPushMatrixO;
glRotated(xAngle. 1.0.0.0.0.0): glRotated(yAngle. 0.0.1.0.0.0): // rotate // поворачиваем
glBindTexture(GL_TEXTURE_2D.2001): // top face: 'fake' checkerboard // верхняя грань: «фальшивая» шахматная доска glBegin(GL_QUADS):
glTexCoord2f(-1.0. -1.0): glVertex3f(-1.0f. l.Of. -l.Of): glTexCoord2f(-1.0. 2.0): glVertex3f(-1.0f. l.Of, l.Of): glTexCoord2f(2.0, 2.0): glVertex3f( l.Of. l.Of. l.Of): glTexCoord2f(2.0, -1.0): glVertex3f( l.Of. l.Of. -l.Of): glEndO:
glBindTexture(GL_TEXTURE_2D.2002): // right face: mandrill // правая грань: мандрил (обезьяна)
glBegin(GL_QUADS):
glTexCoord2f(0.0, 0.0): glVertex3f(1.0f. -l.Of. l.Of); glTexCoord2f(0.0, 2.0); glVertex3f(1.0f. -l.Of. -l.Of): glTexCoord2f(2.0. 2.0): glVertex3f(1.0f, l.Of. -l.Of); glTexCoord2f(2.0. 0.0): glVertex3f(1.0f. l.Of. l.Of): glEndO:
… similarly for other four faces … // аналогично для остальных четырех граней glFlushO; glPopMatrixQ: gl utSwapBuffersO:
}
/ /«««««««««««««««« spi nner »»»»>»»»»»»