
- •Часть 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 тенями
- •"Лабораторная крыса"
Интерфейс шейдера Ambient/Reflective Occlusion в 3ds max
Параметр Samples определяет число лучей, "выстреливаемых" из точки через поверхность сферического сегмента в окружающую сцену. Чем больше лучей, тем более гладким будет результат. На гладкость результата оказывают также влияние настройки антиалиасинга и величина параметра Spread (угол сферического сегмента, через который посылаются лучи).
Параметр Bright позволяет определить цвет для незаблокированных лучей (лучей, не встретивших препятствий при трассировке в сцене), а параметр Dark – цвет для лучей, встретивших препятствие. Наиболее часто используемое практическое значение величины Dark – черный цвет. Результирующий цвет точки определяется как отношение числа заблокированных лучей к общему числу испущенных лучей и с учетом значений цвета, заданных для Bright и Dark. Для определения значений Bright и Dark можно использовать не только простой цвет, но и растровые карты, шейдеры и материалы.
Параметр Spread определяет угловую величину сферического сегмента точки поверхности, через который посылаются сэмплирующие лучи. Изменяется в пределах от 0.0 до 1.0. Значение "0" определяет только одно направление испускания (один луч) – вдоль нормали к точке или вдоль направления отражения, что используется для reflective occlusion. Значение "1" определяет полусферу (угловая величина 180 градусов). Чем больше угловая величина сферического сегмента, тем больше потребуется лучей для получения гладкого результата. С другой стороны, чем уже конус лучей, тем более резко очерченными будут теневые переходы и наоборот. Использование целой полусферы дает интересный эффект самозатенения поверхностей, что с успехом может быть использовано для "проявления" рельефа поверхности или оттенения деталей поверхностей, содержащих многочисленные мелкие элементы – травы, волос и т.п.
Параметр Max distance указывает максимальную длину сэмплирующего луча и тем самым – максимальное расстояние в пределах которого проверяется наличие геометрии. Если его значение равно 0, границы области проверки определяются размерами сцены. Таким образом, явное указание Max distance может быть использовано для ускорения расчетов ambient occlusion.
Включение/выключение флага Reflective определяет направление, относительно которого строится сферический сегмент для испускания лучей. Если флаг установлен (Reflective on) сфера строится относительно направления отражения света, определяемого свойствами материала и геометрии поверхности. Используется для расчета reflective occlusion. Если флаг отключен (Reflective off), сфера строится относительно нормали в точке поверхности, шейдер рассчитывает ambient occlusion.
Параметр Type (output_mode) определяет режим, в котором работает шейдер: 0 – стандартный ambient occlusion, 1 – шейдер работает как и в режиме "0", но дополнительно выполняется сэмплирование Environment: в направлениях сэмплирующих лучей производится выборка цвета из карт, заданных для environment, и для каждого цвета рассчитывается весовой коэффициент в зависимости от того, заблокировано данное направление геометрией или нет. Затем все цвета суммируются с учетом их весовых коэффициентов, умножаются на цвет, заданный в Bright и суммируются с цветом Dark. Поскольку направления сэмплирующих лучей довольно случайны, получаемые из растровых карт окружения цвета могут сильно отличаться между собой. Это особенно актуально, если в качестве карты используется HDRI – приводит к более сильной, относительно "чистого" цвета, зашумленности изображений и потому требует бОльшего количества сэмплирующих лучей для получения результата той же степени гладкости. Одним из способов преодоления этого недостатка является сильное размывание карт фильтром Gaussian Blur в программах обработки изображений, например – Adobe Photoshop для LDRI или HDRShop для HDRI. Другой способ – использовать процедурные карты окружения, например -– Gradient и Gradient Ramp.
Type = 2 предназначен для расчета направлений "искривления" нормалей поверхностей. При Вычисляется усредненное значение незаблокированной нормали в пространстве мировых координат и относительно него вычисляются отклонения всех остальных нормалей в зависимости от их заблокированности. Такие отклонения кодируется цветом, красный цвет характеризует величину отклонения по мировой оси координат x, зеленый – по оси y и синий – z. Type = 3 делает тоже самое , но в координатном пространстве камеры. Последние два режима предназначены для использования во внешних программах компоузинга и пост-обработки. Прием довольно часто используется в кинопроизводстве для изменения свойств освещения.
Если параметр Return occlusion in alpha установлен в положение "on", создается растровая черно-белая карта значений ambient occlusion, которая помещается в альфа-канал изображения. Результат расчетов будет зависеть от установленного режима работы шейдера (значения параметра Type).
Теперь попробуем применить все это на практике. Рассмотрим вот такую сцену: