0
を反映している私は、画面上の2つのキューブを描いていたと私は透視行列に角度を変えたときに、私のオブジェクトは本当に奇妙な振る舞い、ここに私のコード:: GLMの角度を変更する視点は、オブジェクト
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(programID);
GLuint mvp = glGetUniformLocation(programID, "MVP");
glm::mat4 Projection = glm::perspective(45.0f, 4.0f/3.0f, 0.1f, 10.0f);
glm::mat4 translate = glm::translate(glm::mat4(1.0f), vec3(-2.0f, 0.0f, -5.0f));
glm::mat4 rotate = glm::rotate(glm::mat4(1.0f), 54.0f, vec3(-1.0f, 0.0f, 0.0f));
glm::mat4 MVP = Projection * translate * rotate;
glUniformMatrix4fv(mvp, 1, GL_FALSE, &MVP[0][0]);
glDrawElements(GL_TRIANGLES, numOfIndices, GL_UNSIGNED_SHORT, nullptr);
translate = glm::translate(glm::mat4(1.0f), vec3(3.0f, 0.0f, -6.0f));
rotate = glm::rotate(glm::mat4(1.0f), 54.0f, vec3(0.0f, 1.0f, 0.0f));
MVP = Projection * translate * rotate;
glUniformMatrix4fv(mvp, 1, GL_FALSE, &MVP[0][0]);
glDrawElements(GL_TRIANGLES, numOfIndices, GL_UNSIGNED_SHORT, nullptr);
があることに気づきました
2つのキューブは同じ投影行列を共有しますが、平行移動と回転行列が異なります。ここに私のシェーダがあります
シェーダは、位置頂点によってMVPマトリックスをちょうど倍します。私は透視行列の学位のために45.0fでコードを実行したとき、私はこれだ:
、その後、私は私が得た55.0fでそれを実行したときに、この:私はオブジェクトの後ろに得たよう
に思えますそこからそれらを見て、50.0fを終えるとそれは閉じて、私は立方体の1つのコーナーしか見ることができません。
::ラジアン(45.0f) '... – derhass
ありがとうございました。 – demalegabi