저는 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 호출을 사용해야한다고 생각하지 않습니다.
예를 들어 Alex에게 감사드립니다. 이것과 GL_FALSE가 섞여서 모든 것이 예상대로 작동합니다! – Shootfast