- •Часть 1. Метод фотонных карт. Final Gathering
- •1. Испускание фотонов
- •2. Трассировка фотонов
- •3. Создание фотонной карты
- •4. Использование фотонной карты при рендеринге
- •Параметры настройки фотонных карт в mental ray для 3ds max, закладка Indirect Illumination
- •Оценка освещения точки поверхности по заданному количеству фотонов
- •Окно настроек фотонных карт
- •Настройка глубины трассировки для фотонов
- •1. Построение Grid сетки в растровом пространстве изображения
- •2. Предварительная стадия расчета fg
- •3. Рендеринг
- •Диагностический рендер fg-расчета. Радиус 10см, fg Samples 1000
- •Интерфейс настройки параметров fg-расчета
- •Часть 2.
- •Интерфейс шейдера Ambient/Reflective Occlusion в 3ds max
- •Сцена освещена двумя стандартными точечными источниками света (omni light)
- •Шейдер ао назначен диффузным свойствам материалов
- •Все тени в сцене рассчитаны ambient occlusion
- •Настройка ambient свойств материала для использования ао
- •Источник света проявляет диффузные характеристики поверхности
- •Ambient occlusion в режиме 1, учитывается цвет окружения
- •Шейдер ambient occlusion назначен точечному источнику света. Другого освещения в сцене нет
- •Простой reflective occlusion с картой отражения на параметре Bright – шейдер "видит" затеняющую геометрию, но не может построить правильные отражения – вместо них мы видим черные пятна
- •Пример диаграммы более сложного материала, позволяющего получить отражения с помощью reflective occlusion
- •Материал с Reflective occlusion, позволяющий получить отражения
- •Еще один пример материала для reflective occlusion
- •Источник света – Skylight, расчет освещения выполнен при помощи Final Gather, время вычислений – 2 часа 15 минут
- •Часть 3. Физическая модель подповерхностного рассеяния в mental ray – sss Physical Material
- •Шейдер miss_physical
- •Скриншот тестовой сцены
- •Слева-направо: камера под углом 90, 45 и 35 градусов к нижней грани
- •Слева - направо: depth 1, 10, 20, 100
- •Слева - направо: depth 1, 10, 20, 100
- •Слева - направо: depth 1, 10, 20, 100
- •Сцена 1. Молоко в стеклянном стакане
- •Сцена 2. Горящая цилиндрическая свеча
- •Сцена 3. Кубическая свеча
- •Часть 4. Упрощенная модель подповерхностного рассеяния sss Fast
- •Рассеянный задней поверхностью свет освещает переднюю поверхность
- •Материал miss_fast_simple_phen
- •Вверху — объект со стандартным материалом (Blinn), внизу — с материалом sss Fast Material
- •Вид интерфейса sss Fast Material по умолчанию в 3ds max Вид интерфейса sss Fast Material со всеми открытыми слотами свойств
- •Для шейдера bump использована растровая карта
- •Рассеяние без и с использованием ambient occlusion (нижнее изображение)
- •Применены растровые карты для bump, overall diffuse coloration и specular
- •Расчет освещения с final gathering, вверху — indirect off, внизу — indirect on
- •Шейдеры группы miss_fast
- •Диаграмма построения материала
- •Стандартный материал (phong) с картами для цвета, отражений и рельефа
- •Материал кожи со значениями по умолчанию
- •"The Final Battle". Автор: Max Kor
- •Создание собственных материалов sss Fast
- •Часть 5. Запекание текстур (render to texture)
- •Интерфейсы шейдеров mib_lightmap_write и mib_lightmap_sample
- •Пример достаточно удачных текстурных координат Неудачные текстурные координаты - множество швов и несвязанных координатных областей. Редактировать их будет довольно сложно
- •Blend - материал, запеченный scanline Запеченная текстура
- •Запеченная текстура
- •Копируем перетягиванием запекаемый материал в сэмплер поверхности
- •Рендер с текстурой, запеченной из blend-материала при помощи mental ray Запеченная текстура теперь выглядит правильно
- •Текстура с освещением
- •Интерфейс rtt
- •Секция параметров General Settings
- •Секция параметров Objects to Bake
- •Секция параметров Output
- •Секция Baked Material
- •Секция Automatic Unwrap Mapping
- •Сцена с caustic-эффектом, рассчитанным по фотонной карте
- •Настройки для запекания caustic фотонной карты
- •Запеченная фотонная карта
- •Рендер с запеченной в текстуру фотонной картой
- •Редактирование вершин Cage
- •Карта нормалей
- •Модель с Normal bump map
- •Высокополигонный источник и низкополигонный объект - цель
- •Часть 6.
- •Сетка модели Рендер сцены с источниками света
- •Две поверхности, на которых будет выращен мех
- •Модификатор Hair and Fur, секция Selection
- •Отображение в видовом окне сгенерированных модификатором волосков
- •Окно редактора Style Hair
- •Окно предварительного просмотра Style Hair
- •Секция параметров Frizz
- •Влияние параметров Frizz
- •Рендер в режиме mp Prim c Shadow map
- •Рендер в режиме mp Prim с ray trace тенями
- •"Лабораторная крыса"
Mental ray 3.3 для 3ds max
Часть 1. Метод фотонных карт. Final Gathering
В первой части обзора рассматриваются основные методы, используемые mental ray при расчете освещения трехмерных сцен с учетом многократных переотражений света между объектами (Global Illumination) – метод фотонных карт (Photon map) и Final Gathering, а также некоторые новшества, появившиеся в mental ray версии 3.3 и имеющие непосредственное отношение к рассматриваемым методам.
Общий алгоритм расчетов с использованием GI
Общий алгоритм расчета освещения с использованием Global Illumination в mental ray может быть разделен на два больших этапа – light pass и view pass.
На первом этапе, light pass, происходит испускание фотонов от источников освещения, трассировка их столкновений с поверхностями объектов и создание фотонных карт для последующего использования. На втором этапе, view pass, выполняется испускание лучей из камеры через плоскость изображения в сцену, учитываются настройки антиалиасинга и производится отслеживание пересечений и переотражений этих лучей на заданную глубину для всех поверхностей трехмерных объектов в сцене. Для точек пересечений рассчитывается прямое освещение, затенение, отражения и преломления прозрачными поверхностями и учет диффузного освещения от других объектов при помощи созданных ранее фотонных карт и/или методом Монте-Карло. Метод Монте-Карло в mental ray получил специальное название – Final Gathering (FG), или "окончательный сбор". Рассчитанные освещенности и тени комбинируются и формируют финальное изображение – рендер трехмерной сцены.
Рассмотрим каждый из этапов более детально.
Все три компоненты вычисляются независимо и затем комбинируются в один общий результат. Процесс начинается с испускания лучей от камеры (наблюдателя) через двумерную решетку пикселей, формирующих будущее изображение, в сцену. Для каждого их таких лучей рассчитывается первое пересечение с поверхностью того или иного объекта сцены. Для всех точек пересечения рассчитываются указанные выше компоненты освещенности. Общее число лучей, испускаемых от камеры, определяется настройками антиалиасинга.
Фотонные карты
Метод фотонных карт известен уже довольно хорошо известен, поэтому, я приведу лишь последовательность шагов, выполняемых при расчете фотонных карт с краткими пояснениями.
Расчет освещения с использованием фотонных карт состоит из следующих этапов:
1. Испускание фотонов
В соответствии с типом источника света (omni, spot, directional или area) определяются начальные направления испускания лучей. Каждому лучу присваивается определенное значение энергии, задаваемое в настройках источника. Именно благодаря последнему обстоятельству, лучи света и называют "фотонами". Другими словами, "фотоны" компьютерной графики не имеют ничего общего с фотонами из физики, а лишь отражают факт, что в GI "лучи света" обладают энергией. С другой стороны, фотоны, как и всякий геометрический луч, не имеют диаметра или радиуса, но имеют длину.
2. Трассировка фотонов
После испускания фотона источником, его траектория отслеживается до первого пересечения с поверхностью. В точке пересечения учитываются свойства материала, присвоенного трехмерному объекту. В частности, диффузные свойства и свойства отражения и преломления по коэффициентам, заданным в настройках материала. Дальнейшая судьба фотона определяется методом "Русской рулетки" с учетом свойств материала в месте столкновения – фотон может быть поглощен и на этом его путь заканчивается, диффузно отражен, отражен зеркально или преломлен прозрачной поверхностью.
Одним из важных требований mr, предъявляемых к материалам, является принцип физической корректности. Его суть состоит в том, что сумма коэффициентов диффузного и зеркального отражения и коэффициента преломления не должна превышать единицу. Только при выполнении этого условия "Русская рулетка" обеспечивает корректное рассеяние фотонов при взаимодействии с поверхностью.
После этого траектория фотона прослеживается до следующего пересечения, где процесс повторяется. Количество возможных столкновений фотона определяется глубиной трассировки фотона в настройках рендера. Если поверхность обладает диффузными свойствами ( то есть, не является чисто зеркальной, например) информация об энергии фотона, координатах его столкновения с поверхностью и направлением прилета сохраняется в специальной базе данных, получившей название "фотонная карта". Самое первое столкновение фотона не записывается в базу, поскольку оно является прямым освещением и рассчитывается другими методами.
Трассировка фотонов продолжается до тех пор, пока заданное в настройках рендера количество фотонов не будет отслежено и информация об их столкновениях не будет записана в фотонную карту. Особенностью mr является то, что в настройках указывается количество фотонов, которые должны быть сохранены в фотонной карте, а не количество испущенных источником фотонов. Поэтому, mr испускает столько фотонов, сколько необходимо для сохранения заданного числа. Количество испущенных фотонов всегда больше, чем количество сохраненных, mr отслеживает это соотношение и в определенных ситуациях может выдавать предупреждающие сообщения. Это не обязательно свидетельствует об ошибке, хотя, если после испускания миллиона фотонов ни один не был сохранен, расчет будет прекращен.