1

GL3.2の行列に少し問題があります。できればマトリックス表記で、モデルとビューマトリックスを生成するにはどうすればよいですか?モデル/ビューマトリックスを設定するにはどうすればよいですか?私はすでに射影行列を持っています。それは次のように定義されます:

float right = 800.0f, left = 0.0f;
float top = 0.0f, bottom = 600.0f;
float far = 1.0f, near = -1.0f;

float ortho_mat[16] = {(2.0f / (right - left)), 0.0f, 0.0f, 0.0f,
                     0.0f, (2.0f / (top - bottom)), 0.0f, 0.0f,
                     0.0f, 0.0f, (-2.0f / (far - near)), 0.0f,
                     (-((right + left) / (right - left))),
                     (-((top + bottom) / (top - bottom))),
                     (-((far + near) / (far - near))), 1.0f};

この正投影行列にはモデルとビューの行列を掛ける必要があり、それらには点を掛ける必要があることを理解しています。これらのマトリックスを設定するにはどうすればよいですか?

編集:それらが1つに連結されていてもかまいません(modelview)。

4

2 に答える 2

1

すべてを自分で実装するのではなく、ライブラリOpenGLMathematicsを使用することをお勧めします。OpenGL Mathematicsには、OpenGLに必要なすべての数学が含まれており、構文はGLSLから着想を得ています。ライブラリはここにあります:

http://glm.g-truc.net/

別の方法として、独自の数学ライブラリを実装することもできます。その場合は、Angels数学ライブラリをご覧になることをお勧めします(「インタラクティブコンピュータグラフィックス:シェーダーベースのOpenGLを使用したトップダウンアプローチ、6 / E」の本から)。このライブラリは非常に簡単に理解できます。

http://www.cs.unm.edu/~angel/BOOK/INTERACTIVE_COMPUTER_GRAPHICS/SIXTH_EDITION/CODE/include/

(mat.hとvec.hを見てください)

于 2012-10-04T19:08:30.730 に答える
0

モデル ビュー マトリックスを計算するだけの場合は、GLU での実装方法についてリファレンス ページを参照できます。(実際には OpenGL 3 で GLU ライブラリを使用することはできませんが、リファレンス ページには行列演算が内部でどのように実装されているかが示されています。)

「カメラ」の配置: http://www.opengl.org/sdk/docs/man/xhtml/gluLookAt.xml

翻訳を行う場合: http://www.opengl.org/sdk/docs/man/xhtml/glTranslate.xml

ローテーションを行う場合: http://www.opengl.org/sdk/docs/man/xhtml/glRotate.xml

于 2012-10-06T14:00:16.530 に答える