Визуализация граней для усиления реалистичности

Создание источника света

OpenGL позволяет задать до восьми источников с именами GL_LIGHT0, GL_LIGHT1 и т. д. Каждый источник обладает различными свойствами и должен быть задействован (включен). У каждого его свойства имеется значение по умолчанию. Например, для создания источника, расположенного в точке (3, 6,5) в мировых координатах, следует выполнить следующий код1:

строительные материалы http://industry-portal24.ru/.

GLfloat myLightPosition[] - {3.0. 6.0. 5.0. 1.0}:
glLightfv(Gl_LIGHT0. GL_P0SITI0N. myüghtPosition) :
glEnable(GL_LIGHTING): ~
// enable

// включаем (свет)

glEnable(GL_LIGHT0):
// enable this particular source

// включаем этот конкретный источник Массив myLightPosition[] (имя можно использовать любое) определяет положение источника света и передается в функцию glLightfvO вместе с именем источника GL_LIGHT0, для того чтобы связать его с конкретным источником, обозначенным именем GL_LIGHT0.

Некоторые источники, такие как настольная лампа, находятся «внутри» сцены, в то время как другие, например солнце, бесконечно удалены от сцены. OpenGL позволяет создавать источники света обоих типов посредством задания положения источника в однородных координатах.

Тогда мы имеем

(x, у, z, 1): локальный источник света в положении (x, у, z)

и

(x, у, z, 0): вектор к бесконечно удаленному источнику света в направлении (x, у, z).

Локальный и бесконечно удаленный источники света

Рис. 8.19. Локальный и бесконечно удаленный источники света На рис. 8.19 показан локальный источник света в положении (0, 3, 3, 1) и удаленный источник, «расположенный» вдоль вектора (3, 3, 0, 0). Бесконечно удаленные источники света часто называют «направленными» (directional). Существуют определенные вычислительные преимущества в использовании направленных источников света, поскольку направление s при вычислении диффузного и зеркального отражений одинаково для всех вершин данной сцены. Однако направленные источники света не всегда являются наилучшим выбором"opengl1_537.html">⇐ Предыдущая| |Следующая ⇒