Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование игр, графики и искусственного интеллекта > Координата z в OpenGL


Автор: Чупакабро 25.4.2009, 10:43
Насколько я понимаю, в OpenGL, в отличие от Direct3d, ось z направлена "из монитора"  на наблюдателя (а в DX от наблюдателя вглубь экрана). Это по умолчанию
Первый вопрос: я прав насчет расположения осей?
Второй вопрос: камера в OpenGL по умолчанию находится на положительной полуоси?
Координаты z объектов сцены в OpenGL меньше координаты z камеры?

PS оговорился я в названии темы: не в какой полуплоскости, а в каком полупространстве.

В общем если переформулировать: глаз наблюдателя и объекты сцены (видимые) находятся по одну сторону плоскости проецирования или по разные?

Автор: kemiisto 25.4.2009, 12:47
Цитата(Чупакабро @  25.4.2009,  08:43 Найти цитируемый пост)
Первый вопрос: я прав насчет расположения осей?

Да.

Цитата(Чупакабро @  25.4.2009,  08:43 Найти цитируемый пост)
Второй вопрос: камера в OpenGL по умолчанию находится на положительной полуоси?

Встречный вопрос: какая-такая камера?

Автор: Чупакабро 25.4.2009, 12:53
Цитата(kemiisto @  25.4.2009,  12:47 Найти цитируемый пост)
Встречный вопрос: какая-такая камера?

Воображаемая точка, относительно которой строится проекция сцены на экран. Ну или, если угодно, глаз юзера где находится?

Автор: kemiisto 25.4.2009, 12:58
Цитата(Чупакабро @  25.4.2009,  10:53 Найти цитируемый пост)
Воображаемая точка, относительно которой строится проекция сцены на экран. Ну или, если угодно, глаз юзера где находится?

Я так полагаю, в начале координат.

Автор: Чупакабро 25.4.2009, 13:07
Ладно, зайдем с другого бока)))
Видимые объекты имеют положительную или отрицательную z-координату?
Я вот так думаю, что отрицательную

Автор: kemiisto 25.4.2009, 13:28
Чупакабро, если ничего не менять после инициализации OpenGL всякими там gluLookAt, то да. Надо перейти glTranslate'ом в отрицательную область по z и там уже рисовать.
http://pmg.org.ru/nehe/nehe02.htm
Цитата
Центр OpenGL экрана находится в точке 0, 0, 0. Координаты, расположенные слева, снизу и вглубь от него, имеют отрицательное значение, расположенные справа, сверху и по направлению к наблюдателю – положительное. 

И далее простенький пример.

Автор: Чупакабро 25.4.2009, 13:30
Спасибо!

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