- •Часть 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 тенями
- •"Лабораторная крыса"
Окно настроек фотонных карт
Поскольку фотонные карты для каустик-эффектов и глобального освещения обрабатываются по отдельности, их настроечные параметры также разделены. Настройки карт для расчета диффузных переотражений света собраны в группе Global Illumination.
Enable – разрешает или запрещает расчет фотонных карт для GI
Maximum Num. Photons per Sample – количество фотонов, собираемых вблизи каждой точки для оценки ее освещенности по формуле (1)
Maximum Sampling Radius – радиус сбора фотонов для оценки освещения точки поверхности. Радиус сбора фотонов может быть рассчитан автоматически, в этом случае радиус сбора составляет 1/10 радиуса всей сцены. Такой радиус сбора вряд ли это можно считать оптимальным в подавляющем большинстве случаев
Maximum Num. Photons per Sample и Maximum Sampling Radius работают по принципу конкуренции – если одно из условий выполняется раньше, второе игнорируется.
Фотонные карты для расчета каустик-эффектов визуализируются напрямую благодаря тому, что возможно достичь высокой плотности фотонов для небольших участков сцены, где проявляется каустика. Идеология расчета каустик-освещения от фотонов та же – вблизи точек собирается определенное число фотонов, хотя формула несколько отличается от (1), в частности, вводится дополнительный нормализующий коэффициент, позволяющий регулировать резкость или размытость каустики (параметр Filter). В остальном много похожего.
Enable – разрешает или запрещает расчет фотонных карт для каустики
Maximum Num. Photons per Sample – количество фотонов, собираемых вблизи каждой точки для оценки ее каустик-освещенности
Maximum Sampling Radius – максимальный радиус сбора каустик-фотонов
Filter – фильтр, регулирующий четкость каустики. В mr 3.3 появился новый фильтр в дополнение к коническому – Gauss
Opaque Shadow when Caustics are Enabled – еще одна новинка, позволяет включать или отключать прозрачность теней для типа mental ray Shadow Map при расчете каустики. В предыдущих версиях mr расчет каустики делал такие тени непрозрачными без вариантов
Следует иметь ввиду основное отличие фотонных карт GI и каустики. Оно состоит в том, что для фотонных карт GI типа учитываются только диффузные переотражения (рассеяния) фотонов. Для каустики отслеживаются фотоны, которые отражаются и преломляются вблизи идеальных углов (specular и glossy). Но в обоих случаях для фиксации фотонного рассеяния в карте необходимо, чтобы фотон достиг диффузной поверхности. Поэтому каустик-отражения рассчитываются от зеркальных и прозрачных поверхностей для преимущественно диффузных поверхностей, а для GI карт учитываются только диффузно рассеянные фотоны, начиная со второго отскока.
Настройка глубины трассировки для фотонов
Группа Trace Depth (или глубина трассировки фотонов) управляет максимальным количеством и типом столкновений, которые могут испытать фотоны GI и Caustic типа с поверхностями вдоль траектории распространения, и, в конечном итоге, длину траектории фотона. Max Reflections – максимальное число отражений фотона всех типов (т. е. диффузных и зеркальных), Max. Refractions – максимальное число преломлений фотонов прозрачными поверхностями, также в контексте типа фотонной карты – диффузных преломлений для GI и преломлений на идеальные углы для Caustic PM. Max. Depth – суммарное число рассеяний фотона, как отражений так и преломлений. Максимальное число рассеяний фотона не может превышать этой величины, поэтому, если сумма значений Max. Reflections и Max. Refractions больше Max. Depth, тип рассеяния для каждого фотона будет довольно случаен, если в сцене присутствуют как отражающие, так и прозрачные поверхности.
Группа Light Properties также несколько изменила свой вид и свойства, что вызвано нововведениями mr 3.3. Прежде всего, из общих свойств источников света исчезла настройка энергии фотонов. Теперь энергия фотонов должна настраиваться для каждого источника индивидуально. Точнее, для фотометрических источников энергия по умолчанию рассчитывается автоматически, а для всех остальных типов источников света энергию нужно настраивать вручную и индивидуально.
Другое нововведение – максимальное количество излученных источником фотонов подстраивается под заданную величину интенсивности источника. Если интенсивность выше, количество излученных фотонов больше и наоборот. Поэтому, в настройках света рассматриваемой панели говорится об Average, т.е. усредненном числе фотонов для каждого источника. Точное число излученных фотонов определяется с учетом как величины Average GI (Caustic) Photons per Light, так и с учетом интенсивности прямого света, заданное в настройках источника света.
Не следует также забывать и о той особенности mr, что указанное в настройках Average GI (Caustic) Photons per Light количество фотонов определяет число сохраненных в карте фотонов, а не число излученных источником фотонов. Истинное число излученных источником фотонов «подстраивается» так, чтобы в фотонной карте было сохранено указанное число фотонов с учетом заданной глубины трассировки. Истинное число излученных источником фотонов, а также, фактическое число сохраненных в картах фотонов можно узнать только из лога mental ray (информационное окно Rendering>mental ray message window).
Таким образом, фотонная эмиссия (распределение потока фотонов в зависимости от типа и количество фотонов в зависимости от интенсивности) теперь в 3ds max могут настраиваться автоматически, чтобы обеспечить наилучший результат освещения с настройками по умолчанию. А вот энергию фотонов обязательно нужно настраивать для нефотометрических источников света.
Продолжая разговор о новшествах mr 3.3 и 3ds max 7 следует также отметить следующие из них:
улучшен расчет GI для стандартных материалов, он стал более аккуратен и основывается на цвете, свойствах отражения, прозрачности и tranclucency материала;
переработан Logarithmic Exposure Control (логарифмический контроль экспозиции освещения) и Pseudo Color Exposure Control, они теперь полностью совместимы с mr;
вывод рендера в файл типа HDRI также переработан и улучшен, данные файла теперь являются физически полностью корректными величинами и даже могут быть использованы для анализа величин освещения. Это радует, поскольку HDRI-вывод представляет реальную и корректную альтернативу управления экспозицией освещения при помощи Logarithmic Exposure Control – выводим рендер в HDRI формате и правим динамический диапазон освещения в HDRIShop.
Расчет GI только с фотонной картой. Размер карты около 25 миллионов фотонов, для оценки освещенности точек используется 11000 фотонов, собираемых с площадки радиусом не более 30 см. Размер фотонной карты максимален для расчета освещенности данной сцены под Windows XP
Final Gathering
Метод фотонных карт хотя и позволяет рассчитывать освещение физически корректно, очень редко может быть использован самостоятельно. Вызвано это тем, что для получения гладкого рендера требуется сохранить огромное число фотонов в карте, что далеко не всегда возможно из-за ограничений на память. Кроме того, расчет при помощи фотонных карт порождает нежелательный визуальный эффект, известный как «потемнение углов». Поэтому на практике для расчета вторичной освещенности трехмерной сцены в подавляющем большинстве случаев используется сочетание метода фотонных карт и метода Final Gathering (FG).
Final Gathering в переводе означает нечто вроде "окончательного сбора", что достаточно точно соответствует сути метода и его месту в арсенале средств расчета. Математически FG представляет собой не что иное, как метод Монте-Карло, используемый для численного интегрирования уравнений освещенности.
FG позволяет точно посчитать освещение практически для любых условий, но требует для расчетов гораздо больше времени, чем метод фотонных карт и, к тому же, его использование довольно затруднительно для просчета такого эффекта, как каустика или для многократных диффузных переотражений. Поэтому, в mental ray FG используется как "финишное" средство для расчета наиболее значимых по вкладу вторичных переотражений – первого отскока переотражений света поверхностями объектов.
Таким образом, общая схема расчета освещения в mental ray состоит из расчета прямого освещения, расчета зеркальных отражений и преломлений методом рейтресинга, расчета первого отскока вторичных переотражений методом FG и расчета остальных переотражений методом фотонных карт.
FG обладает двумя важными особенностями.
Во-первых, расчет освещения методом FG выполняется не для всех видимых в камеру точек поверхностей, а только для некоторых, так называемых FG-точек, выбранных по определенному правилу. Для остальных точек освещение не рассчитывается, а интерполируется по рассчитанным освещенностям ближайших FG-точек. В этом смысле FG является просто способом ускорить расчет освещения методом Монте-Карло.
Во-вторых, Final Gathering рассчитывает не все диффузные вторичные отражения, а только первый отскок – когда свет однократно отразившись от какой-либо поверхности попадает в точку, видимую из камеры. Вторичные диффузные отражения света со второго отскока и выше FG не учитывает (не рассчитывает). FG может рассчитывать зеркальные отражения и преломления на произвольную, задаваемую в настройках рендера, глубину, если материал поверхности обладает ненулевыми свойствами зеркального отражения и преломления. Таким образом, если материал поверхности является чисто диффузным, FG должен использовать фотонную карту.
Поэтому, FG самостоятельно может использоваться для расчета вторичного освещения только в открытых, "экстерьерных" сценах и в этом случае дает наилучший результат при совместном использовании с HDRI в качестве карты освещения. Во всех остальных случаях FG должен использоваться в сочетании с фотонными картами, иначе рассчитанное освещение будет, как правило, излишне темным.
Совместная работа FG и фотонных карт происходит по следующему сценарию. Первый вторичный отскок рассчитывается точно методом FG для выбранных точек. При этом сэмплирующие лучи (FG-лучи), используемые для расчета интеграла освещения точки, трассируются до первого пересечения с ближайшей поверхностью. В точке пересечения рассчитывается прямая освещенность точки, это и определяет величину вклада первого вторичного отскока, а дополнительная освещенность от всех остальных отскоков оценивается по фотонной карте вблизи координаты рассматриваемой точки. Без фотонных карт, в точке пересечения сэмплирующего луча рассчитывается только прямое освещение и для чисто диффузных поверхностей трассировка обрывается, а для поверхностей с ненулевыми свойствами зеркальных отражений и/или преломлений может выполняться дальнейшая трассировка в соответствии с заданными настройками глубины трассировки FG-лучей.
Таким образом, для расчета вторичного освещения комбинированным способом «фотонная карта + FG» требуется настроить как параметры фотонных карт, так и параметры FG.
С настройкой фотонных карт мы уже разобрались, их можно и нужно выполнять отдельно и сохранять фотонную карту в файл для последующего расчета совместно с FG. Эффективная настройка параметров FG требует некоторого понимания алгоритма и сути Final Gathering.
В самом общем виде алгоритм расчетов FG включает следующие этапы.