Видео маппинг, видео перформансы

VJ Софт

Новые возможности Maya 8.5


В данном обзоре рассматриваются некоторые новые возможности вышедшей недавно Autodesk Maya версии 8.5. Не секрет, что основные ожидания этого релиза (как и предыдущего, 8-го) были связаны, в основном, с переходом на mental ray. 3.5. Поэтому, мы оставим пока в стороне все остальное и сосредоточимся на том, что добавилось/изменилось в области рендеринга Maya 8.5.
Начнем с того, что коротко рассмотрим нововведения самого mental ray 3.5.

Новшества mental ray3.5

Обзор новинок удобно разбить по группам логически связанных элементов: final gathering, фотонные карты, шейдера и так далее. Что мы и сделаем и начнем с

Final Gathering,
где появилось следующее:

1. Добавлена новая возможность указания количество fg-точек, которые должны участвовать в интерполяции. До этого их количество неявно определялось значениями FG радиусов (min и max) и варьировалось на трехмерных поверхностях в зависимости от особенностей сцены. Теперь их число можно задать жестко. Тогда, если текущие значения радиусов не способны обеспечить заданное число точек, выполняется процесс релаксации: увеличиваются радиусы и снижаются критерии точности.
Жесткое задание явного число fg-точек для интерполяции помогает значительно уменьшить «мигания» (flickering), возникающие в анимациях. Эта возможность активизируется указанием следующего ключа для рендера mental ray из командной строки:

–finalgather interpolate points int,

Число указываемых точек int должно быть положительным, рекомендованные значения лежат в пределах от 3 до 20. Здесь уместно провести аналогию с фотонными картами, где качество интерполяции освещения можно задавать либо указанием числа собираемых фотонов, либо указанием радиуса площадки сбора.

В результате произошел отказ от указания радиусов интерполяции при ручной настройке качества fg (хотя к этому способу все еще можно вернуться). Вследствие этого видоизменилась логика работы final gathering: теперь он может выполнять расчеты в четырех режимах:
– 3.4, совместимость с fg mental ray 3.4 (указание качества fg при помощи радиусов);
– strict 3.4, аналогичен предыдущему режиму, но обеспечивает более строгую совместимость с mr 3.4;
– automatic, настраивается без указания радиусов, вместо этого указывается accuracy и количество fg-точек для интерполяции (ключ "finalgather points" int, см. выше). Таким образом, в этом режиме число fg-точек для интерполяции неизменно, а радиусы изменяются автоматически на трехмерных поверхностях с тем, чтобы удовлетворить заданному критерию качества;
– multiframe, подобен режиму automatic, но предпринимаются дополнительно меры для устранения эффекта flickering в анимациях.

3. При использовании карт рельефа (bump map) Final gathering рассчитывается на "unbumped" поверхностях, то есть на поверхностях без бампа, который просто добавляется позднее. Это позволяет уменьшить «шум» во вторичном освещении.

4. Добавлена новая настройка –finalgather contrast r g b a,
которая позволяет еще более гибко управлять адаптивностью расстановки (отбора) fg-точек при помощи определения пороговых контрастов для каждого из цветовых каналов r g b a (цветовые каналы и альфа-канал) по отдельности. Механизм действует аналогично контрастам обычного адаптивного сэмплинга: если цвет соседних fg точек отличается на величину, большую той, которая задана порогом контраста, на предварительной стадии расчета вычисляются дополнительные промежуточные fg-точки.

Фотонные карты
1. Оптимизирован код фотонных карт большого размера, что позволило обсчитывать их быстрее.

