- •Часть 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 тенями
- •"Лабораторная крыса"
Рассеянный задней поверхностью свет освещает переднюю поверхность
При изменении положения камеры карты нужно пересчитывать, это необходимо учитывать при анимации. Следует также избегать линз и зеркальных объектов, которые могут показать проекцию стороны объекта, отличающуюся от проекции камеры на большой угол — в этом случае в рендере будут наблюдаться артефакты. Например, для куба с SSS-материалом, если плоскость камеры выровнена строго параллельно вдоль одной из его граней, на перпендикулярной грани будут артефакты, поскольку ее проекция в пространстве камеры будет ребром куба. Увидеть артефакты можно, поместив отражающую поверхность возле этой грани.
Создание и запись данных в карты осуществляется шейдером misss_lightmap_write. Данные карты могут либо резидентно храниться в оперативной памяти, либо записываться в файл.
В соответствии с физической моделью подповерхностного рассеяния, которую мы рассмотрели в предыдущем обзоре, луч света, падающий в некоторую точку поверхности, освещает не только точку падения, но и некоторую площадку поверхности с центром в точке падения луча. Размер площадки и ее свойства подповерхностного отражения зависят от коэффициентов рассеяния и поглощения материала, а затухание интенсивности освещения происходит по экспоненциальному закону от центра к краям площадки и также зависит от характеристик рассеивающего материала.
Этот факт можно довольно просто использовать. Вместо того чтобы задавать характеристики материала и честно рассчитывать радиус рассеяния и величину затухания, будем просто "руками" задавать радиус затухания при помощи величины радиуса рассеяния и сравнивать получаемый рендер с тем, что необходимо получить.
Данные о диффузной освещенности точек поверхности карты Lightmap рассчитываются по закону Ламберта. По умолчанию, этот расчет выполняется шейдером misss_lambert_gamma. Размер карты, то есть общее количество точек с посчитанной освещенностью, можно задавать в настройках. Когда луч от камеры достигает некоторой точки поверхности, ее освещенность от подповерхностного рассеяния рассчитывается сбором освещенностей соседних точек из lightmap с учетом затухания, определяемого заданным радиусом подповерхностного рассеяния. Количество просматриваемых соседних точек также можно изменять в настройках.
Таким образом, расчет подповерхностного рассеяния при помощи lightmap и depthmap опирается на физическую модель рассеяния света, но позволяет настраивать расчет по "визуальному" принципу, без необходимости использовать реальные физические характеристики рассеивающего материала.
Именно поэтому группа шейдеров SSS Fast считается "физически некорректной" — для них мы задаем в качестве параметра то, что miss_physical "честно" рассчитывает как результат рассеяния света в объеме материала.
SSS Fast не требует для расчетов испускания фотонов, GI, замкнутости объема и даже рейтресинга.
Рассмотрим смысл и назначение настроечных параметров шейдеров и материалов.
Материал miss_fast_simple_phen
Начнем с miss_fast_simple_phen (SSS Fast Material), как одного из базовых материалов.
Этот материал является составным, то есть, построен из нескольких базовых модульных шейдеров — misss_fast_shader, misss_skin_specular, misss_lambert_gamma и bump. Он автоматически генерирует lightmap и depthmap, наполняет их данными и рассчитывает окончательный цвет с учетом упрощенной модели подповерхностного рассеяния. Содержит два рассеивающих слоя, соответствующих передней и задней поверхности объекта, слой с простыми свойствами зеркального отражения и слой не рассеянного диффузного отражения.