yani o
GLfloat custrom_projection[16] = {
...
};
glMatrixMode(GL_PROJECTION);
glLoadMatrix(custom_projection);
OpenGL dizinler, kolon büyük amacıyla matris elemanlarını kullanarak yük, her bir boyutta 1 arasında -1 haline gelen köşe eşlemek için arzu edilen projeksiyon matris Construct
Daha önce eğik/şövalye projeksiyon kullanılmaz ettik, ancak aşağıdaki size devam etmek için nasıl bir fikir vermelidir:
bir 4x4 makaslama matrisi oluşturma
X kesme olmak
θ, Φ Y kesme olmak ve Z, yalnız bırakılmıştır. senin ortografik projeksiyon tarafından,
| 2/(r-l), 0, 0, -(r+l)/(r-l) |
| 0, 2/(t-b), 0, -(t+b)/(t-b) |
| 0, 0, 2/(f-n), -(f+n)/(f-n) |
| 0, 0, 0, 1 |
(uzak yakın, sol, sağ, alt, üst, tarafından tarif ve) o
(ref: slide 11 of http://www.cs.unm.edu/~angel/CS433/LECTURES/CS433_17.pdf)
Çarp
(ref: http://en.wikipedia.org/wiki/Orthographic_projection_%28geometry%29)
OpenGL daha sonra fonksiyonuile (16 yüzen bir dizi olarak) doğrudan bu matris yüklemek için izin verir: görüntüleme ve dönüşümler OpenGL'de nasıl çalıştığını derinliği bakışta bir fazlası için
GLfloat proj[16] = { ... };
glMatrixMode(GL_PROJECTION); // Make sure we're modifying the *projection* matrix
glLoadMatrixf(proj); // Load the projection
, ben Chapter 3 of the OpenGL "Red Book" sevk ediyorum. Ortografik bir projeksiyon oluşturmak ve uygulamak için glOrtho() kullanıyorlar.
Düzenleme: datenwolf gibi
işaret, OpenGL'de matris elemanları sütun ana sırayla belirtilen akılda ayı.