単純な三角形が 1 つあるシーンがあります。そして、透視投影を使用しています。次のように(GLMの助けを借りて)MVPマトリックスをセットアップしました:
glm::mat4 Projection = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 100.0f);
glm::mat4 View = glm::lookAt(
glm::vec3(0,0,5), // Camera is at (0,0,5), in World Space
glm::vec3(0,0,0), // and looks at the origin
glm::vec3(0,1,0) // Head is up (set to 0,-1,0 to look upside-down)
);
glm::mat4 Model = glm::mat4(1.0f);
glm::mat4 MVP = Projection * View * Model;
カメラの値を変更しても、三角形は適切に表示されます。
しかし、私は正投影を使いたいです。また、射影行列を正投影に変更すると、予期しない動作をしたり、三角形を表示できなかったり、画面の隅に小さな部分が 1 つだけ表示されたりします。正投影を使用するには、次のようにします。
glm::mat4 Projection = glm::ortho( 0.0f, 800.0f, 600.0f, 0.0f,-5.0f, 5.0f);
ビューとモデルのマトリックスでは何も変更しませんが。そして、私は正しく機能しません。
正しい方向へのプッシュが必要なだけです。何か間違ったことをしていますか? 正射投影を適切に設定するにはどうすればよいですか?
PS必要かどうかはわかりませんが、これらは三角形の座標です:
static const GLfloat g_triangle[] = {
-1.0f, 0.0f, 0.0f,
1.0f, 0.0f, 0.0f,
0.0f, 2.0f, 0.0f,
};