на первый
заказ
Курсовая работа на тему: Реализация алгоритма обратной трассировки лучей для моделей с большим числом полигонов
Купить за 350 руб.Введение
В компьютерной графике на сегодняшний день большое внимание уделяется алгоритмам получения реалистических изображений. Эти алгоритмы являются самыми затратными по времени. Обусловлено это тем, что они должны предусматривать множество физических явлений, таких как преломление, отражение, рассеивание света. Профессиональные программы для кинематографа учитывают еще больше явлений (дифракцию, интерференцию, зависимость коэффициентов преломления, отражения, поглощения от длины волны падающего света, вторичное, третичное отражение света).В моей курсовой работе для рендеринга применяется алгоритм обратной трассировки. На сегодняшний день он считается одним из лучших для формирования реалистических изображений. Его используют большинство трехмерных графических редакторов. Применяется так же алгоритм z-буфера. Но эффекты отражения и преломления, там достигаются искусственными методами и считаются не совсем точно. Подобным методом пользуются в программах, где крайне важна скорость. Примером таких программ служат компьютерные игры. Почти все они построены на использовании алгоритма z-буфера.
Целью моей курсовой было так же сделать алгоритм обратной трассировки как можно более быстрым. Для этого я применил метод иерархических оболочек. Его применение позволяет сделать время рендеринга, пропорциональным логарифму от числа объектов, а не числу объектов. Добиться с помощью этого реального времени, конечно, не удастся, но делает время ожидания приемлемым, равным порядка 5-30 секунд для 30000 треугольников на сцене.
Модуль Engine программы, может быть использован отдельно, в других программах Delphi. С помощью всего нескольких функций пользователь сможет задать сцену любой сложности и произвести рендеринг сцены. Модуль содержит функции для:
управления камерой
управления источниками света
задания объектов на сцене.
поворота объектов
рендеринга сцены
вывода изображения в задаваемое окно
По использованию модуль Engine очень похож на модуль OpenGL.
Оглавление
- 1. Введение- Конструкторская часть
- Обоснование использованных алгоритмов
- Структура данных
- Источники света
- Объекты для визуализации
- Текстуры
- Алгоритм обратной трассировки лучей
- Описание алгоритма
- Математическая основа обратной трассировки лучей
- Составление матрицы
- Программная реализация
- Определение пересечения луча с треугольником
- Формирование отраженного луча
- Формирование преломленного луча
- Оболочки
- Алгоритм построения иерархических оболочек
- Алгоритм обхода оболочек в трассировке лучей
- Текстурирование
- Процедуры для работы с текстурами
- Собственно текстурирование
- Закраска Фонга
- Освещение
- Модель освещения Уиттеда
- Диффузное отражение
- Зеркальное отражение
- Фоновая освещенность
- Прозрачность
- Процедуры расчета освещенности
- Технологическая часть
- Выбор языка программирования и обоснование выбора
- Модульная структура программы
- Интерфейс программы 4. Экспериментально-исследовательская часть Тест
- Тест
- Тест
- Заключение
- Список литературы
Заключение
Программа предназначена для рендеринга трехмерных сцен, для получения фотореалистических изображений. Она включает все элементы, описанные в техническом задании:Реализован алгоритм обратной трассировки лучей, позволяющий строить тени, сглаживать и текстурировать поверхности.
Для ускорения используется метод иерархических оболочек, делающий алгоритм трассировки очень быстрым.
Помимо этого в программе:
Очень мощная схема моделирования эффекта преломления, учитывающая зависимость интенсивностей преломленного и отраженного луча от коэффициента преломления среды.
Поддерживается освещение со специальными эффектами. Источник может светить во все стороны, а может светить в определенном телесном угле. Существует возможность сделать так, чтобы интенсивность источника уменьшалась при приближении к краям телесного угла.
Существует возможность сглаживания изображения. Поскольку сглаживание занимает очень много времени, то я сделал так, чтобы пользователь мог включать или выключать эту функцию по своему усмотрению.
Существует множество вариантов модернизации программы.
Модернизация алгоритма трассировки:
Включение в него фильтрации текстур, например, пирамидальной фильтрации, позволяющей корректно отображать текстурированные объекты находящиеся вдали.
Добавление новых оптических эффектов. Можно, например, сделать все оптические свойства поверхности, зависящими от длины волны падающего света.
Написание трехмерного редактора, который будет позволять:
редактировать геометрию объектов на сцене
редактировать свойства материалов
добавлять и удалять объекты сцены.
управлять источниками света.
загружать и сохранять сцены. Для этого понадобится введение специального формата.
Модуль Engine может быть подключен к любой программе Delphi и использован, для практического моделирования трехмерных сцен и их прорисовки.
Список литературы
1. Роджерс Д. Алгоритмические основы машинной графики: пер. с англ. - М.: Мир, 1989.2. Порев В.Н. Компьютерная графика 2004.
3. Тихомиров Ю. Программирование трехмерной графики. - СПб.: ИРМ - Санкт-Петербург, 1998.
4. Гантмахер Ф.Р. Теория матриц. - М.: Наука, 1967.
или зарегистрироваться
в сервисе
удобным
способом
вы получите ссылку
на скачивание
к нам за прошлый год