g1Lightfv(GL_LIGHTO. GL_POSITIDN. position):
glPopMatrixO:

gluLookAt(…): // set the camera position // задаем положение камеры

draw the object // рисуем объект

glutSwapBuffersO :
}

С другой стороны, для того чтобы источник света перемещался вместе с камерой, необходимо использовать следующий код:

GLfloat pos[] - {0. 0. 0. 1}: glMatrixMode(GL_MODELVIEW): glLoadldentityO:

g 1L i ght fv(GL_LIGHTO. GL_P0SITI0N. position): // light at (0. 0. 0) // источник света в положении (0. 0. 0) gluLookAtC…):

// move the light and the camera // перемещаем источник света и камеру draw the object // рисуем объект

Этот код устанавливает источник света прямо в глаз (подобно шахтерской лампе), и тогда свет перемещается вместе с камерой.

8.2. Введение в модели закрашивания

8.2.9. Работа со свойствами материалов в OpenGL

Влияние источника света можно увидеть только при отражении света от поверхности объекта. В OpenGL предусмотрены возможности задания различных коэффициентов отражения, фигурирующих в равенстве (8.7). Эти коэффициенты устанавливаются с помощью различных версий функции glMaterial, причем коэффициенты можно установить отдельно для лицевых и нелицевых граней. (Вспомним обсуждение рис. 8.21.) Например, следующий код

GLfloat myDiffuse[] = {0.8. 0.2. 0.0. 1.0}: glMateria1fv(GL_FR0NT. GL_DIFFUSE, myDiffuse):

присваивает коэффициенту диффузного отражения (pdr, pdg, pdb) значение (0,8, 0,2, 0,0) для всех последовательно заданных лицевых граней. Коэффициенты отражения задаются в формате RBGA в виде четверки, аналогично заданию цвета. Первый параметр функции glMaterialfvO может принимать следующие значения: О GL_FR0NT: задается коэффициент отражения для лицевых граней.

О GLJ3ACK: задается коэффициент отражения для нелицевых граней.

О GL_FR0NT_AND_BACK: задается коэффициент отражения и для лицевых, и для нелицевых граней. Второй параметр может принимать следующие значения: О GL_AMBIENT: задаются коэффициенты фонового отражения. О GL_DIFFUSE: задаются коэффициенты диффузного отражения. О GL_SPECULAR: задаются коэффициенты зеркального отражения.


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