Лекция
Привет, Вы узнаете о том , что такое метод трассировки лучей, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое метод трассировки лучей , настоятельно рекомендую прочитать все из категории Компьютерная графика.
Одним из наиболее распространенных и наглядных методов построения реалистичных изображений является метод трассировки лучей (RayTracing, рэйтрейсинг), позволяющий строить фотореалистичные изображения сложных сцен с учетом таких эффектов как отражение и преломление.
Рассмотрим каким путем возникает реальное изображение. Выпустим из каждого источника света пучок лучей во все стороны и мысленно проследим за ним. При попадании луча на границу объекта, если объект не является отражающим и преломляющим, то траектория луча обрывается; в противном случае – выпускаем из точки попадания отраженный и преломленный лучи и отслеживаем их и все порожденные ими лучи.
Для новых лучей возможны 3 варианта дальнейшего взаимодействия с объектами сцены:
все расчеты сбрасываются, та как луч не вносит вклад в формирование
изображения.
соответствующего пикселя изображения.
расчет освещенности, строится новый луч и продолжается процесс, пока все
лучи не придут к сценарию 1 или 2.
Описанный процесс называется прямой трассировкой лучей. В результате можно получить изображение сцены однако, требуются огромные вычислительные затраты. Основным недостатком такого способа является то, что большая часть рассматриваемых лучей не попадает в глаз.
На рисунке 7 приведена иллюстрация метода прямой трассировки лучей
Рисунок 7 – Схема метода прямой трассировки лучей.
Как правило, применяется вероятностная модификация метода — при моделировании отдельные кванты испускаются в случайном направлении от источника света, и чем больше квантов будет рассчитано, тем более полной будет картина освещения. Использование физически достоверной модели распространения света позволяет получить реалистичную картину освещения с учетом вторичного освещения и других эффектов, но такой подход требует большого объема вычислений. Для каждого кванта необходимо произвести уйму сложных операций — хотя бы для нахождения точки столкновения с первым объектом. Особенно если объектов на сцене много и каждый представлен большой совокупностью треугольников.
Метод прямой трассировки фотонов полностью универсален благодаря приближенной к реальности модели освещения. Об этом говорит сайт https://intellect.icu . Правда, он не учитывает некоторые волновые свойства света. Из курса физики: если источник света расположить за сферой, то на определенном расстоянии, прямо посередине круглой тени от шара, появится светлая точка. Но чтобы это рассчитать, нужно моделировать всю реальность, и никакой мощности не хватит.
Метод обратной трассировки лучей позволяет значительно сократить перебор световых лучей. Согласно этому методу отслеживание лучей производится не от источников света, а в обратном направлении – от точки наблюдения. Так учитываются только те лучи, которые вносят вклад в формирование изображения.
Плоскость проецирования разбита на множество пикселов. Выберем центральную проекцию с центром схода на некотором расстоянии от плоскости проецирования. Проведем прямую линию из центра схода через середину пиксела плоскости проецирования. Это будет первичный луч обратной трассировки. Если этот луч попадет в один или несколько объектов сцены, то выбираем ближайшую точку пересечения. Для определения цвета пиксела изображения нужно учитывать свойства объекта, а также то, какое световое излучение приходится на соответствующую точку объекта.
Если объект зеркальный (хотя бы частично), то строим вторичный луч – луч падения, считая лучом отражения предыдущий, первичный трассируемый луч. Для идеального зеркала достаточно затем проследить лишь очередную точку пересечения вторичного луча с некоторым объектом. У идеального зеркала идеально ровная отполированная поверхность, поэтому одному отраженному лучу соответствует только один падающий луч. Зеркало может быть затемненным, то есть поглощать часть световой энергии, но все равно остается правило: один луч падает – один отражается.
Если объект прозрачный, то необходимо построить новый луч, такой, который при преломлении давал бы предыдущий трассируемый луч.
Для диффузного отражения интенсивность отраженного света, как известно, пропорциональна косинусу угла между вектором луча от источника света и нормалью. Когда выясняется, что текущий луч обратной трассировки не пересекает какой–либо объект, а уходит в свободное пространство, то на этом трассировка для этого луча заканчивается.
При практической реализации метода обратной трассировки вводят ограничения. Некоторые из них необходимы, чтобы можно было в принципе решить задачу синтеза изображения, а некоторые ограничения позволяют значительно повысить быстродействие трассировки .
На рисунке 8 представлена схема метода обратной трассировки лучей.
Рисунок 8 – Схема метода обратной трассировки лучей
Алгоритм выглядит следующим образом: из виртуального глаза через каждый пиксел изображения испускается луч и находится точка его пересечения с поверхностью сцены. Лучи, выпущенные из глаза называют первичными. Допустим, первичный луч пересекает некий объект в точке H1.
Далее необходимо определить для каждого источника освещения, видна ли из него эта точка. Предположим пока, что все источники света точечные. Тогда для каждого точечного источника света, до него испускается теневой луч из точки H1. Это позволяет сказать, освещается ли данная точка конкретным источником. Если теневой луч находит пересечение с другими объектами, расположенными ближе чем источник света, значит, точка H1 находится в тени от этого источника и освещать ее не надо. Иначе, считаем освещение по некоторой локальной модели (Фонг, Кук–Торранс и.т.д.). Освещение со всех видимых (из точки H1) источников света складывается. Далее, если материал объекта имеет отражающие свойства, из точки H1 испускается отраженный луч и для него вся процедура трассировки рекурсивно повторяется. Аналогичные действия должны быть выполнены, если материал имеет преломляющие свойства.
Достоинства метода трассировки лучей:
– возможность рендеринга гладких объектов без аппроксимации их полигональными поверхностями (например, треугольниками);
– вычислительная сложность метода слабо зависит от сложности сцены;
– высокая алгоритмическая распараллеливаемость вычислений — можно параллельно и независимо трассировать два и более лучей, разделять участки (зоны экрана) для трассирования на разных узлах кластера и т.д;
– отсечение невидимых поверхностей, перспектива и корректное изменения поля зрения являются логическим следствием алгоритма.
Недостатки метода:
Серьезным недостатком метода обратного трассирования является производительность. Метод растеризации и сканирования строк использует когерентность данных, чтобы распределить вычисления между пикселями. В то время как метод трассирования лучей каждый раз начинает процесс определения цвета пикселя заново, рассматривая каждый луч наблюдения в отдельности. Впрочем, это разделение влечет появление некоторых других преимуществ, таких как возможность трассировать больше лучей, чем предполагалось для устранения контурных неровностей в определенных местах модели. Также это регулирует отражение лучей и эффекты преломления, и в целом — степень фотореалистичности изображения.
Двунаправленная трассировка лучей (bidirectional ray-tracing) ведется с двух сторон: со стороны камеры и источника. Представим себе сцену, состоящую из источника света и зеркала, отражающего весь свет на плоскость. Такая сцена будет потенциально быстрее рассчитываться методом прямой трассировки. Двунаправленная трассировка (Рисунок 9) подразумевает испускание лучей от камеры и от источника (максимальная глубина трассировки с каждой стороны фиксирована). Далее пути от камеры и источника начинают соединяться различными способами (так называемый детерминированный шаг алгоритма). В случае пересечения соединяющих лучей с другими объектами вклад всего пути будет равен нулю, иначе - не ноль.
Рисунок 8 – Схема метода двунаправленной трассировки лучей
Исследование, описанное в статье про метод трассировки лучей, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое метод трассировки лучей и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Компьютерная графика
Из статьи мы узнали кратко, но содержательно про метод трассировки лучей
Комментарии
Оставить комментарий
Компьютерная графика
Термины: Компьютерная графика