私のブラウザは壊れていないことは確かですが、OpenGLのリファレンスドキュメントは、私が理解できなかった非常に奇妙で文書化されていないマトリックス表現を使用しています。
例:https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
説明
glFrustumは、透視投影を生成する透視行列を記述します。現在の行列(glMatrixModeを参照)にこの行列を掛けると、glMultMatrixが引数として次の行列で呼び出されたかのように、結果が現在の行列に置き換わります。
2 nearVal right - left 0 A 0 0 2 nearVal top - bottom B 0 0 0 C D 0 0 -1 0
A = right + left right - left
B = top + bottom top - bottom
C = - farVal + nearVal farVal - nearVal
D = - 2 farVal nearVal farVal - nearVal
だから私は彼らが言った「次のマトリックス」を理解することができません。線形配列のように見なければならない場合、16個の値すらありません。
これはさらに難しいです:https://www.opengl.org/sdk/docs/man2/xhtml/glMultMatrix.xml
例
現在の行列がCで、変換される座標がv =v0v1v2v3の場合、現在の変換はC×v、または
c 0 c 4 c 8 c 12 c 1 c 5 c 9 c 13 c 2 c 6 c 10 c 14 c 3 c 7 c 11 c 15 × v 0 v 1 v 2 v 3
Calling glMultMatrix with an argument of m = m 0 m 1 ... m 15 replaces the current transformation with C × M × v , or
c 0 c 4 c 8 c 12 c 1 c 5 c 9 c 13 c 2 c 6 c 10 c 14 c 3 c 7 c 11 c 15 × m 0 m 4 m 8 m 12 m 1 m 5 m 9 m 13 m 2 m 6 m 10 m 14 m 3 m 7 m 11 m 15 × v 0 v 1 v 2 v 3
Where v is represented as a 4 × 1 matrix.
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加