- •Часть 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 тенями
- •"Лабораторная крыса"
Интерфейс rtt
После этого рендер выполняет расчет выбранного элемента визуализации объекта - это могут быть тени, освещение, прозрачность и так далее, и записывает результаты расчетов как текстуру в файл на диске. Если текстурные координаты создаются при запекании, в стеке объекта появляется новый модификатор Automatic Flatten UVs, который создает новые текстурные координаты для наложения просчитанной карта на объект. Создается и назначается объекту Shell материал, который хранит оригинальный материал и новый, с запеченной текстурой, и определяет, какую текстуру мы будем видеть в окне, а какую - при рендере. Всеми этими процессами можно управлять при помощи настроек.
Рассмотрим подробно предназначение настроечных параметров панели Render to texture.
Секция параметров General Settings. Эта секция параметров определяет настройки отображения процесса расчетов, пути сохранения файлов, а также выбор и настройку рендера для запекания.
Секция параметров General Settings
Группа параметров Output.
Path - позволяет указать каталог, куда будут записываться все файлы просчитанных карт. По умолчанию - это папка Images каталога, где установлен 3ds max.
Skip Existing Files - Если для объекта просчитывается несколько разных карт и часть карт уже просчитана раньше, то галочка в этом боксе позволяет избежать повторного расчета уже готовых карт.
Rendered Frame Buffer - при просчете карта отображается во frame buffer, как при обычном рендере. Эта возможность работает только со scanline. Текстура отображается в VFB, разложенная частями по областям текстурных координат. Если текущий назначенный рендер - mental ray, вместо него появляется окно, отображающее состояние выполнения расчетов (progress bar).
Группа Render Settings. Render Settings - позволяет загрузить набор готовых настроек рендеринга. Создание собственных настроек выполняется через панель рендера.
Setup - вызывает панель рендера и позволяет назначить текущий рендер, а также настроить его и сохранить настройки в файл при необходимости.
Network Render - активирует сетевой рендеринг. При запуске расчетов появляется диалоговое окно Network Job Assignment, где и выполняются настройки сетевого рендера.
Секция параметров Objects to Bake Эта секция управляет свойствами запекания объектов - именно здесь определяется, что собственно будем рендерить в текстуру, какой канал будет использоваться для текстурных координат, имена и форматы файлов для создаваемых текстур.
Секция параметров Objects to Bake
В самом верху свитка находится список выбранных для запекания объектов. В списке отображается имя объекта (Name), выбранный канал для текстурных координат объекта (Object Channel) и значение параметра Padding - величины наложения друг на друга краев разных групп текстурных координат при сшивке в пикселах.
Группа Selected Object Settings.
Enable - если галочка установлена в этом боксе, настройки Channel и Padding действительны для отдельного выбранного объекта, нескольких выделенных объектов или для всех подготовленных к запеканию объектов (объектов, настройка запекания текстур для которых была выполнена ранее, но сам рендер еще не выполнялся).
Padding - при рендере в текстуры поверхности объекта должны быть назначены текстурные координаты. Если это не сделано предварительно, то операция может быть выполнена во время запекания при помощи модификатора Automatic Flatten UVs. Этот модификатор представляет собой не что иное, как Unwrap UVW в режиме Flatten Mapping с настройками, задаваемыми в секции Automatic Mapping панели Render To Texture. При проектирование все текстурные координаты разбиваются на группы так, чтобы минимизировать искажения текстур при проецировании. Чтобы сшить такие куски текстурных координат в единую карту без заметных швов и используется параметр Padding. Значение Padding определяет в пикселах величину перекрывания границ отдельных групп текстурных координат при сшивке. Величину Padding нужно увеличивать, если после рендера на запеченной текстуре видны швы.
Группа Projection Mapping. Эта группа предназначена для создания Normal bump map. Normal bump map - новая возможность 3ds max, позволяющая при помощи текстуры детализировать поверхность низкополигонного объекта по образу высокополигонного. Отличается от bump map тем, что позволяет закодировать не только высоты поверхности, но и направления нормалей. Работу с Normal bump map рассмотрим подробнее чуть позже.
Enabled - при создании Normal map будет использован модификатор Projection. Если его отключить, вместо Normal map будет создана обычная карта bump map.
Список Modifier для выбранного в видовом окне объекта показывает список имен уже назначенных ему модификаторов Projection. Пуст, если работа с объектом выполняется впервые.
Средство выбора Pick позволяет выбрать объект - источник высокого разрешения для генерации Normal map, то есть объект, с которого модификатор Projection будет "срисовывать" нормали. Нажатие на Pick отображает окно Select Objects, в котором по имени выбирается источник.
Options - окно свойств модификатора Projection, содержащее различные настройки проекции нормалей в карту. Если в этот момент выбран Individual (в самом низу панели Objects to Bake), настройки действуют на выделенный объект. Если стоит All Selected или All Prepared, настройки применяются ко всем выделенным или всем подготовленным к запеканию объектам.
Галочка в Object Level заставляет 3ds max выполнять проекцию на уровне объекта.
Установка галочки в Sub-Object Levels выполняет проекцию выбранного в настоящий момент подобъекта или их группы.
Put to Baked Material - позволяет выбрать, какая проекция объекта или его подобъектов будет запекаться в текстуру (выбрать можно только одну возможность, другая будет исключена).
Ниже перечисленные опции применимы только в случае, если в текстуру запекаются подобъекты:
Full Size - каждый из выбранных подобъектов будет запекаться в карту заданного размера. Например, если размер карты задан 128х128 и для запекания выбраны четыре грани куба, то каждая грань запекается в текстуру 128х128.
Proportional - заданный размер normal map делится между всеми подобъектами пропорционально. Возвращаясь к предыдущему примеру, четыре грани, если они одинакового размера, будут запечены в карту 128х128, то есть, размеры карты для одной грани составят не более 64х64. Множитель Proportional Multiplier на Geometry Selection модификатора Projection (в стеке объекта) может изменить размер карты проекции, его значения лежат в диапазоне от 0 до 2, 1 стоит по умолчанию.
Full Size и Proportional взаимно исключают друг друга.
Группа Mapping Coordinates. Позволяет определить источник текстурных координат, если они уже есть у объекта, или создать новые текстурные координаты при запекании.
Use Existing Channel, в качестве источника будет использован канал с ранее подготовленными текстурными координатами.
Channel, позволяет выбрать номер канала с готовыми текстурными координатами.
Use Automatic Unwrap позволяет создать набор новых текстурных координат, использует модификатор Unwrap UVW с автоматическим проектированием координат в режиме Flatten Mapping.
Clear Unwrappers - удаляет модификатор Automatic Unwrap из стека объекта, если он был назначен, и удаляет текстурные координаты. Если использовались готовые текстурные координаты, Clear Unwrappers оставляет их неизменными.
Кнопки в самом низу панели Objects to Bake позволяют выбрать, какой объект запекается.
Individual, позволяет выбирать объект индивидуально и устанавливать для него типы карт запекания и целевые слоты для них в новом материале
All Selected отображает список всех выделенных в видовом окне объектов
All Prepared, список объектов для запекания отображает все объекты, у которых атрибуты visible = on, unfrozen = on и есть модификатор Automatic Unwrap в стеке, независимо от того, выделены они или нет в видовом окне
Секция параметров Output В этой секции определяются параметры самих запекаемых.