C++opengl OpenGLにおけるマトリクス設定の初歩的な認識

1133 ワード

OpenGLにおけるマトリクス設定の初歩的な認識:入門レベルのコードでは、通常、初期化OpenGLでこのようなコードが見られる.
void init(){
	glMatrixMode(GL_PROJECTION);
	gluPerspective(50.0f,800.0f/600.0f,0.1f,1000.0f);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
}

ここはしばらく初歩的な認識だけをして、深く理解しません!
投影行列:1.人の目やカメラ:見えるものがカメラの上に投影されます(あるいは網膜の上で理解します)ものが見えます;2.投影:3 D空間の中のものを2 Dにして、スクリーンの上に表示します;3.視点の中で、実は近平面と遠平面があって、つまりOpenGLの中で、見ることができて、最近と最も遠い距離.視野の中で見たものはすべて近平面の中に投影します;4.現実の生活の中で見ます野はピラミッドのような形をしているが、コンピューターでは正方体(ただしOpenGLには特定のアルゴリズムがあり、表示時と現実の差は少なく、OpenGLではカメラ形式でプログラミングされている)
しばらくはこれらのコード(非権威)を理解することができます1.投影マトリクスの役割は、描いた物体を私たちの網膜の上に投影するためです;2.モデルビューマトリクスは物体を置くためです!!!
上のコードを説明します:1.glMatrixMode(GL_PROJECTION)は、現在のマトリクスを投影マトリクスとして設定します.2.gluPerspectiveは、前のステップで現在のマトリクスを投影マトリクスとして設定したため、gluPerspectiveは投影マトリクスに値を割り当てることに相当する.3.モデルビューポートマトリクスモデルビューポートマトリクスを設定する操作は、投影マトリクスを設定するのと同じ考え方です.glMatrixMode(GL_MODELIEW)は、現在の行列をモデルビューポートモーメントとして設定します.4.glLoadIdentityは現在の行列に値を割り当てます.前のステップで現在の行列をモデルビューポート行列に設定したので、glLoadIdentityはモデルビューポート行列に値を割り当てることに相当します.
OpenGLレンダリングRCを新規作成すると、内部のマトリクスが不明になるので設定します.モデルを描画する場合、投影マトリクスとモデルビューポートマトリクスは必ず演算に関与します.