Трехмерное моделирование: улучшение алгоритмов рендеринга и просчета трехмерных изображений. Обоснование выбора алгоритмов. Выбор языка программирования и среды разработки. Структура данных и программного комплекса. Системные требования для работы.
Аннотация к работе
Многие корпорации работают над улучшением алгоритмов рендеринга и просчета трехмерных изображений.В соответствии с заданием на курсовую работу необходимо разработать последовательность трехмерных преобразований, позволяющую моделировать различные сценарии движения морской группировки войск. Программное обеспечение должно позволять: Загружать модели из проприетарного формата.Любой замкнутый объект с плоскими гранями можно представить в виде набора выпуклых многогранников, то есть в виде наборов плоскостей, образующих грани данных многогранников. Поскольку объем вычислений в алгоритмах удаления невидимых линий и поверхностей растет с увеличением числа многоугольников, для описания поверхностей объектов желательно использовать многоугольники с более чем тремя сторонами. Сравнивая область с проекциями всех граней, можно выделить случаи, когда изображение, получающееся в рассматриваемой области, определяется сразу: Проекция ни одной грани не попадает в область. Проекция только одной грани содержится в области или пересекает область. Существует грань, проекция которой полностью накрывает данную область, и эта грань расположена к картинной плоскости ближе, чем все остальные грани, проекции которых пересекают данную область.Трассировка лучей - это метод, применяемый для создания реалистичных образов на компьютере, используя полные модели трехмерного мира. Трассировка лучей создает образ, исходя из тех же законов, что и наше зрение. Чтобы воспользоваться трассировкой лучей для создания натуральных образов, нам придется использовать миллиарды световых лучей из источника света, а затем рассматривать каждый из них, надеясь, что он попадет в план наблюдения и примет участие в создании образа. Проследим движение лучей для каждого из пикселей на экране, а затем посмотрим, где эти лучи пересекаются с планом просмотра. Исходя из этого, был реализован упрощенный вариант трассировки лучей, использующий только первичные лучи для генерации изображения.В результате проведения анализа алгоритмов была выбрана следующая последовательность проведения преобразований:Источник освещения сцены мы считаем точечным и удаленным от прорисовываемых объектов.Каждому прорисовываемый объекту в программе назначены следующие глобальные параметры: имя (не изменяется), координаты в пространстве, собственный угол азимутального поворота, цвет, пункт назначения.В качестве языка реализации программного комплекса был выбран Object Pascal, а средой разработки - Delphi 7.На рисунке 2 представлена схема взаимодействия классов программы, на которой отображены основные вызовы.Класс объекта хранит следующие данные о нем: Точка "Центра объекта" - некоторая точка, перемещаемая при изменении координат объекта. Все координаты вершин вычисляются относительно этой точки. Точка "Место назначения" - точка, необходимая для указания места назначения при движении объекта. Цвет объекта - как и все цвета в программе задается в формате RGB. Список треугольников, составляющих объект.Внутри этого метода производится выбор способа расчета (с освещением, или без) в зависимости от настроек.В виде глобальных переменных хранятся: Массив объектов, включает в себя все объекты. Данные о полигонах в объектах хранятся в виде односвязных списков полигонов.Заданы следующие независимые процедуры: Проверка видимости. Проверяет пересечение отрезка с любым объектом сцены. Применяется при учете освещения.программу добавлена интеллектуальная функция тестирования, которая определяет оптимальные параметры и дает рекомендации по работе с программой.Выделено 3 основные группы: Объекты, Сцена, Освещение. При выборе объекта, посредством клика на таблице, поля координат принимают текущие значения для данного объекта, а он выделяется зеленым цветом в отображаемой сцене. Кнопки перемещения позволяют перемещать объект без ввода новых координат. Если же возникла необходимость переместить объект в заданную точку, то необходимо его выделить в таблице и, задав свойства, нажать кнопку "Применить". Если указать точку назначения ("Путь"), то после запуска циклического рендеринга кадров, объект начнет движение в заданном направлении.Входе тестирования программного продукта на разных системах с использованием встроенного бенчмарка были получены следующие результаты: Процессор Режим без теней Итоговый результат В процессорах от AMD традиционно, начиная с архитектуры K7, применяется очень быстрый блок вычислений с плавающей точкой. (FPU) [4] [5] Поэтому мы видим, что Athlon XP 2000 , который вышел на рынок в 2002 работает почти на равнее с современным процессором от Intel - Core 2 Duo E4400 и в 1.5 раза обгоняет P4 3.0Ghz на ядре Prescott. Известно, что в ядро Prescott могло обеспечить ускорение в операциях с плавающей запятой при сравнении с Northwood только при использовании оптимизированных под SSE3 компиляторов, что ярко и отображается на результатах. Так AMD Athlon 64 3000 939 (1.8Ghz) становится вторым по скорости работы после разогнанного Core 2 Duo E4400@ (3.29Ghz)
План
Содержание
Введение
1. Конструкторская часть
1.1 Постановка задачи
1.1.1 Обоснование выбора алгоритмов
1.1.2 Анализ алгоритмов удаления невидимых линий
1.1.3 Анализ и выбор алгоритма определения освещенности
2.1 Выбор языка программирования и среды разработки
2.2 Структуры данных
2.2.1 Структура программного комплекса
2.2.2 Класс объекта
2.2.3 Интерфейсный класс
2.2.4 Структуры данных
2.2.5 Независимые процедуры
3. Использование системы
3.1 Системные требования
3.2 Работа с программой
3.2.1 Общие сведенья
3.2.2 Панель "Объекты"
3.2.3 Панель "Сцена"
3.2.4 Панель "Сцена" и выпадающее меню
3.3 Анализ результатов тестирования
Выводы
Литература
Введение
В настоящее время наиболее быстро развивающейся индустрией является сфера трехмерного моделирования. Многие корпорации работают над улучшением алгоритмов рендеринга и просчета трехмерных изображений. Системы, связанные с моделированием трехмерных сцен, внедряются во множество сфер деятельности человека. Одной из областей применения машинной графики является визуализация трехмерных сцен, представляющих различные группировки движущихся объектов. Эти задачи широко применяются при моделировании военных действий.