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

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

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



распространения, поглощая некоторый (или весь) спектр луча (и, возможно, изменяя цвет). Суммарная интенсивность светового луча, которая была потеряна вследствие поглощения, преломления и отражения, должна быть в точности равной исходящей (начальной) интенсивности этого луча. Поверхность не может, например, отразить 66% входящего светового луча, и преломить 50%, так как сумма этих порций будет равной 116%, что больше 100%. Отсюда истекает, что отраженные и / или преломлённые лучи должны стыкаться с другими поверхностями, где их поглощающие, отражающие и преломляющие способности снова вычисляются, основываясь на результатах вычислений входящих лучей. Некоторые из лучей, сгенерированных источником света, распространяются по пространству и, в конечном счете, попадают на область просмотра (глаз человека, объектив фото- или видеокамеры и т.д.). Попытка симулировать физический процесс распространения света путём трассировки световых лучей, используя компьютер, является чрезмерно расточительным, так как только незначительная доля лучей, сгенерированных источником света, попадает на область просмотра.

Photon mapping

В компьютерной графике, photon mapping это двухходовой алгоритм глобального освещения разработанный Henrik Wann Jensen [22] для решения проблемы выравнивания при рендеренге. Лучи исходящие из источника света и лучи исходящий из камеры трассируются самостоятельно, пока не встретиться некоторый предел, затем они соединяются на последующем шаге для создания radiance value (излучающая величина). В особенности, это искусная симуляция преломления света проходящего через прозрачную субстанцию такую как стакан воды, diffuse interreflection между освещённым объектами, subsurface scattering света в полупрозрачных материалах, и некоторые эффекты такие как испарение воды и туман. Это может так же быть расширено более аккуратной симуляцией света, та-кой как spectral rendering.

Shadow Mapping

Карты теней (Shadow maps) широко используются в отображении теней в работе с компьютерной графикой. Shadow mapping, впервые был представлен Ленсом Вильянсом в 1978 году, в докладе Casting curved shadows on curved surfaces [23].

Теория метода отображения тени проста. Вопрос: какие части iены попадут в тень'' Ответ, части, на которые не падает непосредственно свет. Представьте, что вы наблюдаете iену, находясь в источнике света Что увидел бы источник света, будь он камерой? Все, что наблюдается с позиции источника света, освещается, а все остальное попадает в тень. Различие между наблюдением с позиции камеры и наблюдением с позиции источника света иллюстрируется на рис. 3. С позиции камеры и источника света iена выглядит по-разному.

Рисунок 1.4. Изображение iены с позиции камеры и источника света

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

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

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

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

Рисунок 1.5. Процесс перехода из системы наблюдения камеры в систему наблюдений источника света.

Большой стрелкой в центре на рисунке 4 показаны преобразования, которые нужно применить к текстурным координатам, линейным в системе наблюдения

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

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