Domanda

Ho creato un modello 3D semplice in Blender, e importato questo in OpenGLES per l'iPhone SDK. Il modello importato senza problemi per la maggior parte, ma come si può vedere dalle foto link inclusi (Photobucket), OpenGL sta allungando il modello al di là le sue proporzioni previsti. I cilindri circolari sono realizzati ovulare, il corpo rettangolare tozzo è fatto alto, ecc Sono un novizio per quanto riguarda OpenGL quindi per favore mi illumini: Perché OpenGL (ES) che si estende essere il mio modello 3D e quali sono alcuni passaggi di risoluzione dei problemi?

PICS (pls aprire i link in una nuova finestra da soli)

Lego Brick modellato in Blender
Lego Brick modellato in Blender
Lego Brick reso (allungato) in OpenGLES
Lego Brick reso (allungato) in OpenGLES
Lego Brick Reso (Stretched) in OpenGLES

È stato utile?

Soluzione

Forse il vostro oggetto nel frullatore ha una delle sue scale diverse da 1, esso non può essere esportato (ad esempio, se solo si esporta la maglia, non l'oggetto frullatore).

Nel frullatore è possibile cancellare le scale con Alt S -.> Cancella scala in modalità oggetto

Altri suggerimenti

So che questo è vecchio ma sarebbe utile se qualcuno è alla ricerca di questo problema di avere un riferimento corretto.

Quando si esegue il rendering cose in OpenGL, la matrice di proiezione è impostata la matrice identità in fase di rendering nel template:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

Questo significa che OpenGL renderà a uno schermo di rapporto 1: 1. Per risolvere questo problema, è possibile effettuare le seguenti operazioni:

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

Imposta le proporzioni di 1,33: 1 o 3:. 2 che corrisponde alla schermata iPhone

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top