на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Построение реалистических изображений поверхности океана с 3-х мерной лодки, которая плавает по поверхности океана

Построение реалистических изображений поверхности океана с 3-х мерной лодки, которая плавает по поверхности океана

Курсовая работа

по машинной графике

На тему: Построение реалистических изображений поверхности океана с 3хмерной лодки, которая плавает по поверхности океана

СОДЕРЖАНИЕ

СОДЕРЖАНИЕ

1. ВВЕДЕНИЕ

1.1. Современные алгоритмы машинной графики

1.2. Рекурсивные алгоритмы построения изображения

1.3. Назначение программы

2. КОНСТРУКТОРСКИЙ РАЗДЕЛ

2.1. Выбор и обоснование используемых алгоритмов

2.2. Базовые алгоритмы

2.2.1. Алгоритм обратной трассировки лучей

2.2.2. Глобальная модель освещения Уиттеда

2.2.3. Стохастический суперсэмплинг

2.2.4. Шум Перлина

2.3.Система координат

2.4. Объекты сцены

2.4.1. Солнце

2.4.2. Лодка

2.4.3. Водная поверхность

2.5.Базовые трехмерные объекты

2.5.1. Сфера

2.5.2. Треугольник

2.6. Текстура и фактура

2.6.1. Общие сведения

2.6.2. Наложение текстуры на треугольник

2.6.3. Фактура

3. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ

3.1. Выбор и обоснование языка и среды программирования

3.2. Структура классов программы

3.2.1. Математические абстракции

3.2.2. Вспомогательные классы свойств трехмерных объектов

3.2.3. Базовые трехмерные объекты

3.2.4. Источник света

3.2.5. Сцена

3.2.6. Алгоритмы визуализации

3.2.7. Классы интерфейса

3.3. Пользовательский интерфейс

3.3.1. Главное меню

3.3.2. Диалог установки размера изображения

3.3.3. Диалог установки параметров сцены

3.3.4. Диалог установки параметров камеры

3.4. Условия применения программы

3.5. Обращение к программе

3.6. Входные и выходные данные

3.7. Сообщения

4. ЭКСПЕРИМЕНТАЛЬНО-ИССЛЕДОВАТЕЛЬСКИЙ РАЗДЕЛ

4.1. Описание экспериментов

4.2. Результаты экспериментов

5. ЗАКЛЮЧЕНИЕ

6. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

Приложение 1

1. ВВЕДЕНИЕ

1.1 Современные алгоритмы машинной графики

В настоящее время вопросы, связанные с отображением на экране дисплея разнообразных изображений, как никогда актуальны. Графика используется практически во всех областях деятельности человека, так или иначе связанных с использованием компьютера. Графическое представление информации может быть как всего лишь более удобным средством представления информации и организации взаимодействия пользователя с вычислительной машиной, так и неотъемлемой частью вычислительного комплекса, например, при моделировании сложных процессов, природных явлений, реалистичной графики в трехмерных компьютерных играх.

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

Примером таких «быстрых» алгоритмов являются алгоритмы, такие как z-буфер, использующие построчный просчет видимого изображения; эти методы давали вполне приемлемую скорость и до сих пор используются в ряде случаев, когда на первом месте стоит быстродействие. Однако они имеют один существенный недостаток, который в ряде случаев сводит на нет их преимущества: с их помощью невозможно построить высокореалистичные изображения с отображением таких оптических эффектов, как отражение, преломление, блики света от воды и т.д. Были попытки сымитировать подобные эффекты, накладывая на объекты, заранее просчитанные текстуры освещенности, что в совокупности с эффективными алгоритмами оптимизации несколько приближало изображение к реальности. Такой подход широко использовался в трехмерных компьютерных играх и был доведен разработчиками практически до совершенства. Однако того качества изображения, которое может быть получено с применением рекурсивных алгоритмов, таких как прямая и обратная трассировка лучей, а также алгоритм излучательности, им никогда не достичь.

1.2 Рекурсивные алгоритмы построения изображения

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

Алгоритм прямой трассировки лучей разработан уже давно, но, как и в момент его создания, в настоящее время он применяется очень мало в силу исключительно больших вычислительных затрат и существенной избыточности вычислений. Кроме того, очень трудно предсказать время вычисления, которое может оказаться неприемлемо большим. Однако алгоритм все же используется, поскольку качество и реалистичность получаемого изображения очень высоки.

