- •5. Содержание
- •6. Технические требования
- •Санкт-Петербургский государственный электротехнический университет
- •(СПбГэту “лэти”)
- •Календарный план выполнения выпускной квалификационной работы
- •Реферат
- •Содержание
- •Определения, обозначения и сокращения
- •Введение
- •Обзор методов и средств разработки графических приложений для ос багрос-4000
- •БагрОс-4000 как операционная система реального времени
- •Средства разработки графического по для БагрОс-4000
- •Отрисовка кадра с помощью OpenGl
- •Спецификация OpenGl sc 1.0.1
- •Особенности работы с графикой в ос БагрОс-4000
- •Последовательный способ отрисовки
- •Единовременная отрисовка
- •Реализация и тестирование методов отрисовки
- •Реализация метода последовательной отрисовки
- •Реализация метода единовременной отрисовки
- •Тестирование методов отрисовки
- •Состав библиотеки графических примитивов
- •Управляющие функции
- •Функции отрисовки примитивов
- •Функции работы с маскированием
- •Математические функции
- •Порядок работы с библиотекой
- •Пример прикладной программы
- •Разработка и стандартизация программных средств
- •Разработка плана проекта
- •Расчёт цены проекта
- •Расчёт себестоимости проекта
- •Расчёт цены предлагаемого продукта
- •Определение кода разрабатываемого программного изделия
- •Заключение
- •Список использованных источников
- •Приложение а Фрагменты исходного кода библиотеки
Тестирование методов отрисовки
С помощью способов, изложенных в начале данной главы, оба способа отрисовки были протестированы на 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 – Сравнение объёма используемой памяти
Поскольку объём используемой памяти не является критическим параметром, а скорость отрисовки необходима как можно более высокая, для реализации библиотеки выбран метод единовременной отрисовки.
Состав библиотеки графических примитивов
Основные требования по составу и возможностям библиотеки были составлены совместно с представителями заказчика – ПАО «Компания «Сухой». В общие принципы работы библиотеки можно вынести следующие положения:
По умолчанию точка начала координат (0, 0) – в центре окна.
Должна использоваться глубина прорисовки: каждый последующий примитив, вызванный в коде программы нижестоящей функцией, должен отрисовываться поверх предыдущего.
Библиотека должны содержать настроечный файл, содержащий:
Значения по умолчанию:
Цвет;
Толщина линии;
Тип линии;
Толщина обводки;
Тип отрисовки (маскирование);
Флаги сглаживания;
Флаг заливки;
Флаги обводки;
Смещения по осям;
Угловое смещение;
Количество граней для отрисовки окружности;
Шрифт;
Номер символа.
Массивы значений:
Индекс цвета – цвет в формате RGBA;
Индекс шрифта – путь к файлу шрифта;
Индекс типа линии – значения для шаблона линии;
Отрисовка текста должна осуществляться с помощью библиотеки FreeType2.
Все функции разрабатываемой библиотеки можно разделить на следующие категории:
Управляющие функции;
Функции отрисовки примитивов;
Функции работы с маскированием;
Математические функции.