2. Появилась новая настройка photon merging, которая позволяет указывать максимальное пороговое расстояние для фотонов. Для каждого фотона, когда он попадает на поверхность, выполняется поиск уже имеющихся фотонов на этой поверхности в пределах заданного порогового радиуса. Если такие фотоны имеются, новый фотон не сохраняется в карте, добавляется только его энергия к энергии уже записанного ранее фотона. Таким образом, если два фотона на поверхности оказываются в пределах указанного радиуса (photon merging), в фотонной карте сохраняется не два, о только один из них, но с суммарной энергией, что экономит память при создании фотонной карты. Эта возможность позволяет при необходимости существенно увеличивать максимально возможное число испускаемых фотонов и особенно полезна для расчета вторичного освещения в областях сцен, где плотность фотонов низка (куда фотоны попадают редко).

Rasterizer
Оптимизирован код рендеринга в режиме rasterizer, в результате чего повысилась скорость его работы вплоть до 20% для некоторых случаев. Повышение скорости связано с тем, что rasterizer теперь может обсчитывать не только треугольники, но и четырехугольные полигоны.

Управление памятью
1. Геометрический кэш, или кэширование геометрических данных – новая возможность, которая позволяет mental ray загружать/выгружать геометрические данные по мере необходимости. В более ранних версиях это было невозможно и при рендеринге больших и сложных сцен являлось серьезным препятствием, особенно на 32-битных операционных системах с их относительно (по современным меркам) небольшим количеством доступной памяти. Активизация геометрического кэша осуществляется командой
–reload bytes,
где размер bytes указывает пороговое значение для размера геометрического описания объекта: все объекты, бОльшие по размеру, могут удаляться из памяти и повторно считываться из mi-файла сцены при возникновении необходимости в них (кэшироваться). Рекомендованное значение – 30000, что соответствует объекту из, приблизительно, 1000 вершин. В некоторых случаях геометрическое кэширование невозможно, например, если объект состоит из нескольких слитых отдельных геометрических групп (объект представлен несколькими отдельными объектами).

2. Изменено максимальное значение доступной при рендеринге памяти, принятое по умолчанию: ранее оно было неограниченным, теперь – 1 гигабайт. Ключ -memory n : (в командной строке и Options) позволяет также вручную указать mental ray верхний предел памяти, который он может использовать при рендеринге. При достижении этого порога mr будет пытаться сбросить в кэш данные, не требуемые в данный момент. Если его не указать, часто на 32 битных архитектурах рендеринг прерывается с ошибкой переполнения памяти (“out of memory”), что ранее и происходило, поскольку значение этого ключа по умолчанию устанавливалось в «неограниченно».
Кроме того, введен новый регистровый ключ _MI_REG_MEMORY_LIMIT, с помощью которого можно задать произвольное максимальное пороговое значение используемой памяти. Такой ключ может быть определен в файле настроек rayrc (или для Maya – в maya.rayrc).

Шейдера
1. Библиотека стандартных шейдеров mental ray расширена – добавлен builtin_material, который содержит небольшой набор встроенных простых шейдеров. Этот универсальный шейдер предназначен для настройки сцен, когда быстрота и простота являются превалирующим требованием и обеспечивает минимальный набор средств для определения визуальных свойств объектов.

2. Цветовые параметры шейдеров теперь можно задавать не только в стандартной (и сильно ограниченной) модели RGB, но и в любой другой, например CIE Lab. Кроме того, цвета для шейдеров и источников света можно определять при помощи спектральных характеристик: длины и амплитуды волны. Эти возможности пока не получили интерфейсной и шейдерной поддержки от сторонних разработчиков. Однако, при желании, получить к ним доступ и использовать в практической работе вполне возможно. Наверняка стоит ожидать в скором будущем появления шейдеров материалов и источников света нового типа.

3. Списки источников света теперь можно добавлять прямо в геометрическом описании объектов (light lists in instances). Как известно, для расчетов освещения mental ray необходим список источников света. Ранее такие списки можно было определять только в материальных шейдерах. Теперь это стало возможно сделать прямо в описании объектов, даже если они совсем не имеют материалов. Данная возможность призвана упростить настройку расчетов освещения, поскольку отпадает необходимость по-материального определения, поскольку материалов на одном и том же объекте может быть несколько.
Также добавлена возможность определять и списки источников света для расчета теней в описании геометрии: shadow lists in instances. Такие списки позволяют определить индивидуально для каждого объекта те источники света, для которых будут выполняться расчеты затенения.

