Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Реализация тумана ...


Автор: sgi1981 25.1.2007, 13:30
Суть проблемы заключается в том, что нужно реализовать эффект тумана относительно камеры.
код
Код

glEnable(GL_FOG);
    glFogfv(GL_FOG_COLOR, fLowLight);
    glFogf(GL_FOG_START, 5);
    glFogf(GL_FOG_END, 90);
    glFogi(GL_FOG_MODE, GL_EXP);
    glFogf(GL_FOG_DENSITY, 0.2);
    glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH);


дает эффект тумана, но на перемещение камеры эффект не реагирует.
Так как будто это не туман, а поверхность примитивов изменяет цвет. Оно так и есть, что в действительности поверхности примитивов изменяют цвет, но этот цвет не зависит от положения камеры. Я думал вначале, что обойдусь этими строчками и эффект обеспечен относительно камеры, но теперь вижу, что что то еще нужно дополнительно задать. Похоже на то, что изменения цвета повехности примитивов происходит не относительно системы координат камеры, а относительно глобальной системы координат или системы координат наблюдения.

Автор: Dubinsky 26.4.2007, 16:32
чем крутишь камеру ?

Автор: sgi1981 26.4.2007, 18:20
Матрицу проектирования умножаю на матрицу поворота и обратно загружаю.

Автор: DENNN 26.4.2007, 21:50
посмотри на сайте NVIDIA заметки по программированию 3д сцен. В некоторых примерах они вводят у себя понятие Volumetric Fog. Возможно это то, что тебе нужно.

Автор: Dubinsky 27.4.2007, 10:51
хммм, странно, на самом деле у меня была точь в точь такая же беда, я избавился от неё только убрав из кода glLookAt() но наверняка, как я сейчас понимаю, дело было не в этом...

Добавлено через 1 минуту и 27 секунд
а когда именно ты забиваешь параметры тумана ? один раз на инициализации ?

Автор: sgi1981 28.4.2007, 22:21
Цитата

а когда именно ты забиваешь параметры тумана ? один раз на инициализации ? 

Я вот уже сам не помню. Но я еще вернусь к коду моей демо-программы и проведу эксперимент.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)