header_image
Главная Spacer
Лучшие
Легковые
Лоу-поли
Первый опыт
Разная техника
Конкурсы
Обсуждение
header_imgsmall
Главная страница Обратная связь О сайте Поиск
windowoverall_title
windowoverall_textarea
windowoverall_textarea
Вход
steps Просмотреть в галерее Запуск слайдшоу Следующее изображение
Anonymous
Аватара отсутствует
On-Line
111 гостей
Рекламный блок
Загрузка..
Загрузка..

Система визуализации Brazil R/S - Документация

К содержанию

Часть 1. Обзор средств brazil

Введение

Если оставить в стороне чисто художественные критерии, успешность визуального воплощения трехмерной сцены определяется тремя основными факторами. Эти факторы - хорошее моделирование, интересные материалы и освещение. И если моделирование лежит вне компетенции программ рендеринга, то материалы и освещение являются их прямой обязанностью. В настоящее время существует целый ряд программ, специализирующихся на материалах и расчете освещения. Наиболее известны: mental ray, Vray, brazil r/s, finalrender, этот ряд постоянно расширяется. Среди современных программ рендеринга brazil занимает свое собственное достойное место. Brazil обладает достаточно гибкими и современными возможностями расчета освещения, хотя и не является самой быстрой программой расчета. Brazil имеет собственный механизм шейдеров материалов с универсальным интерфейсом. Этот механизм не так изощрен, как, например, у Renderman или mental ray, опирающихся не столько на библиотеку готовых шейдеров, сколько на программирование необходимых свойств. Однако свойств, заложенных в основные типы шейдеров brazil, достаточно для качественного воспроизведения свойств материалов самого широкого спектра. В масштабах промышленного производства это делает brazil выбором #1 для небольших и средних студий, обладающих возможностями сетевого рендеринга и не имеющих возможности/желания программировать собственные шейдеры. Впрочем, brazil имеет немало своих искренних приверженцев и среди энтузиастов-индивидуалов.

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

Немного теории

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

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

Прямое освещение вычисляется испусканием дополнительных лучей из каждой точки пересечения в направлениях всех источников света трехмерной сцены. При этом определяется, находится ли точка в тени или освещена, вычисляется расстояние до источника света и угол между направлением на источник и нормалью точки пересечения поверхности с лучом камеры. Если в сцене имеются не только точечные, но и протяженные источники типа linear (линейные), area (источники света, обладающие площадью) или volume (объемные), в их направлении испускается не один луч, а группа лучей, для того чтобы определить степень освещенности точки как сумму освещенностей от различных частей источника света. Такой механизм позволяет вычислять "мягкие" или размытые границы между тенью и светом (penumbra). Наиболее широко используются на практике источники света типа area.

Расчет отраженного и преломленного света вблизи углов идеального преломления и отражения (зеркальные отражения) выполняется посредством рейтресинга (raytracing или трассировка лучей). Если поверхность объекта в той ее точке, в которую попадает луч из камеры, обладает свойствами зеркального отражения или прозрачностью, в направлении идеальных углов отражения и преломления или в обоих направлениях, если поверхность обладает двумя этими свойствами одновременно, строится еще по лучу. Новые лучи трассируются до следующего пересечения с объектом сцены, где процедура может повторяться, если новая точка пересечения также имеет свойства преломления/отражения. Трассировка лучей для одной и той же исходной точки продолжается до тех пор, пока не будет достигнута заданная глубина трассировки (количество преломлений луча, задаваемых в настройках программы рендеринга) и известна как глубина трассировки. Либо, пока взнос в освещение от очередного луча не станет меньше некоторой заданной величины. Освещенность точки от отражений и преломлений определяется как сумма освещенностей от всех построенных из нее лучей рейтресинга. Современная модификация этого алгоритма позволяет рассчитывать размытость отражений и преломлений. Достигается это за счет того, что из начальной точки испускается не один луч, а несколько в створе углов, близких к идеальному углу отражения или преломления. Освещенность точки рассчитывается усреднением по некоторому закону освещенностей от этих лучей. Поскольку, по мере удаления от точки, такие лучи все больше расходятся, усреднение будет давать все более размытый результат с увеличением расстояния или при прохождении через другие отражающие/преломляющие поверхности.