Алгоритм обратной трассировки лучей в той или иной модификации является основным средством получения высокореалистичных изображений с большинством возможных оптических эффектов, наблюдаемых в реальной жизни. Результат работы алгоритма оказывается очень близким к реальности. В настоящее время обратная трассировка лучей становится все более популярной, и существует тенденция применения модификаций этого алгоритма в программах, требующих построения трехмерных изображений в реальном времени, например, в компьютерных играх. Это стало возможным благодаря тому, что данный алгоритм естественным образом распараллеливается и, таким образом, в полной мере может использоваться многопроцессорными системами.

Еще одним рекурсивным алгоритмом построения реалистических изображений, принципиально отличающимся от перечисленных, является алгоритм излучательности. В отличие от трассировки лучей, основанной на принципах геометрической оптики, данный метод использует законы сохранения энергии, что позволяет моделировать сцену физически соответствующую реальности. Алгоритм излучательности обычно используется в комбинации с обратной трассировкой лучей.

1.3 Назначение программы

Данная программа предназначена для построения реалистических изображений поверхности воды с трехмерным объектом на ней. В ее основе лежит алгоритм обратной трассировки лучей, включающий в себя поддержку отражения и преломления лучей, а также учет таких оптических эффектов, как блики от солнца, и различных волнений водной поверхности. Дополнительно реализованы такие алгоритмы, как наложение текстуры, отображение фактуры поверхности, устранение «лестничного» эффекта по алгоритму стохастического суперсэмплинга.

Сцена состоит из водной поверхности, трехмерной лодки и солнца. Пользователь имеет возможность редактировать размеры лодки, ее положение в пространстве. Освещенность сцены и положение солнца рассчитываются в зависимости от введенных пользователем параметров: дата, время и географическое положение. Программа может, как строить один кадр сцены, так и последовательность кадров (мультипликация), когда лодка движется в зависимости от направления и скорости ветра.

2. КОНСТРУКТОРСКИЙ РАЗДЕЛ

2.1 Выбор и обоснование используемых алгоритмов

Базовым алгоритмом при разработке данной программы был выбран алгоритм обратной трассировки лучей. Основным его преимуществом является получение намного более реалистичных изображений, чем при применении алгоритмов, таких как алгоритм z-буфера. Высокая реалистичность достигается потому, что алгоритм основан на законах оптики и может воспроизводить эффекты, недоступные другим алгоритмам - отражение, преломление и точные тени. Кроме того, алгоритм обратной трассировки учитывает специфику свойств материалов отображаемых объектов.

К преимуществам алгоритма можно отнести также невысокую потребность в памяти, потому что при построении изображения интенсивность каждого пиксела вычисляются автономно, и память расходуется только на хранение текущего дерева луча.

Основным недостатком алгоритма обратной трассировки лучей является его крайне низкая скорость, однако процесс вычисления очевидным образом распараллеливается, что делает возможным расчет различных участков изображения на отдельных процессорах или даже компьютерах в сети. Таким образом, можно достигнуть скорости прорисовки, близкой к реальному времени.

Для расчета интенсивности каждого пиксела используется глобальная модель освещения Уиттеда, как проверенная временем и позволяющая получить близкое к реальности изображение, в то же время, давая приемлемую скорость, в отличие, например, от глобальной модели Холла, учитывающей зависимость коэффициентов диффузного и френелевского отражения, а также коэффициента френелевского пропускания от длины волны и свойств вещества

Для моделирования водной поверхности взят алгоритм наложения фактуры (bump-mapping). Сама фактура генерируется с помощью шума Перлина, который затем интерполируется с помощью функции косинусов. Данный алгоритм позволяет достичь наибольшего быстродействия и дает приемлемые результаты для больших водных поверхностей (море, океан), в то время как другие алгоритмы (быстрые преобразования Фурье (FFT), дифференциальные уравнения движения водных потоков, фракталы) требуют, как больших вычислительных затрат при расчете, так и аппроксимации водной поверхности множеством примитивов, что приводит к огромным затратам по времени и неприемлемы для программной реализации.

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

