![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
instant |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 7.11.2011 Пользователь №: 2984 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
День добрый.
Программа рисует несколько кубиков и позволяет крутить их вокруг оси. Так же имеется источник света. Проблема следующая: При развороте кубика у него продолжает подсвечиваться та же сторона что и была светлой, а не та которая непосредственно сейчас находится вблизи света.
|
|
|
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
по-моему, у тебя просто все glCallList вызываются ДО задания источников освещения. и весь цикл прорисовки разрывается после поворота кубиков, но до перерисовки света. попробуй перенести установку света в начало прорисовки. хотя я могу ошибаться, я слишком давно не работала с OpenGL.
|
|
|
instant |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 7.11.2011 Пользователь №: 2984 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
изменил . проверил. никаких изменений
![]() |
|
|
ssoft |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Проблема следующая: При развороте кубика у него продолжает подсвечиваться та же сторона что и была светлой, а не та которая непосредственно сейчас находится вблизи света. В коде заданы трансформации для всей сцены (вместе с источником освещения). Чтобы источник не перемещался достаточно вызвать
перед установкой света. |
|
|
instant |
![]()
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 7.11.2011 Пользователь №: 2984 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Проблема следующая: При развороте кубика у него продолжает подсвечиваться та же сторона что и была светлой, а не та которая непосредственно сейчас находится вблизи света. В коде заданы трансформации для всей сцены (вместе с источником освещения). Чтобы источник не перемещался достаточно вызвать
перед установкой света. гмм. мне как раз и нужно чтобы источник двигался. он двигается нормальною также он двигается после отрисовки всех объектов(до после не важно . результат тот же). но когда я разворачиваю один из объектов на сцене он поворачивается той стороной что была в тени и она не становиться светлее хотя теперь находится на свету. |
|
|
registr |
![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
Судя по коду ты двигаешь/вращаешь всю сцену вместе с источником света. Ты просто меняешь матрицу наблюдения для всей сцены, Поэтому освещение объектов не меняется. Попробуй использовать стеки матриц. В одном стеке вращай КоллЛист, а в другом источник -- света.
Это попробуй задать в инициализации, а не в рисовании
Странный код, впервый раз вижу, чтобы так вызывался дисплейный список
Цитата Странный код, впервый раз вижу, чтобы так вызывался дисплейный список Хотя может и ... . Сделай простую проверку со стеками матриц, например, куб нарисуй между засунуть и вытолкнуть из стека, а источник света нет.
|
|
|
instant |
![]()
Сообщение
#7
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 7.11.2011 Пользователь №: 2984 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Ты просто меняешь матрицу наблюдения для всей сцены, Поэтому освещение объектов не меняется. поворот же происходит после прорисовки сцены? и на этот угол и происходит отклонение источника света. с эти все ок. Цитата Это попробуй задать в инициализации, а не в рисовании
пробовал . проблема не исчезла. Возможно я конечно путаю но glRotatef поворачивает не всю сцену а только то что рисуется после него. Выходит что я поворачиваю только источник света. а на камеру это никак не влияет. думаю с картинками станет понятнее проблема. источник света немного сзади от объектов и подсвечивает слабо справа. ![]() источник света перед объектами, все освещено: ![]() поворачиваем объект сцены, источник света как видно на изображении остается на месте, но повернутый объект затемнен(точнее он освещен с той стороны где у него написана "6"): ![]() |
|
|
registr |
![]()
Сообщение
#8
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
Я с освещением подробно не работал. Спроси здесь http://www.gamedev.ru/code/forum/?graphics, там много спецов по подобным вопросам
![]() Сообщение отредактировал registr - 8.11.2011, 14:25 |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 17.2.2025, 6:58 |