なぜOpenGLESは私の3Dモデルを伸ばしますか?
質問
私はBlenderの簡単な3Dモデルを作成し、iPhone SDKのためのOpenGLESにこれを輸入しました。モデルは、ほとんどの部分は問題なくインポートされていますが含ま写真リンク(Photobucketの)から見ることができるように、OpenGLは、その意図された割合を超えてモデルを伸ばしています。私は、OpenGLに関する初心者だなど、円柱は、卵形作られてスクワット長方形の本体は背が高く作られてそう私を啓発してください:なぜOpenGLの(ES)は、私の3Dモデルをストレッチして、いくつかのトラブルシューティングの手順どのようなものでしょうか?
(自分で新しいウィンドウでplsはオープンリンク)のPICS のの の
ブレンダーの
でレゴブリックモデル化
レゴブリックはOpenGLES の
に(延伸)レンダリング
レゴブリックはOpenGLES の
に(延伸)レンダリング
レゴブリックOpenGLESに(延伸)レンダリングする
解決
たぶん、ブレンダーで、あなたのオブジェクトが1と異なるそのスケールのいずれかを持っている(あなたはメッシュのみではなく、ブレンダーオブジェクトをエクスポートする場合、たとえば)、それがエクスポートされない場合があります。
ブレンダーでは、AltキーSとスケールをクリアすることができます - 。>クリアスケールオブジェクトモード中に
他のヒント
私は、これは古いです知っている誰かが正しい参照を持つようにこの問題を探しているならば、それは有用であろう。
あなたはOpenGLで物事をレンダリングするときは、、射影行列がテンプレートでレンダリングで単位行列に設定されています:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
これはOpenGLは、アスペクト比1の画面にレンダリングされることを意味する:1。この問題を解決するには、次の操作を行うことができます:
float m[16] = {1.33,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1};
glMatrixMode(GL_PROJECTION);
glLoadMatrixf(m);
1又は3:これは、1.33のアスペクト比を設定する。2 iPhone画面に対応する