Разработка приложения для визуализации трехмерных iен с использованием карт освещения и динамического освещения

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?имо векторов позиции источника освещения и нормали (как в случае с диффузной моделью освещения) используются еще два вектора: видовой вектор и вектор отражения. Бликовую модель освещения (specular lighting model) предложил Буи-Туонг Фонг [13].

Рисунок 1.3. Бликовая модель освещения

Угол между видовым вектором и вектором отражения - в. Чем больше угол в, тем ярче бликовое освещение. Поэтому бликовая модель освещения вычисляется по следующей формуле:

(3)

где п - коэффициент яркости свечения.

С ростом параметра п отражение становиться все более бликовым и все более концентрируется вдоль направления вектора отражения R.

1.6.4Модификация модели свещения по Блину

Джим Блинн [6] придумал альтернативный способ вычисления бликового освещения, который устраняет дорогие вычисления над вектором отражения.

Общая формула имеет вид:

(4)

Он ввел промежуточный вектор (half vector), который является средним значением между видовым вектором и вектором позиции источника освещения

1.6.5Тени ShadowMap

Тени являются важной зрительной подсказкой как в реальности, так и в визуализированных iенах. На самом низком уровне тени предоставляют информа-цию о расположении объектов относительно друг друга и источников света, даже если эти источники на iене не видны. Когда речь идет об играх, тени могут сделать игровой мир совершенно жутким. Представьте, что вы заворачиваете за угол в подземелье, освещенном лишь факелами, и входите в тень своего самого страшного кошмара Питер Пен отдыхает'[5].

На сегодняшний день существует множество алгоритмов построения теней. Эти алгоритмы являются важными в компьютерной индустрии, так как они помогают реализовать важную часть в представлении объектов моделируемого мира, без тени объекты не будут выглядеть реалистичными. Существуют такие алгоритмы как Shadow volume, Ray casting, Photo mapping, Radiosity, Shadow Mapping.

Shadow volume

Это техника используется компьютерной графике для воспроизведения теней в отображаемой iене. Впервые техника была представлена Франком Кровом в 1977 году [20] как геометрически смоделированная 3D поверхность, закрывающая собой источник света. Shadow volume разделяла виртуальный мир на две части: то что находилось в тени и то что находилось не в тени.

Shadow volume становилась популярной техникой для отображения теней в реальном времени, так же как и более популярная shadow mapping. Техника shadow volume требует создания геометрии объекта-тени, что может отразиться на производительности CPU (зависит от реализации). Преимущество метода shadow map относительно SV в том, что она чаще всего быстрее, в полигоны shadow volume часто очень большие в пределах пространства экрана и требуют большого времени для отрисовки (особенно для выпуклых объектов), тогда как карты теней не имеют этого ограничения.

Ray casting

Он используется для решения разнообразных проблем в компьютерной графике, связанных с пересечением лучей света на поверхности. В компьютерной графике способ был впервые представлен в 1982 году на докладе Скота Роса по описанию метода для рендеринга CSG models [21].

Ray Casting имеет отношение к:

Общая проблема определения первого пересечения объекта с лучом.

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

Нерекурсивный вариант трассировки лучей, при котором бросаются только первичные лучи.

Метод прямого объёмного рендеринга, также называемый volumeray casting (англ.).

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

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