При загрузке OBJ я получаю это

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

но есть небольшая проблема, та, которую я имел с другим загрузчиком 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 ответа

Решение
gluPerspective(50.f,(double)800 / (double)600,0.f,200.f);
                                              ^^^ 
                                               | 
That's your problem right there ---------------+

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

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

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

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

Другие вопросы по тегам