Saya menggunakan pengikatan python OpenGL, dan mencoba hanya menggunakan panggilan opengl modern. Saya memiliki VBO dengan simpul, dan saya mencoba merender dengan matriks proyeksi ortografis yang diteruskan ke vertex shader.
Saat ini saya sedang menghitung matriks proyeksi saya dengan nilai berikut:
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)
Kode itu saya dapatkan dari sini:
Rumus matriks proyeksi ortogonal?
Ini sepertinya berfungsi dengan baik, tapi saya ingin Asal saya ada di sudut kiri bawah layar. Apakah ini fungsi yang dapat saya terapkan pada matriks saya sehingga semuanya "berfungsi", atau haruskah saya menerjemahkan setiap objek dengan w/2 h/2 secara manual?
catatan tambahan: Akankah koordinatnya cocok dengan posisi piksel dan ini berfungsi dengan benar?
Karena saya menggunakan teknik OpenGL modern, menurut saya saya tidak seharusnya menggunakan panggilan gluOrtho2d atau GL_PROJECTION.