Здравствуйте!
Пытаюсь приделать к коду, подобному примеру из статьи про модели освещения, WASD-управление, но выходит плохо.
Идея проста: ослеживаем состояние камеры, постоянно (то есть в Display() ) вызываем gluLookAt. И всё бы хорошо, но в шейдере что-то происходит с источником освещения: он находится не в том месте, где должен. Выглядит это примерно так.
Если источник света неподвижен, то становится особенно легко заметить, что шейдерное освещение зависит от положения камеры. Если из Display не вызывать gluLookAt, то освещение становися правильным (но откуда же его ещё вызывать для постоянного обновления камеры?).
Как это лечить? Дело в изменяемом пространстве наблюдателя? Заранее спасибо!
Отредактировано Gryphon (2011-06-15 12:04:01)