Я пытаюсь использовать орфографическую проекцию для моего рендеринга графического интерфейса. Когда я рисую сетку, используя только мою регулярную матрицу преобразования, я получаю то, что ожидаю, но когда я использую свою орфографическую проекцию, я ничего не получаю. Моя перспективная проекция прекрасно работает. Моя орто-матрица:OpenGL: Орфографическая проекция
public Matrix4f initOrthographic(float left, float right, float bottom, float top, float near, float far)
{
m[0][0] = 2.0f/(right - left); m[0][1] = 0; m[0][2] = 0; m[0][3] = (left + right)/(left - right);
m[1][0] = 0; m[1][1] = 2.0f/(top - bottom); m[1][2] = 0; m[1][3] = (bottom + top)/(bottom - top);
m[2][0] = 0; m[2][1] = 0; m[2][2] = 2.0f/(near - far); m[2][3] = (far + near)/(far - near);
m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1;
return this;
}
Я не могу для жизни меня узнать, что не так. Я умножаю эту матрицу на регулярное преобразование, а затем умножая эту матрицу на положение вершин в шейдере. Есть идеи? При необходимости я могу отправить больше кода/информации.
Я думаю, что я только что нашел проблему. Я имел верх в 0 и снизу на 720, когда я переворачиваю эти значения до 720 верхних и 0 дна, это работает отлично. Единственное, что я хотел бы, чтобы верхний левый угол был (0, 0). Есть ли способ, которым я могу это сделать, или я придерживаюсь нижнего левого (0, 0)?
Похоже, что ваша матрица находится в строчном порядке, в то время как основные матрицы столбцов обычно используются для OpenGL. –
Все мои другие матрицы выполнены таким образом, и они работают нормально. извините, если я не понимаю полностью, я не знаю, что я делаю, когда дело доходит до матриц. – redonkulasman
Считаете ли вы, что вы проверяете настройки своего видового экрана? –