Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





 

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

Тремя основными компонентами реалистичной картинки являются: геометрическое описание (полигональная сетка), наложение текстур и применение освещения.

Геометрическое описание. На сегодняшний день любой трёхмерный объект описывается при помощи треугольников (полигонов), в зависимости от уровня детализации модель может содержать большое количество треугольников (высокополигональные модели) и не очень большое количество треугольников (низкополигональные модели). Поскольку от количества треугольников зависит не только качество картинки, но и скорость обработки модели, для ИКГ стараются не злоупотреблять полигонами, более того существует набор техник, позволяющих повысить качество модели, состоящей из малого количества полигонов. Каждый полигон описывается тремя вершинами (vertices), под вершиной в трёхмерной графике понимается некоторый объект, который содержит не только позицию в трёхмерном пространстве, но и текстурные координаты, нормали, цвет, веса для анимации и многое другое…

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

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

- Direcctional. Направленный источник света (модель Солнца, поскольку оно находится достаточно далеко, можем пренебречь разницей расстояний до него в различных частях сцены, а также разницей направлений от солнца до отдельных точек сцены), для его задачи необходимо лишь направление;

- Point. Точечный источник света (модель лампочки). Задаётся точкой в пространстве, а также уравнением ослабления интенсивности, в зависимости от удалённости от источника света. Уравнение ослабления интенсивности обычно выглядит так

поэтому ослабление обычно задаётся путём указания коэффициентов A, B, C.

- Spot. Прожектор (является моделью прожектора/фонарика). Учитывает локализацию светового потока в некотором конусе. Задаётся указанием точки источника, направления, и степени ослабления. Для расчета ослабления при расхождении направления используется следующая формула:

, где α – угол отклонения от направления источника света, k – степень ослабления, чем выше, тем более чёткая и маленькая область влияния источника, чем меньше тем более размытая.

Каждый из типов источников света имеет несколько составляющих освещения:

- Ambient. Фоновое освещение. Является моделью освещения, создаваемого многократным отражением света от различных объектов, используется для придания объектам, на которые свет не попадает на прямую, хоть какой-то освещённости (для избежания чёрных объектов).

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

где N – нормаль для элемента поверхности, L – направление источника света.

- Specular. Зеркальная составляющая освещения. Рассчитывается из предположения, что большая часть энергии отражается от поверхности в направлении вектора отражения. Применение данного освещения даёт эффект световых бликов для гладких поверхностей (например на капоте машины). Аналогично диффузному освещению задаётся пиковое значение освещённости и формула ослабления.

,

где R – вектор отражённого по нормали луча света, V – вектор наблюдателя, s – степень ослабления (чем выше, тем более чёткое световое пятно, чем ниже, тем более размазанное)

 

Помимо источников света выделяют также понятие материала. Материал характеризует возможность объекта реагировать на различные компоненты освещения. Например, объект имеет жёлты материал (зелёный+красный), тогда он способен реагировать на зелёные, красные и жёлтые источники света, но не может реагировать на синие (объект останется чёрным). В современных графических системах цвет материала можно задать для любой световой составляющей. Более того, для придания объекту способности быть источником света используется понятие самосвечения (emission quality).

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

Object_color = Emission_Quality +

Global_ambient*material_ambient +

Spot_light_attenuation(a)*point_light_attenuation(r)*

(ambient_color*material_ambient +

diffuse_color*material_diffuse +

specular_color*material_specular)

 

При расчёте освещённости выделяют три основных подхода:

- плоское освещение

- расчёт по вершинам (метод Гуро)

- расчёт по пикселям (метод Фонга)

 

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

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

Метод Фонга идёт ещё дальше, происходит билинейная интерполяция нормали и позиции для каждого конкретного пикселя, а лишь затем производиться вычисление его цвета. Этот способ является довольно, поэтому современное аппаратное обеспечение для ИКГ его не поддерживает.

Можно пойти ещё дальше, и не рассчитывать нормаль для каждого пикселя, вместо этого можно передавать карту нормалей, которая размечается как текстура на каждый треугольник, в результате можно создать иллюзию неплоскости даже для плоского объекта (bump mapping).

x) Учёт фактуры поверхности – diffuse и specular.

 

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

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

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

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

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

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

- луч выходит за пределы сцены,

- луч встречается с непрозрачным телом, поглощающим свет;

- луч попадает в источник света,

- интенсивность луча падает ниже уровня чувствительности,

- число расщеплений первичного луча становиться слишком большим для имеющихся машинных ресурсов.

Результирующая прямая световая энергия (цвет и интенсивность), попавшая в приёмник из направления V, слагается из энергий терминальных вершин дерева с учётом их потерь при распространении в оптических средах.

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

- Непрозрачные объекты, поглощающие обратные лучи;

- Прозрачные объекты, через которые благодаря преломлению наблюдателю видны другие объекты;

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

- Тени, образующиеся в точках поверхности, заслонённых от источника другими объектами;

- Другие разнообразные оптические эффекты.

 

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

 

Date: 2016-05-25; view: 1195; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию