Question

J'ai créé un modèle 3D simple dans Blender, et importé cela en OpenGLES pour le SDK iPhone. Le modèle importé sans problème pour la plupart, mais comme vous pouvez le voir sur les liens de photos fournis (Photobucket), OpenGL est étirait le modèle au-delà de ses proportions prévues. Les cylindres circulaires sont faits ovular, le corps rectangulaire squat est fait grand, etc. Je suis un novice en ce qui concerne OpenGL si s'il vous plaît me éclairer: Pourquoi OpenGL (ES) être étirement mon modèle 3D et quelles sont quelques étapes de dépannage?

PICS (pls liens ouvrent dans une nouvelle fenêtre vous-même)

brique Lego Modelé dans Blender

Autres conseils

Je sais que c'est vieux, mais il serait utile si quelqu'un cherche cette question d'avoir une référence correcte.

Lorsque vous restituez les choses en OpenGL, la matrice de projection est défini sur la matrice d'identité au moment du rendu dans le modèle:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

Cela signifie que openGL rendra à un écran de rapport d'aspect 1: 1. Pour résoudre ce problème, vous pouvez faire ce qui suit:

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);

Ceci définit le rapport d'aspect à 1,33: 1 ou 3: 2. Ce qui correspond à l'écran de l'iPhone

scroll top