Инициализация библиотек и вывод примитивов
жении временем вывода 9 мс, полное время скачком увеличивается до значения около 20 мс.
После выключения вертикальной синхронизации будет получен правильный результат: Проход 3
Накладные затраты 0.35
Очистка 478.86
Первый вывод примитивов 4636.95
Обрамление без примитивов 11.09
Смена страниц 1482.94
Полное время 6618.16
Отсюда можно сделать вывод, что при периоде обновления изображения 30-40 мс и разрешении 1024 х 768 выбор программного или аппаратного переключения страниц не может существенно повлиять на загрузку процессора или значение FPS.
Изменяя размеры окна и количество рисуемых треугольников, можно построить экспериментальную зависимость вида Т= Схп+ С2 s, где Т- время рисования треугольников, п - количество вершин, а 5 - суммарная площадь треугольников. Сравнение значений С, и С2 покажет, что время вывода примитивов значительно сильнее зависит от суммарной площади треугольников, чем от общего количества их вершин. Но из этого факта рано делать практические выводы, поскольку пока не выполняются проецирование вершин и расчет их освещенности, отсутствует интерполяция цвета между вершинами и не учитываются многие другие операции.
Следует отметить, что в сети Интернет встречается множество дискуссий по поводу работы OpenGL в полноэкранном режиме. Поскольку язык OpenGL не дифференцирует понятия «оконный режим» и «полноэкранный режим», для организации полноэкранного режима работы библиотеки предлагается перевести Windows в полноэкранный режим средствами библиотеки DirectDraw или функцией ChangeDi spl aySetti ngs( ), после чего инициализировать OpenGL. По сведениям авторов, драйвер OpenGL самостоятельно распознает и будет учитывать факт работы системы в полноэкранном режиме.
Для меня признаком работы библиотеки в полноэкранном режиме являются возможности программного управления разрядностью пикселов и разрешением экрана, а также аппаратное переключение страниц. Для проведения эксперимента следует выполнить код, приведенный в листинге 22.9.