4. Поправлен шейдер mib_dielectric из библиотеки базовых шейдеров: откорректирован расчет поглощения (absorption) в прозрачных материалах – теперь в расчетах правильно используется расстояние, которое проходит луч в материале, а не расстояние до камеры, как это было ранее.

Пользовательские (User) Framebuffers
Немаловажный момент, поскольку часто рендеринг выполняется по пассам. Добавлена новая опция "contrast all buffers". Она позволяет выполнять тесты контраста для сэмплов по всем буферам, а не только по основному буферу цвета. Также выполнены некоторые исправления в обработке пользовательских буферов, в частности в сглаживании (фильтрации) цвета.

Из недокументированных особенностей известно, что mental ray имеет некоторую несовместимость с Intel Dual Core системами под управлением Windows XP/2003 из-за особенностей реализации поддержки многопроцессорности на этих операционных системах. В mental ray 3.5 эта несовместимость преодолена.

На этом, пожалуй все, или в основном все, о новых возможностях mr 3.5. Теперь перейдем к Maya 8.5.


Maya 8.5

Новшества в области рендеринга Maya версии 8.5 вполне логично рассматривать, опираясь на информацию о новых возможностях mental ray, описанных выше, поскольку их интеграция и является ключевым моментом.
Сразу хочется отметить, что интеграция mr 3.5 в Maya вызывает некоторое разочарование. Фактически, ни одна из интересных новых возможностей не поддержана в интерфейсе Maya, кроме нового способа настройки расчета FG. Почти все, о чем было написано выше в отношении mental ray, будет вам доступно только при использовании standalone mental ray только при рендеринге через экспорт сцен Maya в mi – формат или посредством специального скрипта m2mr от Павла Ледина (скрипт для рендеринга standalone mental ray из интерфейса Maya).
Что касается настройки качества расчета FG, то соответствующая часть интерфейса renderview выглядит теперь следующим образом:

 
Рис. 01. Интерфейс настройки качества FG
Как видим, появилась возможность настраивать плотность fg-точек (Point Density), количество fg-точек, участвующих в интерполяции (Point Interpolation) и возможность масштабировать интенсивность вклада вторичного освещения при помощи Scale. Теперь основной способ настройки FG – при помощи указания Point Interpolation. Но если есть желание, можно вернуться и к старому способу настройки при помощи радиусов, включив Use Radius Quality Control в Final Gathering Options. В остальном – все как и раньше. Особенно огорчает отсутствие возможности управления адаптивностью расстановки fg-точек при помощи задания цветового контраста.
В остальном – чисто косметические изменения интерфейса, состоящие в перетасовке и перегруппировке старых параметров с целью повышения удобства использования.
Стоит обратить внимание на расширение набора Quality Preset – там появилось несколько новых готовых наборов, которые будут удобны на практике.
Также стоит отметить, что в Maya появились некоторые новые автоматические функции, повышающие эффективность рендеринга как отдельных сцен, так и в пакетном (batch rendering) режиме. Доступ к ним можно получить через меню Render > Render Current frame и Render>Batch Render:

 
Рис. 02. Дополнительные опции рендеринга с mental ray
Увеличено общее максимальное количество возможных потоков обработки данных при рендеринге до 16 и появилась возможность автоматического определения оптимального их количества в Parallelism>Auto Render Threads. В этом режиме программа сама определит требуемое число потоков и учтет имеющееся в системе число процессоров/ядер. При необходимости, автоматический режим можно отключить и устанавливать число потоков вручную.
Здесь же можно указать максимальный предел памяти, используемой при рендере (аналог команды –memory n в mental ray) как вручную, так и позволить программе самой определить правильный оптимум.
Интересная возможность – автоматическое определение размера бакета, который используется при рендере. Хорошо известно, что правильный выбор этого размера может заметно ускорить расчет. Автоматическое определение размера бакета (bucket) избавит вас от необходимости экспериментировать.
Наконец, группа параметров Network позволяет задать сетевой рендеринг как с участием мастер-машины (компьютера, инициировавшего рендеринг), так и без него. Удобно, поскольку в последнем случае компьютер остается свободен для дальнейшей работы со сценой во время выполняющегося рендеринга.