Расчет диффузных переотражений выполняется двумя способами или их сочетанием - методом Монте-Карло и/или методом фотонных карт.

Метод Монте-Карло учитывает весь падающий в данную точку многократно переотраженный свет, кроме прямого света и зеркальных отражений/преломлений. Для этого вокруг точки строится полусфера (сфера, если материал поверхности еще и прозрачен), через поверхность которой в случайных направлениях испускаются лучи, получившие название "сэмплы". Направления на источники света и углы зеркальных отражений/преломлений исключаются из набора сэмплов. Каждый сэмпл трассируется до пересечения с окружением. В каждой новой точке пересечения должна быть вычислена ее освещенность, поэтому процесс должен повториться - расчет прямого освещения, трассирование зеркальных углов, построение полусферы и новых сэмплов для расчета непрямого диффузного освещения.

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

Суммирование возвращаемых сэмплами освещенностей с той или иной степенью точности позволяет оценить полную освещенность точки, видимой в камеру. Чем больше лучей испускается через сферу, тем точнее будет оценка. Классический метод Монте-Карло (М-К) требует, чтобы направления лучей выбирались совершенно случайным образом. На практике почти все программы рендеринга используют модифицированный метод М-К, так называемый квази Монте-Карло (QMC в английской аббревиатуре). Его основное отличие в том, что направления лучей выбираются не совсем случайно. Например, для определения направлений могут использоваться так называемые низкорасходящиеся последовательности, позволяющие выбирать направления лучей так, чтобы сумма возвращаемых освещенностей сходилась к некоторому значению. Также довольно широко используется importance sampling, согласно которому среди всех возможных направлений лучей выбираются только те, которые дают существенный вклад в расчет освещенности. Довольно часто используется и метод определения направлений сэмплов по направлениям фотонов, взятых из фотонной карты вблизи точки и различные методы интерполяции, позволяющие получить освещенность некоторых точек без вычислений, по известным освещенностям уже вычисленных точек. Главное назначение этих методов - ускорить расчет без ущерба для качества. Вычисление освещенности точки методом Монте-Карло является довольно медленным, хотя может быть очень точным.

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

Метод фотонных карт - очень быстрый способ расчета, обладающий, к тому же, физической корректностью. Но он имеет два очень существенных недостатка. Первый - непомерные по современным меркам требования к оперативной памяти. Для получения корректных результатов требуется испускать огромное число фотонов. На каждую запись в базе данных о столкновении фотона требуется приблизительно 30 байт. На практике максимальное количество фотонов ограничено объемом памяти, который может адресовать операционная система. Для Windows XP SP1 и Win2k этот предел составляет 2 гигабайта (вне зависимости от того, сколько оперативной памяти установлено в компьютере), для Windows XP SP2 этот предел немного выше и может составлять 3 гигабайта. Вторым недостатком фотонных карт является их дискретность - каждое столкновение характеризуется единственной трехмерной координатой и единственным значением энергии. Это приводит к трудностям в расчете освещенностей углов и стыков только фотонной картой и к размыванию светотени в результате усреднения энергий фотонов по радиусу сбора (иначе не достичь гладкости, рендер будет "пятнистым").

В последнее время предпринимаются попытки усовершенствовать метод фотонных карт. Например, почти удалось снять ограничение на количество излучаемых фотонов за счет изменения методики учета вклада энергий фотонов в освещенность точек. Речь идет о light map для Vray и о tone map для brazil, которые должны появиться в будущих версиях этих программ. Но вопрос с усреднением все еще остается открытым - в этом направлении не предпринимается никаких исследований, насколько мне известно.

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

На этом с теорией все. Этого вполне достаточно для понимания работы основных настроек расчета освещенности brazil, к рассмотрению которых мы и переходим.

General Options

К содержанию
Загрузка..
Форум
dimafikas сегодня в 08:36
Последнее сообщение
Celeste вчера в 21:00
Последнее сообщение
Рекламный блок
Загрузка..
Мы в соцсетях
Группа 3DCar.ru ВКонтакте
Страница 3DCar.ru на Facebook

Яндекс цитирования Rambler's Top100 Рейтинг на сайте 3D Architech hosted by .masterhost
наверх
©2006-2024 3DCar.ru