Компьютерная графика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Компьютерная графика » Программирование графики и GPU » Пример из статей про модели освещения. Как правильно двигать камеру?


Пример из статей про модели освещения. Как правильно двигать камеру?

Сообщений 1 страница 4 из 4

1

Здравствуйте!
Пытаюсь приделать к коду, подобному примеру из статьи про модели освещения, WASD-управление, но выходит плохо.
Идея проста: ослеживаем состояние камеры, постоянно (то есть в Display() ) вызываем gluLookAt. И всё бы хорошо, но в шейдере что-то происходит с источником освещения: он находится не в том месте, где должен. Выглядит это примерно так.

Если источник света неподвижен, то становится особенно легко заметить, что шейдерное освещение зависит от положения камеры. Если из Display не вызывать gluLookAt, то освещение становися правильным (но откуда же его ещё вызывать для постоянного обновления камеры?).

Как это лечить? Дело в изменяемом пространстве наблюдателя? Заранее спасибо!

Отредактировано Gryphon (2011-06-15 12:04:01)

0

2

Во всех шейдерах из той статьи используются следующие переменные

uniform vec4 lightPos;
uniform vec4 eyePos;

Через них в шейдер передаются координаты источника света и координаты наблюдателя.
Вы их изменяете ?

0

3

Я сейчас делаю простейший пример диффузного освещения, в котором eyePos не используется, так что и передавать его ни к чему. В lightPos передаю положение источника света в мировых координатах.

0

4

О, я всё понял)
Нужно передавать координаты источника свеита в пространстве наблюдателя, тогда всё ОК)

0


Вы здесь » Компьютерная графика » Программирование графики и GPU » Пример из статей про модели освещения. Как правильно двигать камеру?


создать форум