|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Хм... в чем же тут проблема?
В OpenGL разбираюсь я довольно слабо, но на основе элементарной логики и интуиции с помощью чужого примера сделал себе нужную программу. Мне надо описать движение шарика по окружности в 3D. Вроде бы все и ничего, но есть одна проблема. С "удалением" и "приближением" шарика от камеры я не вижу явных изменений размера. Пытался менять различные параметры, но нужного результата не получил. Прикрепляю к этому сообщению исходник unit'а. Кто-нибудь может подсказать, что надо бы изменить в нем, чтобы с удалением и приближением реально менялся размер?
P.S. Если можно, еще один вопрос насчет освещения. Оно задается, насколько я понимаю, массивами по 4 элемента. Что это за 4 таких параметра? За что каждый из них отвечает и в каких пределах варьируется? Заранее спасибо. |
#2
|
||||
|
||||
1) Для того, чтобы видеть изменение размера сферы в зависимости от положения перед камерой, нужно задать перспективную (glFrustum) проекцию, а не ортогональную (glOrtho).
2) Позиция источника света задается вектором из четырех значений (x, y, z, w). Если последнее значение (w) равно 0, то соответствующий источник света является направленным, а значения (x, y, z) описывают направление. Если значение (w) не равно 0, то источник света является позиционным, и значения (x, y, z) задают положение источника света в однородных координатах объекта. |