Maxwell Render: натуральный продукт

Введение

В данный момент почти все визуализаторы для 3D Studio Max оперируют для расчета изображения "фотонами" — порциями световой энергии. Однако с точки зрения человека, имеющего хоть какое-то образование, это не совсем верно. Все мы прекрасно (я надеюсь) знаем о корпускулярно-волновой теории света, в которой свет рассматривается и с волновой точки зрения, которая и не учитывается в большинстве случаев. А это означает то, что при использовании фотонов такие эффекты, как дисперсия, дифракция и интерференция света, становятся для нас недостижимыми… Конечно, можно попытаться реализовать это фейком, но результат не всегда будет соответствовать реальности, да и чувство обделенности не добавит комфорта. Однако на просторах Интернета появился он…

Maxwell Render

Maxwell Render (далее MR — не путать с Mental Ray — о нем мы говорить не будем) — один из первых рендеров, который оперирует со светом с точки зрения волновой теории света. Это значит, что все операции со светом будут происходить с учетом длины волны луча, что открывает широкий простор для деятельности. Другая особенность — способ рендеринга. В отличие от остальных рендеров, которые предоставляют нам конечный результат через определенный промежуток времени, и до конца визуализации мы не можем точно сказать, как будет выглядеть изображение в том или ином участке, MR в любой момент может предоставить нам картинку максимального (для прошедшего времени) качества. Этот способ просчета назван разработчиками Объективным Рендерингом. Также стоит отметить возможность во время рендеринга регулировать такие параметры камеры, как чувствительность пленки, время выдержки, и наблюдать эффект от их применения сразу же. А теперь обо всем поподробнее.

И еще раз вводная…

MR — разработка команды Next Limit. Вот имена ее создателей: Victor Gonzalez, Oscar Cano, Ignacio Vargas. В данный момент релиз еще не произведен, а в Сети плавают несколько релиз-кандидатов и несколько бета-версий. На момент написания данного материала последней версией MR является 1.2.2 бета (ее я и буду рассматривать). Устанавливается MR в виде отдельной программы, и, если не использовать специальный плагин к 3DS, то для рендеринга сцены необходимо будет конвертировать сцену в специальный формат и затем запускать рендеринг этого файла в установленной программе. Причем делать это придется через консоль (линуксоиды улыбаются…). Для избавления от лишних действий и будет использоваться специальный коннектор, в котором можно задать настройки рендера (там же, где и настройки всех остальных рендеров: F10 -> Renderer) и дополнительные консольные команды.

Приступая к работе…

…необходимо помнить, что MR работает только со своими камерами и не понимает никаких источников света. Итак, для начала разберем эти два нюанса.
Камера

Камера (при установленном коннекторе для 3DS) создается аналогично стандартной камере. У камеры MR есть пара настроек, которые отличают ее от стандартной — fStop (отношение расстояния между объективом и светоприемником к диаметру открытого отверстия диафрагмы) и Shutter speed (время выдержки). Настройки глубины резкости DoF отсутствуют, и степень размытия зависит (как уже поняли люди, знакомые с фотографией) от параметра fStop: чем сильнее открыта диафрагма, тем более размытыми выйдут объекты вне фокуса камеры. Значение 1 соответствует максимально открытой диафрагме и минимальному расстоянию от линзы до сенсора, а 50 — максимально закрытой диафрагме и максимальному удалению сенсора от объектива. Кроме того, чем больше открыта диафрагма, тем больше света поступает и тем более светлым выходит изображение. Освещенность зависит также от времени выдержки, но, кроме того, время выдержки отвечает и за реализацию эффекта размытия движущихся объектов. В целом максвелловская камера максимально пытается имитировать работу камеры цифровой (что удается довольно хорошо — иногда заметен эффект виньетирования, который является недостатком, но в CG только добавляет реалистичности).

Эти два изображения наглядно показывают разницу при использовании различного значения времени выдержки при рендере движущихся объектов О зависимостях настроек выдержки и диафрагмы сказано немало, особенно в литературе, посвященной профессиональной фотографии, поэтому мы перейдем дальше.

Свет

