Pergunta

Eu criei um modelo 3D simples no Blender, e importados isso em OpenGLES para o iPhone SDK. O modelo importado sem problemas para a maior parte, mas como você pode ver a partir dos links de fotografias incluídas (photobucket), OpenGL está esticando o modelo além de suas proporções pretendidas. Os cilindros circulares são feitos ovular, o corpo rectangular agachamento é feita de altura, etc. Eu sou um novato sobre OpenGL então por favor me esclarecer: por que OpenGL (ES) ser esticando meu modelo 3D e quais são algumas etapas de solução de problemas?

PICS (PLS abrir links em uma nova janela yourself)

Lego tijolo modelado em Blender
Lego tijolo modelado em Blender
Lego tijolo Prestados (esticada) em OpenGLES
Lego tijolo Prestados (esticada) em OpenGLES
Lego tijolo Prestados (esticada) em OpenGLES

Foi útil?

Solução

Talvez o seu objeto no liquidificador tem uma de suas escalas diferentes de 1, pode não ser exportados (por exemplo, se você só exportar a malha, não o objeto liquidificador).

No liquidificador você pode limpar as escalas com Alt S -.> Limpar Scale, enquanto no modo de objeto

Outras dicas

Eu sei que este é antiga, mas seria útil se alguém está à procura de esta questão ter uma referência correta.

Quando você tornar as coisas em OpenGL, o Projection Matrix está definido para a matriz identidade em tornar no modelo:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();

Isto significa que openGL retribuirá a uma tela de proporção 1: 1. Para corrigir isso, você pode fazer o seguinte:

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

Isto define a relação de aspecto de 1,33: 1 ou 3:. 2 que corresponde ao ecrã de iPhone

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top