glm::rotate
シーン内の立方体の変換行列を回転させるために使用しています。
"cube->t = glm::rotate(cube->t, stepTime * 50.f, glm::vec3(0.f, 1.f, 0.f));"
フレームごとに1回呼び出されます。ここcube->t
で、は問題のマトリックスです。
奇妙なことに、20分(またはのstepTime * 5000.f
代わりに回転する場合は2分stepTime * 50.f
)の間に、立方体はX軸とZ軸で顕著にスケーリングし、これら2つの軸のスケーリングは常に同じです(高さ)立方体のは変化しませんが、幅と深さはまったく同じ量だけ変化します)。の場合は5000.f
小さくなり、ノーマル50.f
またはの場合100.f
は大きくなります。
これは丸め誤差の問題かもしれないと思いましたが、それ以外は何が原因であるのかわかりません。この丸め誤差ですか?定期的に行列を正規化して解決できますか?glmには行列を正規化する関数がありますか、それとも自分で作成する必要がありますか?