- •Часть 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 тенями
- •"Лабораторная крыса"
Скриншот тестовой сцены
Ниже приведены результаты расчетов подповерхностного рассеяния для различных случаев.
Тест 1. Расчет подповерхностного освещения методом однократного рассеяния
Описание сцены:
Образец: молоко;
Метод: однократное рассеяние (approx_single_scatter = on);
Свет: direct;
Отражение поверхности отключено (слот material имеет черный цвет);
top - верхняя камера, перпендикулярна грани, на которую падает свет;
side - камера перпендикулярна боковой грани;
bottom - камера перпендикулярна нижней грани.
top - side - bottom, g = - 0.9 (анизотропное рассеяние назад)
top - side - bottom, g = 0 (изотропное рассеяние)
top - side - bottom, g = 0.9 (анизотропное рассеяние вперед)
Выводы:
1. Анизотропия. Для рассеяния вперед (g = 0.9) существенный световой поток (красное пятно) выходит через нижнюю грань образца, и в меньшей степени по сравнению с другими типами анизотропии рассеяния - сверху (желтое пятно). Для рассеяния назад и изотропного рассеяния снизу свет не выходит (выходит значительно меньше), зато через верхнюю грань световой поток сильнее (белые пятна), чем при рассеянии вперед.
2. Однократное рассеяние происходит не только в пределах длины одного среднего свободного пробега, а по всей глубине материала, но с разной вероятностью. Чем больше глубина, тем меньше вероятность однократного рассеяния, или, что тождественно, чем больше глубина, тем меньше количество однократных рассеяний.
Как видно из рендеров, величина g влияет на вероятность однократного рассеяния в зависимости от глубины. При g = 0 глубина рассеяний максимальна - однократные рассеяния происходят на бОльшей глубине и их больше по количеству, при g = - 0.9 = 0.9 - минимальна и практически идентична как для рассеяния вперед, так и для рассеяния назад.
3. Высокая зависимость от положения камеры
Слева-направо: камера под углом 90, 45 и 35 градусов к нижней грани
Как видно из рендеров, при изменении положения камеры всего на 10 градусов видимость светового выхода через нижнюю грань полностью исчезла. Это свойство проявляется только для анизотропного рассеяния и его нужно учитывать при настройке положения камеры в сцене.
4. Отражение Фреснеля.
Для материала с g = 0.9 (рассеяние вперед) отражение поверхности (камера под углом 45 градусов сверху над образцом) демонстрирует закон Фреснеля. Дальняя часть эллипса светлее из-за того, что угол зрения относительно поверхности меньше для дальней части эллипса и больше для передней части эллипса. Свойства отражения для образца отключены - для слота material назначен черный цвет.
5. Расчет методом однократных рассеяний требует высоких значений интенсивности источников света. Если интенсивность источника недостаточна, результат расчетов будет просто нулевым ("черный" рендер).
Тест 2. Однократное рассеяние методом трассировки фотонов
Approx_multiple_scatter = on, остальные методы расчета выключены.
Образец тот же, трассировка фотонов выполнялась при depth = 1 (одна длина свободного пробега). В расчете освещения данным методом нельзя выделить вклад от однократных рассеяний, поскольку при любой, сколь угодно малой толщине слоя, вероятность многократных рассеяний все равно будет ненулевой.
top - side - bottom, g = - 0.9 (рассеяние назад)
top - side - bottom, g = 0 (изотропное рассеяние)
top - side - bottom, g = + 0.9 (рассеяние вперед)
В целом, поведение рассеянного света аналогично предыдущему случаю. Существенная разница состоит в отсутствии регулярности, что обусловлено многократными рассеяниями. Нет геометрически правильного hot spot от источника, вместо этого наблюдается световое пятно с неправильными и размытыми границами, размер пятна варьируется в зависимости от типа рассеяния. Характер затухания с глубиной также несколько изменился. Для рассеяния назад выход освещения через заднюю грань (камера bottom g = - 0.9) мы наблюдаем темное пятно в центре и более светлый граничный слой, по сравнению с расчетом, получаемым методом однократных рассеяний - просто темная задняя грань(см. аналогичный рендер выше).
Тест 3. Расчет рассеяния трассировкой при разной глубине depth