![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
instant |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 7.11.2011 Пользователь №: 2984 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
День добрый.
Программа рисует несколько кубиков и позволяет крутить их вокруг оси. Так же имеется источник света. Проблема следующая: При развороте кубика у него продолжает подсвечиваться та же сторона что и была светлой, а не та которая непосредственно сейчас находится вблизи света.
|
|
|
![]() |
registr |
![]()
Сообщение
#2
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
Судя по коду ты двигаешь/вращаешь всю сцену вместе с источником света. Ты просто меняешь матрицу наблюдения для всей сцены, Поэтому освещение объектов не меняется. Попробуй использовать стеки матриц. В одном стеке вращай КоллЛист, а в другом источник -- света.
Это попробуй задать в инициализации, а не в рисовании
Странный код, впервый раз вижу, чтобы так вызывался дисплейный список
Цитата Странный код, впервый раз вижу, чтобы так вызывался дисплейный список Хотя может и ... . Сделай простую проверку со стеками матриц, например, куб нарисуй между засунуть и вытолкнуть из стека, а источник света нет.
|
|
|
instant |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 4 Регистрация: 7.11.2011 Пользователь №: 2984 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Ты просто меняешь матрицу наблюдения для всей сцены, Поэтому освещение объектов не меняется. поворот же происходит после прорисовки сцены? и на этот угол и происходит отклонение источника света. с эти все ок. Цитата Это попробуй задать в инициализации, а не в рисовании
пробовал . проблема не исчезла. Возможно я конечно путаю но glRotatef поворачивает не всю сцену а только то что рисуется после него. Выходит что я поворачиваю только источник света. а на камеру это никак не влияет. думаю с картинками станет понятнее проблема. источник света немного сзади от объектов и подсвечивает слабо справа. ![]() источник света перед объектами, все освещено: ![]() поворачиваем объект сцены, источник света как видно на изображении остается на месте, но повернутый объект затемнен(точнее он освещен с той стороны где у него написана "6"): ![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 13.7.2025, 19:08 |