Еще одним добавлением к базовому алгоритму трассировки является стохастический суперсэмплинг, позволяющий устранить неровности на границах объектов гораздо эффективнее, чем обыкновенно применяемый для устранения “лестничного” эффекта суперсэмплинг. Данный подход показывает неплохие результаты даже при пропускании всего одного луча на пиксел.

2.2 Базовые алгоритмы

2.2.1 Алгоритм обратной трассировки лучей

Идея алгоритма обратной трассировки лучей унаследована от придуманного ранее алгоритма прямой трассировки лучей. Суть алгоритма в испускании из точки наблюдения луча через каждую точку картинной плоскости и определение интенсивности этой точки путем отслеживания маршрута испущенного луча, который ведет себя по законам геометрической оптики. Алгоритм рекурсивен - при попадании на поверхность объекта луч делится на отраженный и преломленный и продолжает свой путь. Таким образом, можно построить дерево хода луча, где узел является пересечением луча с поверхностью, а исходящие из узла ветви - отраженный и преломленный лучи. Ветвь кончается, когда поиск пересечения соответствующего луча с объектами сцены дает отрицательный результат. Однако при таком подходе легко получить бесконечную рекурсию - в случае, например, расположенных друг напротив друга идеальных зеркал луч будет отражаться от них бесконечно. Для предотвращения подобных эффектов, а также для повышения скорости вычислений вводят предельное значение глубины рекурсии, представляющее собой максимальное количество узлов в дереве луча.

При пересечении луча с поверхностью направления отраженного и преломленного лучей определяются, исходя из законов геометрической оптики.

Отраженный луч строится, исходя из того, что падающий луч, отраженный и нормаль к поверхности в точке касания лежат в одной плоскости, и угол падения равен углу отражения (рис. 2.1).

Вектор отраженного луча вычисляется следующим образом:

(2.1)

Для преломленного луча используется закон Снеллиуса, который гласит, что отношение синусов углов падения и отражения равно отношению абсолютных коэффициентов преломления сред (рис. 2.2).

Преломление луча

Рис. 2.2 Вектор преломленного луча вычисляется по формулам /8/:

(2.2)

Где

(2.3)

Необходимо заметить, что основной сложностью алгоритма обратной трассировки лучей является нахождения точки пересечения луча с объектом сцены и определение нормали к поверхности в этой точке. Данный вопрос подробно рассматривается в разделе 2.3.

2.2.2 Глобальная модель освещения Уиттеда

Определение интенсивности точки на поверхности объекта осуществляется согласно глобальной модели освещения Уиттеда:

(2.4)

где , , - соответственно, коэффициенты рассеянного, диффузного и зеркального отражения, - коэффициент пропускания.

Глобальная модель освещения Уиттеда

Рис. 2.3

Из рис. 2.3 виден смысл входящих в формулу величин. Трассируемый луч отражается от поверхности в направлении и преломляется (если коэффициент пропускания не равен нулю) в направлении . В таком случае интенсивность в точке поверхности, на которую упал трассируемый луч, будет складываться из интенсивности фонового освещения , интенсивностей и за счет света, пришедшего с направлений соответственно отраженного и преломленного луча, а также диффузной и зеркальной составляющей от каждого источника света ( - направление на -й источник), причем здесь учитывается не точное направление отражения луча от источника, а так называемое glossiness, или распределенное отражение - распределение отраженного света в некотором телесном угле, обусловленное микрорельефом (шероховатостью) поверхности и визуально наблюдаемое в виде светового блика, имеющего тем большие размеры, чем выше шероховатость поверхности. При определении интенсивности - го источника света учитывается ослабление света при условии нахождения между рассматриваемой точкой поверхности и - ым источником полупрозрачных тел: в этом случае интенсивность ослабляется путем умножения ее на коэффициент затенения (shading), прямо зависящий от коэффициента пропускания тела. Если же между источником света и точкой лежат непрозрачные объекты, данный источник игнорируется.

В уравнении Уиттеда интересен член:

(2.5)

где - это, фактически, косинус угла между направлением отраженного луча от -го источника света и направлением на точку испускания базового трассируемого луча . Этот член уравнения Уиттеда обуславливает отображение бликов на поверхности тела, однако он не имеет ничего общего с физическими законами и был эмпирически получен Фонгом. Степень p, в которую возводится упомянутый выше косинус, называется коэффициентом Фонга и определяет пространственное распределение отраженного света.

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.