Projeção ortográfica com origem na tela inferior esquerda

Eu estou usando as ligações de OpenGL de python e tentando usar apenas chamadas opengl modernas. Eu tenho um VBO com verticies e estou tentando renderizar com uma matriz de projeção ortográfica passada para o shader de vértice.

Atualmente, estou calculando minha matriz de projeção com os seguintes valores:

from numpy import array

w = float(width)
h = float(height)
n = 0.5
f = 3.0

matrix = array([
                   [2/w,        0,        0,        0],
                   [  0,      2/h,        0,        0],
                   [  0,        0,  1/(f-n), -n/(f-n)],
                   [  0,        0,        0,        1],
               ], 'f')


#later
projectionUniform = glGetUniformLocation(shader, 'projectionMatrix')
glUniformMatrix4fv(projectionUniform, 1, GL_FALSE, matrix)

Esse código eu tenho daqui:

Fórmula para uma matriz de projeção ortogonal?

Isso parece funcionar bem, mas eu gostaria que minha origem estivesse no canto inferior esquerdo da tela. Esta é uma função que posso aplicar sobre a minha matriz para que tudo "simplesmente funcione", ou eu devo traduzir cada objeto manualmente por w / 2 h / 2?

Nota lateral: As coordenadas correspondem às posições dos pixels com isto funcionando corretamente?

Como estou usando técnicas modernas de OpenGL, não acho que deva usar chamadas gluOrtho2d ou GL_PROJECTION.

questionAnswers(3)

yourAnswerToTheQuestion