Никаких источников света MR не понимает. Что же делать? В MR для освещения сцены можно использовать несколько вариантов. Вариант №1 — использование объектов с присвоенным материалом Maxwell Emitter. Данный материал практически идентичен виреевскому VRLightMtl. Для более быстрого просчета сцены желательно использовать в качестве эмиттера объект с наименьшим количеством полигонов, в идеале — просто единичный полигон. Используя эмиттер, можно повторить любой существующий светильник. Сначала следует создать отражатель светильника (если это фара автомобиля или фонарик), смоделировать сам источник света (например, нить накаливания, но можно просто обойтись вытянутым боксом), и все — источник света готов. Именно высокая физическая корректность MR нам это позволяет.

Сцена, освещенная примитивом Box

Вариант №2 — использование Sky Dome. Чтобы включить расчет освещения от "небесного свода", необходимо зайти в настройки MR (кнопка F10) и там в свитке Environment поставить галочку на Enable и при необходимости выбрать цвет и интенсивность свечения небесного свода. Однако стоит заметить, что освещение с использованием Sky Dome не очень реалистично, гораздо лучше использовать…

Сцена, освещенная с помощью Sky Dome

Вариант №3 — использование Physical Sky. В одном свитке со Sky Dome расположена группа Physical Sky. Активирование ее приводит к просчету освещения от физически корректного неба. В этой группе расположены следующие настройки:

. Enable — активирует просчет от неба в соответствии с настройками, определенными ниже.
. Use Sun Light — активирует просчет прямого солнечного света. Без активации этого параметра освещение будет подобно Sky Dome.
. Coordinates — географические координаты сцены относительно широты и долготы земного шара. Также имеется возможность выбрать город из выпадающего списка. Список городов невелик, однако он будет пополняться. Хотелось бы иметь возможность сохранять введенные координаты. . Turbidity — туманность атмосферы. Ozone — плотность озонового слоя. Water — плотность испарения атмосферы. Эти три параметра, по идее, должны совокупно влиять на цвет неба, интенсивность света, однако их влияние не очень значительно.
. Date and Time — в этой группе можно указать время суток, дату и смещение по Гринвичу (например, Нью-Йорк смещен относительно Гринвича на -6, Мадрид — на +1).
. Fog options — в этой группе находятся две настройки, отвечающие за просчет тумана в сцене. Adsorption отвечает за поглощение света туманом, а Scattering — за рассеивание света частицами воздуха.

Сцена, освещенная с использованием Physical Sky

Материалы

Теперь, разобравшись с основами рендеринга в MR, перейдем к материалам. Стоит заметить, что в редакторе материалов MR материалы не отображает — только черные квадраты. Однако, так как все материалы соответствуют своим реальным прототипам, создание новых не составляет проблемы и "вслепую". После установки MR нам станут доступными для использования следующие материалы.

Maxwell Dielectric

Этот материал имитирует физические свойства реальных диэлектриков — с его помощью создаются стекла, кристаллы и проч. Из выпадающего списка можно выбрать реально существующее стекло, пластик или кристалл. При необходимости есть возможность отрегулировать настройки под конкретный случай. Настроек не так много, чтобы в них потеряться. Однако одна настройка, вероятно, будет незнакома многим — Abbe number. Люди, знакомые с оптикой, знают, что она отвечает за степень дисперсии: чем больше ее значение — тем больше разница в отклонении лучей с разной длиной волны при их преломлении неоднородными средами. Однако в MR почему-то не совсем так. Изменяя значение Abbe от 0 до 200, мы получаем максимальный разброс при числах, близких к 0 (при 0 материал теряет прозрачность), и отсутствие дисперсии при 200. Материал рассчитывается с такой точностью, что создание сложных оптических эффектов сводится лишь к правильному моделированию сцены. Параметры u Roughness и v Roughness отвечают за гладкость поверхности в двух направлениях (для проявления анизотропных свойств).

Стекловолокно

Maxwell Diffuse

Maxwell Diffuse по своей сути является аналогом материала Standard, но с меньшим количеством настроек: имеется возможность выбрать диффузный цвет, настройки рассеивания (аналоги BSDF в стандартном материале 3dsMax и BRDF в материале рендера Vray), а также 4 карты: диффузного цвета, высот, интенсивности отражения и некоего аналога карты Opacity — Clipmap. В эту карту загружается черно-белое изображение, по которому из геометрии вырезаются белые участки.

