Скачиваний:
82
Добавлен:
16.07.2022
Размер:
1.8 Mб
Скачать
    1. Тестирование методов отрисовки

С помощью способов, изложенных в начале данной главы, оба способа отрисовки были протестированы на 10-ти различных тестовых примерах. Изображение одного из тестов приведено на рисунке 2.2.

Рисунок 2.2 – Пример теста способов отрисовки

Полученные результаты можно наблюдать в таблице 2.1 и таблице 2.2.

Таблица 2.1 – Результаты тестирования метода последовательной отрисовки

№ теста

Количество отрисовываемых полигонов (примитивов OpenGL)

Скорость отрисовки (кадров в секунду)

Используемая память (Мб)

1

1090

5,5

82

2

2080

6,4

135

3

5064

0,6

45

4

22004

1,3

56

5

38000

7,1

205

6

52046

6,5

124

7

102008

5,3

72

8

152000

4,1

59

9

209354

2,6

139

10

300000

0,2

154

Таблица 2.2 – Результаты тестирования метода единовременной отрисовки

№ теста

Количество отрисовываемых полигонов (примитивов OpenGL)

Скорость отрисовки (кадров в секунду)

Используемая память (Мб)

1

1090

60

1064

2

2080

59

1064

3

5064

61

1064

4

22004

60

1064

5

38000

62

1064

6

52046

61

1064

7

102008

59

1064

8

152000

60

1064

9

209354

58

1064

10

300000

61

1064

Перенеся полученные данные на графики, мы получим следующую картину, показанную на рисунках 2.3 и 2.4.

Как можно видеть на приведённых результатах тестирования – метод единовременной отрисовки показывает гораздо более высокую скорость отрисовки кадров на МЦСТ «Эльбрус-401» под управлением операционной системы БагрОС-4000. Однако и объём используемой памяти при этом многократно повышается по сравнению с последовательной отрисовкой.

Рисунок 2.3 – Сравнение скорости отрисовки

Рисунок 2.4 – Сравнение объёма используемой памяти

Поскольку объём используемой памяти не является критическим параметром, а скорость отрисовки необходима как можно более высокая, для реализации библиотеки выбран метод единовременной отрисовки.

  1. Состав библиотеки графических примитивов

Основные требования по составу и возможностям библиотеки были составлены совместно с представителями заказчика – ПАО «Компания «Сухой». В общие принципы работы библиотеки можно вынести следующие положения:

  • По умолчанию точка начала координат (0, 0) – в центре окна.

  • Должна использоваться глубина прорисовки: каждый последующий примитив, вызванный в коде программы нижестоящей функцией, должен отрисовываться поверх предыдущего.

  • Библиотека должны содержать настроечный файл, содержащий:

    • Значения по умолчанию:

      • Цвет;

      • Толщина линии;

      • Тип линии;

      • Толщина обводки;

      • Тип отрисовки (маскирование);

      • Флаги сглаживания;

      • Флаг заливки;

      • Флаги обводки;

      • Смещения по осям;

      • Угловое смещение;

      • Количество граней для отрисовки окружности;

      • Шрифт;

      • Номер символа.

    • Массивы значений:

      • Индекс цвета – цвет в формате RGBA;

      • Индекс шрифта – путь к файлу шрифта;

      • Индекс типа линии – значения для шаблона линии;

  • Отрисовка текста должна осуществляться с помощью библиотеки FreeType2.

Все функции разрабатываемой библиотеки можно разделить на следующие категории:

  • Управляющие функции;

  • Функции отрисовки примитивов;

  • Функции работы с маскированием;

  • Математические функции.