Моя проблема в том, что, по-видимому, обычные объекты в моей сцене OpenGL неожиданно перевернулись. Вот несколько фотографий, которые помогут в моем объяснении.
Первый скриншот:
Второй скриншот:
Это проблема с моим кодом (чего не должно быть, потому что я там ничего не менял), или это просто что-то вроде сбоя видеокарты? И если проблема была в моей видеокарте, что можно сделать, чтобы это исправить?
Примечание: до обновления драйвера моей видеокарты все работало нормально
Ваша проблема в том, что вы рисуете обе стороны (внутри и снаружи) куба без использования теста глубины. Есть два способа это исправить. Как правило, вы включите и то и другое потому что они решают разные проблемы, но любой метод решит вашу проблему в данном конкретном случае.
Включить тест глубины: glEnable(GL_DEPTH_TEST)
, Это позволит сделать так, чтобы части куба, которые находятся впереди, рисовались поверх частей сзади, а не наоборот.
Включить отбраковку задней поверхности: glEnable(GL_CULL_FACE)
, Это сделает так, что внешняя часть куба будет нарисована, но не внутренняя. Обратите внимание, что вам нужно убедиться, что все ваши треугольники направлены в правильном направлении, чтобы это работало правильно. Также обратите внимание, что это только полное решение, потому что ваша модель выпуклая.