- •Часть 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 тенями
- •"Лабораторная крыса"
Слева - направо: depth 1, 10, 20, 100
Рендеры фактически идентичны. Это означает, что все значимые вклады собираются в пределах depth = 1.
Тест 4. Расчет методом дипольной диффузной аппроксимации
Approx_diffusion = on, остальные методы выключены.
Слева - направо: depth 1, 10, 20, 100
Рендеры с расчетом рассеяния только методом диффузной аппроксимации для карты размером в 100 тысяч фотонов для разных значений depth от 0 до 0.9 с шагом 0.1. При depth = 1 вклад от диффузной аппроксимации практически равен нулю. Последнее означает, что на такую глубину при заданных настройках фотоны уже не проникают.
Слева - направо: depth 1, 10, 20, 100
Рендеры с расчетом рассеяния только методом диффузной аппроксимации для карты из 1 миллиона фотонов и глубины depth от 0.9 до 1.04 с шагом глубины в 0.01 мм. Несмотря на то, что карта размером больше предыдущей в 10 раз, глубина ненулевого вклада осталась практически неизменной, при depth = 1.04 он практически равен нулю. Динамика несколько изменилась.
Выводы.
1. Результат расчета методом диффузной аппроксимации зависит от количества фотонов карты - чем больше, тем точнее. Если при рендере видны отдельные фотоны, следует либо уменьшить depth, либо увеличить число испускаемых фотонов.
2. Глубина слоя диффузной аппроксимации относительно невелика - от 1 до 3 длин свободного пробега и быстро затухает, в зависимости от свойств поглощения и рассеяния материала, энергии фотонов и количества испускаемых фотонов.
Тест 5. Текстурные трехмерные карты для коэффициента рассеяния
Представлены рендеры с использованием трехмерных процедурных карт для коэффициентов рассеяния из стандартного набора карт 3ds max.
В заключение я приведу примеры рендеров сцен с настроенным расчетом подповерхностного рассеяния.
Сцена 1. Молоко в стеклянном стакане
Файл сцены: scene1.zip
Сцена 2. Горящая цилиндрическая свеча
Файл сцены: scene2.zip
Сцена 3. Кубическая свеча
Файл сцены: scene3.zip
При настройке расчетов я следовал нескольким простым правилам:
1. Для освещения рассеивающего объекта использовался узконаправленный источник света. Это позволяет эффективно организовать испускание фотонов. Для освещения остальной части сцены использовался дополнительный источник.
2. Для поиска коэффициентов рассеяния для свечи я сначала полностью отключал параметр material и искал значения для простого белого света. Затем изменял значения коэффициентов для разных цветовых каналов, чтобы получить требуемый цветовой оттенок.
3. Стремился использовать настолько низкие значения энергий фотонов, насколько это возможно - это позволяет легче получить однородность расцветки объекта (усреднение фотонных рассеяний).
4. Для получения подсветок поверхности использовался шейдер illum_phong (mental ray), который скрыт по умолчанию. Открыть его можно тем же способом, что описан выше. Настройку освещения поверхности легче выполнить, полностью отключив проникновение света под поверхность.
5. Окончательный результат является балансировкой сочетания интенсивностей источников света и энергий излучаемых ими фотонов, соотношения величины пропущенного и отраженного света (material, transmitted) и их цветов. Задача довольно хлопотная и требующая некоторого терпения.
Остальные подробности можно узнать из конкретных значений параметров сцен, приведенных выше.
Далее будут рассмотрены материалы SSS Fast Material и SSS Fast Skin Material и соответствующие шейдеры.