![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Регистрация: 15.06.2008
Сообщений: 8
|
![]()
Народ, в общем трабл такой. Пишу прожку для моделирования 3D систем, все пашет нормально, кроме освещения.
Оно ведет себя жутко странно, вроде бы я его включаю до всех преобразований матриц, а в итоге оно отображаеться для всех объектов с разными векторами направления. Причем даже не с соответствующим вектором в системе координат самого объекта, а с каким-то неясно-непонятным вектором. Вот ссыль на бинарник и модель: http://slil.ru/27717863 Запускаем прогу, тусим в "Визуализацию моделей", там правый клик на окошке с надписью "Новая модель" и выбираем "Открыть модель", выбираем файлик, тот что в архиве с прогой, и смело жмем "Начать визуализацию". Чтобы было проще увидеть в чем трабл, можно поставить скорость где-то на 0,1. Ориентация в пространстве просто мышкой. Вот листинг отрисовки, подскажите что тут не так. Вроде ж свет в глобальной системе координат врубаеться, почему он так криво отрабатывает? Код:
|
![]() |
![]() |
![]() |
#2 |
Регистрация: 15.06.2008
Сообщений: 8
|
![]() Код:
Последний раз редактировалось MoDErahN; 02.06.2009 в 19:59. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Попробуйте задавать свет между glMatrixMode(GL_MODELVIEW) и GlobalPoint(TreeRoot). И что-то у вас многовато преобразований с матрицами... У меня работает такая структура:
Код:
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 15.06.2008
Сообщений: 8
|
![]()
Спасибо, упростил процедуру отрисовки. Теперь минимум манипуляций с матрицами (код в первом посте обновлен), но проблема осталась та же. Оно всеравно поворачивает источник света вместе с объектом, даже не вместе, а с удвоенным углом, т.е. если объект делает оборот вокруг своей оси (т.е. система координат в которой он рисуется делает 1 оборот относительно глобальной системы отсчета) источник света делает два оборота относительно глобальной системы отсчета.
Вот вращение сферы, вид сверху. ![]() Есть идеи? |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
![]()
Что-то так сразу не соображу... Попробуйте вместо GlobalDraw просто отрисовать какую-ньть сферу или другой квад и поворачивать так же, просто чтобы понять ошибка в WMPaint или в самой отрисовке 3d. Напишите что выйдет. и ещё, чисто ля эксперимента попробуйте переместить задание света до gluLookAt
Изобретатель велосипедов
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 15.06.2008
Сообщений: 8
|
![]()
Вот код, делаеться один поворот, и просто выводится сфера. Источник света все так же летает с удвоенной скоростью вращения.
Код:
Код:
glRotatef(-ang, 0, 1, 0); но вот почему помогло glRotatef(ang, 0, 1, 0); я вообще не понимаю Последний раз редактировалось MoDErahN; 02.06.2009 в 21:58. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Про позиционирование | Risk07 | HTML и CSS | 6 | 18.05.2009 12:58 |
Позиционирование каретки | Spice | Win Api | 1 | 25.03.2009 04:51 |
Глобальное использование переменных | DISAITE | Помощь студентам | 1 | 16.03.2009 16:21 |
Позиционирование элемента | vlad2423 | HTML и CSS | 7 | 09.03.2009 20:28 |
Разметка страницы (позиционирование элементов) | wall66 | PHP | 1 | 11.10.2008 18:19 |