glMateri a 1fv(Gl_FRONT.GL_0IFFUSE.mat_diffuse);
glMateri alfv(GL_FR0NT.GL_SPECULAR.mat_specul ar):
glMaterialfv(GL_FRONT.GL_SHININESS.mat_shininess):

продолжением

Преобразования объектов

Листинг 5.6 (продолжение)

// set the light source properties // задаем свойства источника света

soaptoday.

GLfloat lightIntensity[] - {0.7f.0.7f.0.7f.l.0f}:
GLfloat light_position[] - {2.Of.6.Of.3.Of.0.Of}:
glLightfv(GL_LIGHTO. GL_P0SITI0N. light_position):

glLightfv(GL_LIGHTO. GL_DIFFUSE. lightlntensity): // set the camera // устанавливаем камеру

glMatrixMode(GL_PROJECTION):
glLoadldentityO;

double winHt -1.0: // half-height of the window // половина высоты окна

gl0rtho(-winHt*64/48.0. winHt*64/48.0. -winHt. winHt. 0.1. 100.0):
glMatrixMode(GL_MODELVIEW);
glLoadldentityO:

gluLookAt(2.3. 1.3. 2. 0. 0.25. 0. 0.0. 1.0. 0.0): // start drawing // начинаем рисовать

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT): // clear the screen // очищаем экран

glPushMatrixO:
glTranslated(0.4. 0.4. 0.6):
glRotated(45.0.0.1):
glScaled(0.08. 0.08. 0.08):

jackO; // draw the jack // рисуем переключатель

glPopMatrixO;
glPushMatrixO:
glTranslated(0.6. 0.38. 0.5):
glRotated(30.0.1.0):

glutSolidTeapot(0.08): // draw the teapot // рисуем чайник

glPopMatrixO:
glPushMatrixO:

glTranslated(0.25. 0.42. 0.35): // draw the sphere // рисуем сферу

glutSolidSphere(0.1. 15. 15):
glPopMatrixO:
glPushMatrixO:
glTranslated(0.4. 0. 0.4):

table(0.6. 0.02. 0.02. 0.3): // draw the table // рисуем стол

glPopMatrixO:

wall(0.02): // wall #l:in xz-plane // стена #1: в плоскости xz

glPushMatrixO;

5.6. Рисование трехмерных сцен с применением OpenGL

gjRotated(90.0. 0.0. 0.0. 1.0):

wall(0.02): // wall #2:in yz-plane // стена #2: в плоскости yz

glPopMatrixO;
glPushMatrixO;
glRotated(-90.0. 1.0. 0.0. 0.0):

wall (0.02): // wall #3:in xy-plane // стена #3: в плоскости xy

glPopMatrixO:
glFlushO;
}
//««««««««««« main »»»»»»»»»»»»»»»>

⇐ Предыдущая| |Следующая ⇒