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. Преобразования объектов Листинг 5.6 (продолжение)

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

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 »»»»»»»»»»»»»»»>


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