Во-первых, вы должны понять, как
светлое положение трансформируется
OpenGL.
Положение света трансформируется
содержимое текущей вершины
Матричный стек ModelView, когда вы
указать светлое положение при вызове
до glLightfv( GL_LIGHTn, GL_POSITION, ... )
.
Если вы позже измените ModelView
матрица, например, когда вид меняется
для следующего кадра, светлое положение
не преобразовывается автоматически
новое содержимое ModelView
матрица. Если вы хотите обновить
положение света, вы должны снова
указать светлое положение при вызове
до glLightfv( GL_LIGHTn, GL_POSITION, ... )
.
...
- Как я могу сделать свое светлое положение фиксированным относительно моего глаза
позиция? Как мне сделать фару?
Вам нужно указать свой свет в глазу
координатное пространство. Для этого установите
Матрица ModelView для идентичности, то
укажите вашу светлую позицию. Сделать
фара (свет, который кажется
расположен в или около глаза и
светит по прямой видимости), установите
ModelView для идентичности, установите
светлое положение в (или около)
происхождения и установите направление на
отрицательная ось Z.
Когда положение источника света фиксировано.
по отношению к глазу, вам не нужно
заново определить светлое положение для каждого
Рамка. Как правило, вы указываете это один раз
когда ваша программа инициализируется.