У меня есть сцена с одним простым треугольником. И я использую перспективную проекцию. Моя матрица MVP настроена (с помощью GLM) следующим образом:
glm::mat4 Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.0f);
glm::mat4 View = glm::lookAt(
glm::vec3(0,0,5), // Camera is at (0,0,5), in World Space
glm::vec3(0,0,0), // and looks at the origin
glm::vec3(0,1,0) // Head is up (set to 0,-1,0 to look upside-down)
);
glm::mat4 Model = glm::mat4(1.0f);
glm::mat4 MVP = Projection * View * Model;
И все это работает нормально, я могу изменить значения камеры, и треугольник по-прежнему отображается правильно.
Но я хочу использовать ортографическую проекцию. И когда я изменяю матрицу проекции на орфографическую, она работает непредсказуемо, я не могу отобразить треугольник или просто вижу небольшую его часть в углу экрана. Чтобы использовать ортографическую проекцию, я делаю это:
glm::mat4 Projection = glm::ortho( 0.0f, 800.0f, 600.0f, 0.0f,-5.0f, 5.0f);
пока я ничего не меняю в матрицах просмотра и модели. И я просто не работаю должным образом.
Мне просто нужен толчок в правильном направлении, я делаю что-то не так? Чего мне не хватает, что я должен сделать, чтобы правильно настроить ортографическую проекцию?
PS Я не знаю, нужно ли это, но это координаты треугольника:
static const GLfloat g_triangle[] = {
-1.0f, 0.0f, 0.0f,
1.0f, 0.0f, 0.0f,
0.0f, 2.0f, 0.0f,
};