У меня особенно неприятная проблема. В некоторых ситуациях вызовы glColor игнорируются, в результате чего объекты отображаются с неправильным цветом.
Проект Qt, демонстрирующий эту проблему, можно найти здесь.
Когда вы запускаете программу, все, что вы видите на экране, — это два прямоугольных объекта, рассматриваемых под углом. Объект слева визуализируется вызовом glCallList(boxModel1);
, а объект справа визуализируется вызовом glCallList(boxModel2);
. Два списка отображения создаются методами с очевидными названиями.
И для boxModel1
, и для boxModel2
я использую один список отображения под названием squareModel
для рендеринга сторон коробок. Я делаю это, потому что, хотя квадратная модель в этом случае тривиальна, squareModel
в моей реальной программе намного сложнее, с измененными нормалями и т. д.
Проблема как-то связана с методом createManyRectangles
. При вызове с достаточно маленьким номером (у меня 2715) цвета отображаются нормально: синий квадратик и красный квадратик. Когда число высокое (для меня 2716), цвета игнорируются, и оба поля отображаются белыми.
Кто-нибудь может пролить свет на то, что здесь происходит?