Вопрос

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

ФОТО (пожалуйста, сами откройте ссылки в новом окне)

Лего-кирпичик, смоделированный в Blender
Лего-кирпичик, смоделированный в Blender
Lego Brick, визуализированный (растянутый) в OpenGLES
Lego Brick, визуализированный (растянутый) в OpenGLES
Lego Brick, визуализированный (растянутый) в OpenGLES

Это было полезно?

Решение

Возможно, ваш объект в блендере имеет один из масштабов, отличный от 1, его нельзя экспортировать (например, если вы экспортируете только сетку, а не объект блендера).

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

Другие советы

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

Когда вы визуализируете вещи в 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top