Maxwell Emitter

Об этом материале я немного рассказал выше. Необходимо сказать пару слов о выпадающем списке Illuminant и параметрах в группе Light Color. В списке Illuminant мы можем выбрать спектр свечения источника (помним о том, что MR оперирует волнами). Список спектральных типов немножко отличается от приведенного в справке. Я приведу данные из справки, так как там более расширенная база:

. A-тип источника представляет собой низкотемпературное свечение (до 2856 Кельвин). Предназначен для использования при создании свечек, лампочек.
. B-тип источника является солнечным светом температуры 4874 К. Используется для создания прямого солнечного света в условиях слабого влияния атмосферы (космос, высокогорье).
. C-тип — стандартный дневной свет температуры 6774 К. Используется для создания очень яркого солнечного света.
. D-тип — Daylight — дневной свет определенной температуры, которая указывается в сотнях Кельвин после буквы (D50 — 5000 К, D65 — 6500 К). . F-тип — люминесцентное свечение. Люминесцентному источнику с температурой 4200 К соответствует тип CoolWhite.

Далее стоит сказать о том, что интенсивность светимости зависит от двух параметров: Intensity и Units. Первый задает численное значение величины, указанной вторым. Учтите, что, если указана просто мощность свечения, то интенсивность свечения будет зависеть от размера источника — чем он больше, тем меньше его яркость, но количество света остается постоянным. Если интенсивность задана в единицах на меру площади, тогда яркость тела не зависит от его размеров.

Maxwell Metal

Хорошего качества металлы, без обилия настроек. Можно выбрать несколько реальных металлов из списка.

Maxwell Plastic

Приятный весьма реалистичный пластик. Тут тоже ничего сложного — все настройки знакомы.

Всякое разное

У человека, только что начавшего разбираться в MR, возникнет множество вопросов и непоняток, очевидных для более-менее опытного пользователя, которые я сейчас попытаюсь разрешить. Некоторые объясняются недоделанностью бета-версии, некоторые — особенностями MR.

Maxwell Viewer и процесс рендеринга

При рендеринге сцены с помощью коннектора мы избавляемся от большого количества рутинной работы, так как MR не работает со сценой Макса напрямую. Для рендеринга сцена должна быть преобразована в формат .mxs. Это можно сделать вручную, прописав в параметрах MXCL (Maxwell Command Line, mxcl.exe в папке установленной программы) команду

-mxs:адрес_файла

MR не работает с FrameBuffer Макса — для вывода изображения рендеринга используется Maxwell Viewer.

Отображение процесса рендеринга в Maxwell Viewer

Вверху окна отображается прогресс рендеринга. Это зависит от заданного максимального времени (по умолчанию — 20 мин) и от максимального сэмплирования (по умолчанию — 25). При достижении максимального количества сэмплов или по истечении заданного времени рендеринг останавливается. Я бы советовал устанавливать максимальное количество сэмплов и максимальное время рендеринга, так как двадцати минут не всегда хватает, а как только результат вам понравится, вы сможете остановить рендеринг. Снизу расположены 4 закладки. Первая — Console — отображает сообщения консоли: прошедшее и заданное время, текущее количество просчитанных сэмплов. Вторая — Scene Data — отображает статистику сцены: сколько вершин, нормалей и т.д. Третья — Render Options — содержит настройки изображения. В группе Tone Mapping можно отрегулировать гамму изображения и параметр Burn, чем-то аналогичный контрастности. Группа Other содержит довольно полезные настройки чувствительности пленки (Film ISO) и времени выдержки (Shutter Speed). Результат изменения этих настроек виден рядом на картинке предварительного просмотра, а на изображении отобразится при выводе следующего сэмпла. ПРИМЕЧАНИЕ: если вам кажется, что сцене не хватает света или, наоборот, сцена пересвечена, не спешите регулировать яркость источников света — сначала попробуйте отрегулировать указанные чуть выше параметры.




Одна и та же сцена, но с использованием различных значений времени выдержки и чувствительности пленки


Текстуры

MR не поддерживает НИ ОДНОЙ процедурной карты, также не поддерживается тайлинг (однако его поддержку скоро собираются ввести). По этой причине, если вы хотите получить предсказуемый результат, то ВСЕГДА используйте модификаторы UVW — в простейшем случае — UVW Map.

