私はOpenGLと行列操作で遊んでいましたが、P * V * Mという概念を理解していますが、なぜ「カメラ」のZ位置を変更してもズームの効果がないのは理解できません。OpenGL Orthographical Projection
パースペクティブプロジェクションを使用する場合、カメラのZを変更するとズームの効果があります(予想通りです)。
glm::mat4 Projection = glm::perspective(45.0f, 4.0f/3.0f, 0.1f, 100.0f);
glm::mat4 View = glm::lookAt(
glm::vec3(0,0,3), // changing 3 to 8 will zoom out
glm::vec3(0,0,0),
glm::vec3(0,1,0)
);
glm::mat4 Model = glm::mat4(1.0f);
gml::mat4 MVP = Projection * View * Model;
しかし、私がオルトプロジェクションを使用している場合、3から8などを変更するとズームアウトの効果はありません。私はそれらが非常に異なる予測であることを知っていますが、私は説明を探しています(それがうまくいかない理由の裏にある数学は特に役に立ちます)。
glm::mat4 Projection = glm::ortho(
0.0f,
128.0f,
0.0f,
72.0f,
0.0f,
100.0f
);
だから正投影をズームする方法は、単に 'GLM :: ortho'に渡された番号を変更しているのですか? – TomShar