- •Часть 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 тенями
- •"Лабораторная крыса"
3. Рендеринг
На этом этапе выполняется испускание лучей из камеры и трассирование их до первого пересечения с поверхностью. В точке пересечения выполняется расчет прямого освещения точки, зеркальных относительно камеры преломлений и отражений (рейтресинг) и расчет вторичного освещения методом FG + фотонные карты. При этом вторичная освещенность большинства точек не рассчитывается, а интерполируется по рассчитанным на предыдущей стадии FG - точкам. Здесь в игру вступают такие настроечные параметры FG - расчета, как Final Gather Radius и Min. Radius.
Основное назначение параметра Radius – задать предельный (максимальный) радиус, в пределах которого будет происходить поиск FG - точек для интерполяции на этапе рендеринга, и тем самым – определить число FG - точек, участвующих в интерполяции. Далеко не все FG- точки, попадающие в пределы Radius, будут использованы, а только те из них, чьи радиусы влияния содержат данную точку, или другими словами, для которых ошибка интерполяции не превысит заданную величину. Поэтому, при увеличении Radius, увеличение числа FG - точек, участвующих в интерполяции, будет происходить лишь до некоторого предельного значения. Размывания интерполируемой освещенности точки с увеличением радиуса не происходит, поскольку вклад от FG - точек зависит от их расстояния до интерполируемой точки, чем больше расстояние, тем меньше вклад.
Таким образом, увеличение Radius может приводить к повышению качества расчетов за счет увеличения количества участвующих в интерполяции FG-точек, но лишь до определенной степени. После некоторого предельного значения Radius качество интерполяции остается практически неизменным. По умолчанию, в mental ray величина Radius принята приблизительно как 1/10 величины радиуса сферы, охватывающей всю сцену.
С другой стороны, стремление разработчиков упростить рабочий интерфейс mental ray привело к тому, что Radius имеет и второе, не менее важное, назначение – его величина имеет самое прямое отношение к изменению плотности FG-точек. Чем больше Radius, тем меньше плотность FG - точек и наоборот.
Mental ray учитывает величину Radius на предварительной стадии, когда происходит отбор FG-точек. Если радиус излишне мал, он пытается увеличить плотность FG - точек так, чтобы в его пределах для любой видимой точки поверхности всегда оказалось хотя бы несколько FG-точек для интерполяции.
Таким образом, настраивая Radius, мы вынуждены балансировать между двумя противоположными возможностями. Увеличение Radius повышает качество интерполяции, но уменьшает плотность FG-точек. Уменьшение Radius повышает плотность FG-точек, но уменьшает количество точек, участвующих в интерполяции.
Хорошим инструментом для определения оптимального радиуса может быть диагностический рендер, визуально показывающий распределение плотности FG- точек, а также – информация из лога mr.
Есть сведения, что в следующей версии mental ray 3.4 функции параметра Radius будут разделены при помощи введения двух новых независимых настроечных параметров.
Min. radius принудительно заставляет mental ray использовать все FG - точки, которые попадают в его пределы. Регулируя Min. Radius можно до некоторой степени управлять сглаживанием освещения.
Хотя на предварительном этапе проводится серьезная работа по отбору и расчету FG-точек, далеко не все видимые в камеру точки поверхностей трехмерных объектов могут быть интерполированы по ним на этапе рендеринга. Все точки, которые рассчитываются методом Монте-Карло на этапе рендера, на диагностическом рендере показываются красным цветом. Основная причина возникновения такой ситуации – близость некоторых точек к границе объекта: если точка попадает достаточно близко к границе объекта, для нее может не найтись FG- точек для интерполяции, поскольку зона поиска "обрезается" границей поверхности.
Таким образом, настройка FG-расчета сводится, в основном, к настройке величин Samples и Radius. При этом рекомендуется использовать диагностический рендер для анализа распределения FG-точек. Правильная величина параметра Radius должна давать адаптивную картину распределения FG-точек – их плотность должна быть выше в тех местах сцены, где освещение меняется быстрее, а "красные" FG-точки должны быть преимущественно вблизи краев объектов.