- •Часть 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 тенями
- •"Лабораторная крыса"
Для шейдера bump использована растровая карта
Mode (скрыт) — определяет режим работы с источниками света: 0 — учитывается освещение от всех источников в сцене, 1 — учитывается освещение только от указанных в списке Lights источников, 2 — не учитывается освещение от источников, представленных в списке Lights.
Lights (скрыт) — позволяет установить/отключить режим работы со списком источников света и создать такой список.
Параметры Mode и Lights представляют альтернативный стандартному для 3ds max методу включения/исключения объектов из освещения. Рекомендую открыть их и использовать, поскольку при работе с материалами группы Fast SSS стандартное исключение из освещения средствами 3ds max не работает.
Группа параметров, определяющих диффузные свойства рассеивающего материала Diffuse Sub Surface Scattering:
ambient (Ambient/Extra light) — определяет фоновое освещение. Ambient - освещение добавляется в lightmap и учитывается при расчете рассеяния, наряду с освещением от источников. Поэтому, его можно использовать для определения реального рассеянного фонового освещения от HDRI карт или ambient occlusion.
Рассеяние без и с использованием ambient occlusion (нижнее изображение)
Использование ambient occlusion позволяет достичь более плавных переходов на границе освещенных областей и тени. Эффект достаточно тонкий, но вполне различимый.
overall_color (Overall diffuse coloration) — множитель для суммарного диффузного освещения всего материала: unscattered disffuse color + Front surface color + Buck Surface scatter color, не воздействует на зеркальные свойства материала. Может изменять интенсивность и оттенок цвета умножением заданного в overall diffuse coloration цвета (или карты) на суммарный диффузный цвет материала. Этот слот полезен в качестве блокирующей маски для помещения растровой карты, имитирующей родинки на коже, грязь, текстурные брови и тому подобного. Не рекомендуется для помещения растровой карты цвета поверхности, ее лучше положить в слот diffuse_color.
diffuse_color (Unscattered diffuse color) — обычный, не рассеянный диффузный цвет материала, рассчитываемый по закону Ламберта. Этот цвет накладывается поверх рассеянного освещения. Здесь уместна аналогия со слоями в Adobe Photoshop — на самом верхнем слое лежит overall_color, на слое под ним — unscattered diffuse color, рассеянный свет располагается на нижних слоях. SSS Fast material использует для расчета диффузного не рассеянного освещения шейдер misss_lambert_gamma (SSS Lambert Gamma).
diffuse_weight (Unscattered diffuse weight)— множитель, определяющий степень проявления не рассеянного диффузного цвета. Чем больше множитель, тем больше величина соответствующего диффузного компонента и тем сильнее он проявится при рендере. Можно вновь воспользоваться аналогией с Photoshop — изменение weight идентично изменению прозрачности слоя. Вообще же вес всех слоев имеет простую цель — балансировать их вклады при формировании общего цвета материала.
front_sss_color (Front surface scatter color) и front_sss_weight (Front surface scatter weight) — цвет и вес рассеянного освещения от front (передней) рассеивающей поверхности.
front_sss_radius (Front surface scatter radius)— радиус рассеяния освещения для передней поверхности в миллиметрах. Радиус измеряется в единицах сцены, деленных на значение Scale conversion factor. Радиус является ключевым параметром для определения рассеивающих свойств материала. Чем меньше радиус, тем меньше рассеивающие свойства материала и тем больше он походит на обычный материал без рассеяния.
back_sss_color (Back surface scatter color) и back_sss_weight (Buck surface scatter weight) — цвет и вес рассеянного света от задней поверхности.
back_sss_radius (Buck surface scatter radius) — радиус рассеяния освещения для задней поверхности.
back_sss_depth (Back surface scatter depth) — определяет максимальное расстояние от задней поверхности, на котором виден рассеянный ею свет. Если радиус достаточно велик, рассеянный свет от задней поверхности может "подсвечивать" переднюю поверхность. Глубина особенно важна для проявления эффектов подповерхностного рассеяния в тонких объектах. Например, покраснение ушей или просвечивание костей кисти руки сквозь тело при заднем освещении. Если величина Back surface scatter depth не указана, она полагается равной величине радиуса рассеяния для задней поверхности.
Группы параметров front_sss и back_sss определяют визуальное проявление подповерхностного рассеяния материала и вычисляются при помощи lightmap. Для расчета карт освещения SSS Fast Material использует второй шейдер — самплер misss_lambert_gamma (первый — для расчета не рассеянного диффузного освещения).
Группа параметров зеркальных свойств Specular reflections:
Для реализации зеркальных отражений в SSS Fast Material используется шейдер misss_skin_specular (SSS Specular Reflection for Skin). Точнее, часть параметров первого слоя зеркальных подсветок primary_spec_color и primary_shinyness, второй слой просто не используется (описание этого шейдера будет дано немного позже).
specular (Specular color) — цвет и интенсивность зеркальных подсветок.
exponent (Shininess) — размер зеркальной подсветки, этот параметр определяет степень экспоненты для расчета размера пятна подсветки — стандартной подсветки, которую можно видеть у материалов типа phong или Blinn. Чем меньше его значение, тем шире пятно, чем больше — тем меньше размер подсветки.