Набор стандартных шейдеров mental ray 3.5 расширен новыми библиотеками, специально разработанными для Maya: архитектурным материалом mia_material (раздел Materials); mia_physicalsun и mia_physicalsky, позволяющими определить в сцене физически корректное освещение от солнца и небесного свода; mia_roundcorners (раздел Textures) – шейдером для скругления углов геометрии; mia_exposure_simple (раздел Lenses) – tone mapping шейдером для конвертирования hdri в RGB изображения обычного динамического диапазона; Volume Fur шейдером для качественного рендера сложносоставных динамических систем (волосы, мех) с mental ray. Все эти шейдеры содержатся в библиотеке architectural.dll, а их декларации – в architectural.mi. Эти файлы уникальны для Maya, что следует иметь ввиду при организации сетевого рендеринга с помощью standalone mental ray, в состав которого они не входят – придется специально позаботится о подключении этих библиотек при необходимости.

Что касается самих шейдеров, то чувствуется «близость» 3ds max: по предназначению и своим возможностям они аналогичны соответствующим шейдерам max. Возможности самих шейдеров довольно хороши. Например, архитектурный материал является сложным и многообразным материалом с богатым набором свойств. Сюда входят размытые отражения и преломления (расчет которых может быть интерполирован), ambient occlusion для детализации мелкой геометрии, по-материальный fg, встроенный bump, анизотропия, BRDF и многое другое.

 
Рис. 03. Интерфейс настроек нового архитектурного материала
Шейдера mia_physicalsun и mia_physicalsky позволяют довольно просто задать экстерьерную систему освещения, интенсивность и цвет солнца и неба которой взаимосвязаны.

 
Рис. 04. mia_physicalsun и mia_physicalsky в действии.
Выбор этого типа освещения доступен в панели Render Settings на закладке Environment.

 
Рис. 05. Physical Sun and Sky
Среди оставшихся новинок стоит отметить возможность запекания текстур в hdr формате, группирования нескольких нод в один контейнер в Hypershade, создание альфа каналов и отраженных normal map при помощи Transfer Map tool,

 
Рис. 06. Группирование нод в Hypershade


Из недокументированных нововведений обнаружены: исправление механизма линкования dll – библиотек шейдеров и подключения соответствующих файлов деклараций при импорте в mi файлы: линкуются и подключаются теперь только те шейдера, которые используются в сцене. Кроме того, в результате «работы над ошибками» теперь стало возможно определить при помощи специальных переменных окружения Maya пути для дополнительных (custom) шейдеров (.dll и .mi), которые будут правильно подключаться в Maya. В совокупности это значительно упрощает организацию сетевого рендеринга с использованием standalone mental ray. В этом смысле идеология сетевого рендеринга стала близка той, что используется в Softimage XSI с ее Workgroup механизмом довольно просто настраивать и удобно использовать.

Итак, если делать выводы, то кроме новых шейдеров, неоспоримым преимуществом Maya 8.5 в области рендеринга был и остается только собственно переход на использование mental ray 3.5. Однако, если мы хотим использовать все то хорошее, что он может предложить, сделать это, по-прежнему, будет возможно только при наличии standalone mental ray в дополнение к самой Maya 8.5.

EventCatalog.ru — всё для организации мероприятий!