2009-07-01 9 views
1

私はBlenderで単純な3Dモデルを作成し、これをiPhone SDKのOpenGLESにインポートしました。ほとんどの場合問題なくインポートされたモデルですが、含まれている写真リンク(photobucket)からわかるように、OpenGLは意図した比率を超えてモデルを伸ばしています。私はOpenGLに関する初心者ですので、私に教えてください:OpenGL(ES)が3Dモデルを伸ばすのはなぜですか?いくつかのトラブルシューティングの手順は何ですか?OpenGLESが3Dモデルを引き伸ばすのはなぜですか?

PICS(新しいウィンドウでplsは開いてリンクを自分自身)

Lego Brick Modeled in Blender
Lego Brick Modeled in Blender
Lego Brick Rendered (Stretched) in OpenGLES
Lego Brick Rendered (Stretched)in OpenGLES
Lego Brick Rendered (Stretched) in OpenGLES

答えて

2

多分ブレンダーで、あなたのオブジェクトは、のいずれかを持っていますスケール1とは異なり、エクスポートすることはできません(たとえば、ブレンダーオブジェクトではなくメッシュのみをエクスポートする場合など)。

ブレンダーでは、オブジェクトモードでAltキーを押しながら[スケールをクリア]を使用してスケールをクリアできます。

+0

ありがとうございます!これは私の問題を解決しました。 – RexOnRoids

2

私はこれが古かったと知っていますが、誰かがこの問題を検索して正しい参照をしていると便利です。

あなたはOpenGLで物事をレンダリングするときに、射影行列がテンプレートでレンダリングの単位行列に設定されています:

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 

これは、OpenGLはアスペクト比1の画面に描画することを意味します:1。この問題を解決するには、次の操作を行うことができます:1または3:iPhoneの画面に対応して2

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.33のアスペクト比を設定します。

関連する問題