2016-12-07 22 views
-1

Недавно мне нужно использовать орфографическую проекцию, используя библиотеку glm. Но с орфографической проекцией моя сцена не отображается в центре моего окна просмотра.Настройка Орфографическая проекция правильно?

My Scene - просто куб, он хорошо визуализировался с использованием glm :: перспектива. Я не понимаю слишком много математического материала, я просто использую функцию glm :: ortho.

Так как мне нужно сделать, чтобы правильно настроить орфографическую проекцию?

Вот код, который я сделал:

mat4 projection=ortho(0.0f, 800.0f, 600.0f, 0.0f,-1000.0f, 1000.0f); 
mat4 view=lookAt(vec3(0,0,1),vec3(0,0,0),vec3(0,1,0)); 
mat4 model=mat4(); 

Тогда я послал эти три матрицы в шейдер, который такой же, как в перспективе проекции did.It должны быть четырехъядерный в центре моего экрана, но в моей программе он вращается в верхнем левом углу экрана, получается как четверть.

+0

Какие координаты у вашего куба? – BDL

ответ

1

Ваш куб появляется в верхнем левом углу экрана, потому что это начало координат (0,0,0) координатного пространства, указанного вашей орфографической проекцией.

С вашей предыдущей проекцией перспективы вы, вероятно, имели начало координат в центре экрана. Вы можете вернуться к этому, изменив значения в вашей орфографической проекции:

ortho(-(800.0f/2.0f), 800.0f/2.0f, 
     600.0f/2.0f, -(600.0f/2.0f), 
     -1000.0f, 1000.0f); 
+0

Я понял, вы совершенно правы. Функция glm :: ortho должна принимать параметры, используя: - (ширина экрана/2) как слева, а ширина экрана/2 - как правая, высота полуэкрана - снизу и - (screenheight/2) как верхняя. – Zain