【发布时间】:2012-11-04 20:13:38
【问题描述】:
我正在使用 python OpenGL 绑定,并尝试只使用现代 opengl 调用。我有一个带有顶点的 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)
我从这里得到的代码:
Formula for a orthogonal projection matrix?
这似乎工作正常,但我希望我的 Origin 位于屏幕的左下角。这是一个我可以在我的矩阵上应用的函数,所以一切都“正常工作”,还是我必须手动翻译每个对象 w/2 h/2?
旁注:坐标是否会与像素位置匹配并正常工作?
因为我使用的是现代 OpenGL 技术,所以我认为我不应该使用 gluOrtho2d 或 GL_PROJECTION 调用。
【问题讨论】:
标签: math opengl matrix orthographic projection-matrix