OpenGL затенение глюк GLSL

Моя проблема в том, что, по-видимому, обычные объекты в моей сцене OpenGL неожиданно перевернулись. Вот несколько фотографий, которые помогут в моем объяснении.

Первый скриншот:
введите описание изображения здесь

Второй скриншот:
введите описание изображения здесь

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

Примечание: до обновления драйвера моей видеокарты все работало нормально

-2

Решение

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

  1. Включить тест глубины: glEnable(GL_DEPTH_TEST), Это позволит сделать так, чтобы части куба, которые находятся впереди, рисовались поверх частей сзади, а не наоборот.

  2. Включить отбраковку задней поверхности: glEnable(GL_CULL_FACE), Это сделает так, что внешняя часть куба будет нарисована, но не внутренняя. Обратите внимание, что вам нужно убедиться, что все ваши треугольники направлены в правильном направлении, чтобы это работало правильно. Также обратите внимание, что это только полное решение, потому что ваша модель выпуклая.

0

Другие решения


По вопросам рекламы [email protected]