我使用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)
該代碼我從這裏得到:
Formula for a orthogonal projection matrix?
這似乎很好地工作,但我想我的原點位於屏幕的左下角。這是一個函數,我可以在我的矩陣上應用,所以一切都「正常」,或者我必須手動翻譯每個對象的w/2 h/2嗎?
備註:座標是否與像素位置匹配,並且此功能正常工作?
因爲我使用現代OpenGL技術,我不認爲我應該使用gluOrtho2d或GL_PROJECTION調用。
非常感謝你的例子Alex。通過結合這一點,和我混合了GL_FALSE,一切都按預期工作! – Shootfast