2009-07-01 3 views
1

Я создал простую 3D-модель в Blender и импортировал ее в OpenGLES для iPhone SDK. Модель импортируется без проблем по большей части, но, как видно из приведенных ссылок на фото (photobucket), OpenGL растягивает модель за пределы своих предполагаемых пропорций. Круглые цилиндры сделаны овулярными, прямоугольное тело приседания сделано высоким и т. Д. Я новичок в OpenGL, поэтому, пожалуйста, просветите меня: почему OpenGL (ES) растягивает мою 3D-модель и какие шаги по устранению неполадок?Почему OpenGLES растягивает мою 3D-модель?

ПИКС(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

Может быть, ваш объект в блендер имеет один из его весы ди fferent from 1, он не может быть экспортирован (например, если вы экспортируете только сетку, а не объект blender).

В блендере вы можете очистить весы с помощью Alt S -> Clear Scale в режиме объекта.

+0

Спасибо! Это решило мою проблему. – RexOnRoids

2

Я знаю, что это старый, но было бы полезно, если кто-то ищет эту проблему, чтобы иметь правильную ссылку.

Когда вы оказываете вещи в 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,33: 1 или 3: 2, что соответствует экрану iPhone.

Смежные вопросы