我使用Python OpenGL的绑定,并试图只用现代的OpenGL调用。 我有一个verticies VBO,我试图与传递到顶点着色器的三面投影矩阵来渲染。
目前我计算我用下列值投影矩阵:
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)
该代码我从这里得到:
式为一个正交投影矩阵?
这似乎很好地工作,但我想我的原产地是在屏幕的左下角。 这是我可以申请在我的矩阵,一切“只是工程”的功能,还是必须由我手动W / 2小时/ 2中的每个对象翻译?
边注:请问坐标匹配这个像素位置正常工作?
因为我使用OpenGL的现代技术,我不认为我应该使用gluOrtho2d或GL_PROJECTION电话。