HDRI

Отсутствие HDRI в явном виде озадачит многих, однако для MR в качестве HDRI используется свой формат изображения .mxi. Для конвертации имеющегося изображения в формат .mxi надо открыть Maxwell Viewer, выбрать File > Load Image (File > Load HDR), затем отрегулировать настройки в ранее недоступной закладке Image/MXI, затем выбрать File > Save MXI. В материале Maxwell Emitter есть слот для MXI карты — в ней выбираем НЕ Bitmap, а MXI Texture и указываем нужный .mxi-файл. Всю сцену помещаем в сферу, применяем модификатор Normal и присваиваем этой сфере материал эмиттера с картой MXI.

Анимация

Чтобы создать последовательность кадров для анимации, необходимо сделать следующее. Устанавливаем необходимое количество сэмплов, время загоняем на максимум (кадры будут меняться при достижении заданного количества сэмплов). Устанавливаем в Common Parameters диапазон кадров для анимации, указываем в настройках MR путь для последовательности .mxs-файлов (по одному на каждый файл), путь для вывода изображений — кнопки Output mxs file и Output sequence соответственно в свитке System. Далее жмем Render и ждем.

Каустика и дисперсия

По непонятным причинам просчет каустики и дисперсии отключен. Чтобы его включить, в свитке Caustic Layer отмечаем все пункты галочками.

Несколько замечаний и предостережений

Волновая природа MR дает доступ к замечательным эффектам, но ее реализация пока оставляет желать лучшего. При пропускании солнечного света через призму было замечено, что белый свет в MR представлен дискретным спектром. Также возникают неоднозначности при переводе RGB-цвета в волну. Например, фиолетовый цвет может быть как монохромным, так и сложным (красный+зеленый), и отсутствие возможности указать монохромный цвет в виде длины волны сильно ограничивает полет фантазии. Будем надеяться, что в следующих версиях MR даст нам возможность не только выбирать монохромный цвет в виде длины волны и комбинировать их, но и возможность выбрать спектры свечения и поглощения различных веществ. Также хотелось бы иметь возможность указывать, когерентен ли источник. Для исключения артефактов при создании стекла надо учесть, что нельзя допускать соприкосновения сеток стеклянного объекта с другими, так как это приведет к появлению черных пятен, которые уже не исчезнут. Приближать сетки можно максимально, но НЕ ДОПУСКАТЬ ИХ КАСАНИЯ ИЛИ ПЕРЕСЕЧЕНИЯ. Как вы уже могли заметить, MR весьма шумит при малых значениях сэмплов, а после 20-30 сэмплов разница в улучшении качества практически не видна. Если вам необходимо получить чистое изображение, быстрее будет не ждать просчета 40-50 сэмплов, а просчитать сэмплов 20-30, но при разрешении в 3-4 раза больше необходимого затем уменьшить изображение в PhotoShop. Обязательно следите за параметром Scene Scale в свитке System настроек рендера! Именно указание правильного масштаба даст вам правильную мягкость теней от солнца, предсказуемую интенсивность источников света и избавит от многих неприятностей.

Вместо заключения

Совсем недавно NextLimit выложили в сеть ролик, показывающий нечто умопомрачительное. Отрендеренную картинку в Maxwell Viewer (уже немного измененный) загружали и там (уже на готовой картинке!!!) регулировали интенсивность источников света и их количество — включали и выключали эмиттеры, небо и солнце… Выглядит впечатляюще, но в принципе этого можно достигнуть с помощью рендеринга каждого источника света в отдельный слой и последующего комбинирования их в PhotoShop. Однако реализация этого NextLimit'ом заставляет челюсть валяться под столом, так как они заявили, что количество эмиттеров не влияет на скорость рендеринга (в новой версии рендера). Взглянем на это скептически, но заявление разработчиков из GSC, которым также уже количество источников света в сцене не важно, вселяет веру в чудо.

Итак, пожелаем команде NextLimit удачи. А еще - не только находить революционные новшества, но и удачно их реализовывать.

AzaZeo AinAmart, azazeo@ainamart@gmail.com


Компьютерная газета. Статья была опубликована в номере 10 за 2006 год в рубрике софт

©1997-2024 Компьютерная газета