При загрузке OBJ я получаю это - PullRequest
0 голосов
/ 21 марта 2011

и на этот раз я успешно загрузил модель!уй !!

но есть небольшая проблема, та, которая у меня была с другим загрузчиком obj ...

вот как это выглядит:

http://img132.imageshack.us/i/newglitch2.jpg/

Вот другой угол, если вы не можете увидеть его сразу:

http://img42.imageshack.us/i/newglitch3.jpg/

теперь это должно выглядеть как куб, но, как вы можете видеть, края гранейна кубе очень нестабильно

кто-нибудь еще имеет эту проблему, или если кто-то знает, как решить эту проблему, то дайте мне знать

также прокомментируйте, если есть какой-либо код, который нужно показать,я буду счастлив опубликовать его.

эй, я поиграл с кодом (кое-что изменил), и вот что я придумал

ОРИГИНАЛ:

glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(50.f,(double)800 / (double)600,0.f,200.f);
    glTranslatef(0.f, 0.f, -10.0f);

результат: выбор изображения (посмотрите на изображения)

ТЕКУЩИЙ:

glMatrixMode(GL_MODELVIEW);
    gluPerspective(50.f,(double)800 / (double)600,0.f,200.f);
    glTranslatef(0.f, 0.f, -50.0f);
    glLoadIdentity();

результат: модель не изменчива, но не может перемещать камеру (модель находится прямо передо мной)

Ответы [ 2 ]

2 голосов
/ 21 марта 2011
gluPerspective(50.f,(double)800 / (double)600,0.f,200.f);
                                              ^^^ 
                                               | 
That's your problem right there ---------------+

Расстояние ближней отсечки должно быть больше 0 для перспективных проекций. На самом деле вы должны выбрать, чтобы расстояние было как можно дальше, а плоскость отсечения - как можно ближе.

Скажем, ваш буфер глубины имеет ширину 16 бит, а затем вы разбиваете сцену на 32768 фрагментов. Распределение срезов осуществляется по закону 1 / x. Технически вы делите на ноль.

0 голосов
/ 21 марта 2011

Ну, это похоже на проблему с настройкой проекции. Некоторые части вашего куба, превратившись в пространство клипа, превышают ближнюю / дальнюю плоскости.

Из того, что я вижу, вы используете матрицу ортогональной проекции - это стандарт для создания 2D пользовательского интерфейса. Пожалуйста, ознакомьтесь с ближним и дальним вызовом вашего glOrtho вызова. Для 2D пользовательского интерфейса они обычно устанавливаются как -1 и 1 соответственно (или 0 и 1), поэтому может потребоваться либо уменьшить куб, либо увеличить глубину усеченного вида путем изменения указанных параметров.

...