2017-07-29 10 views
0

を回転させた場合のオブジェクトは、私は、3Dゲームエンジンに取り組んできたと私はオブジェクトを振とう問題が発生した揺れていますオブジェクトが揺れ始めます。 さらに、ある軌道(それは宇宙シミュレータのプロトタイプ)の後に、私がゲームを始めたときほどの揺れがないことに気付きました。私は、揺れがそれほど悪くないときに、カメラ座標がほぼゼロであると仮定します。OpengGL:カメラを回転させた場合(翻訳されていません)</p> <p><a href="https://i.stack.imgur.com/jKNN2.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/jKNN2.gif" alt="img"></a></p> <p>:カメラが

カメラはオブジェクトにバインドされているので、カメラが揺れているため、揺れているオブジェクトの物理座標から揺れが発生する可能性は低いはずです。私はそれは私が方法がわからないようなものがあるがあれば、浮動小数点精度に問題がある可能性がありと信じ

cameraAndProjectionMatrixSmallObjects = 
glm::perspective(glm::radians(70.f), 1.9f, 0.001f, 100.0f);* 
glm::lookAt(worldPosition, heading + worldPosition, up); 

は、私はこのようなビューと射影行列を計算しますそれを解決する。

+0

あなたのアップベクトルは視線(「見出し」)に垂直であるか、または視線とほぼ同じ方向に(カメラが動揺しているとき)ほぼ間違って設定されていますか? – Rabbid76

+0

見出しが正常であれば、見出しが回転していれば、同じ行列で上に回転します。 –

+0

@DariusDuesentriebここをクリックしてください:[サイズと質量の点で現実的なn体ソーラーシステムシミュレーションを行うことは可能ですか?](https://stackoverflow.com/a/28020934/2521214) (OpenGL **に渡す前に、メッシュを変換すると(0.0.0)がカメラの位置になるように)多くの助けになる相対座標を使用してください。 – Spektre

答えて

1

あなたのオブジェクトは世界起源から離れすぎています。 GPUは限られた精度の浮動小数点数で動作し、大きな数値を使用するとオブジェクトが揺れ始めます。 1000倍のすべてをスケールダウンしてみてください。この問題の詳細な説明はhereです。

+0

私はそれをしました、しかしそれはどんなに良いもありませんでした。たぶん私はあなたを誤解したかもしれません。 –

+0

大きな数字がOpenGLに渡される場所を確認し、コードを変更してそれらを回避します。 – abenci

関連する問題

 関連する問題