воскресенье, 24 июня 2012 г.

mental ray Standalone | Экспорт данных из 3D приложений

После публикации поста «mental ray Standalone | Первое знакомство», меня сразу стали просить написать подробнее о возможностях mental ray Standalone и вообще о Standalone версиях визуализаторов. Ну, коль пошла такая пьянка, мы сегодня поговорим об инструментах экспорта данных из 3D приложений в нативный формат данных mental ray - .mi.

Сразу хочу предупредить, что здесь, мы рассмотрим два пакета – Autodesk 3ds Max и Autodesk Maya. Все что описано в этом посте, актуально для 2011 - 2013 версии этих пакетов. Но начнем мы с общего представления о применении mental ray standalone в производственном конвейере.

Примерно два года назад, я проводил небольшой вебинар по технологиям визуализации и по применению mental ray в среде 3ds Max и Maya. Вебинар конечно был так себе :), но то, что было тогда сделано, сейчас очень актуально, т.к. пакеты 3D графики стали претерпевать ряд изменений и особенно эти изменения затронули 3ds Max.

На представленном ниже слайде, показана общая схема передачи данных из DCC приложений Autodesk в mental ray Standalone.
Общий конвейер передачи данных из пакетов Autodesk в mental ray Standalone и «звездочка» поддерживаемых направлений.
Из всей кажущейся сложности всего процесса работы со Standalone версией mental ray, можно заметить, что все сводится к достаточно простой схеме, которая содержит основные этапы. Конечно же, все начинается с вашего 3D пакета, в нем вы создаете сцену (модели, освещение, камеры, шейдеры, производите анимацию и настраиваете рендерер). Помимо этого, подключаете шейдеры, которые вам необходимы в работе или создаете их с помощью MetaSL. Раньше для MetaSL был доступен mental mill, но сейчас он почил в небытие и его дальнейшая судьба неизвестна, но, все возможности MetaSL, сейчас доступны прямо в интерфейсе 3ds Max и Slate Material Editor.

После всех произведённых действий над сценой и завершения работы над геометрией, вы можете приступать к экспорту сцены в формат описания сцены mental ray - .mi. После того, как сцена будет экспортирована в формат .mi, вы можете в полной мере воспользоваться возможностями системы визуализации mental ray. И здесь стоит отдельно заметить, что при работе с разными пакетами, вы можете использовать шейдеры не только из того пакета в котором вы создали модель и сцену, но и из других, что явно просто так в рамках интерфейса и самой программы не сделать. Помимо этого, вам будут доступны все возможности как шейдеров так и технологий визуализации, скрытые или не реализованные до этого в интерфейсе приложений, таких как 3ds Max или Maya.

Конечно, не стоит обойти вниманием тот факт, что Standalone версия поддерживает работу на всех доступных платформах – Windows, Linux и Mac OS X и является отличным вариантом для создания небольшой фермы визуализации под управлением Linux или Windows.

Теперь можно поговорить непосредственно об инструментах экспорта сцен в формат .mi. В 3ds Max и Maya, реализован разный подход к настройке сцены и экспорту ее в формат .mi.

Экспорт сцены в формат .mi из Autodesk 3ds Max

Последнее время, 3ds Max идет путем по максимальному упрощению настроек всего и вся, так сказать «кнопка сделать красиво». При этом, многие профессиональные пользователи, кто работает с mental ray часто ругают Autodesk за чрезмерное упрощение интерфейса и в отсутствии добавления новых функций, которые могут потребоваться при визуализации.

В mental ray for 3ds Max, экспорт данных также не отличается широким набором функций. Он максимально прост, из-за чего иногда могут быть отправлены масса ненужных данных или далеко не все данные сцены. Доступ к функции экспорта в .mi, из 3ds Max, реализован в диалоговом окне Render Setup, во вкладке Processing, визуализатора mental ray.
Параметры экспорта сцены в формат .mi из 3ds Max Design 2013 (3ds Max 2013).
В свитке Translator Options, в группе Export to .mi File вы можете настроить экспорт в формат данных mental ray.

Export on Renderer – Когда активен этот параметр, сцена экспортируется в .mi файл при нажатии кнопки Render. По умолчанию опция неактивна.

Un-compressed – Когда активен, файл .mi не будет подвергаться компрессии. Когда этот параметр неактивен, файл .mi будет экспортироваться с компрессией, что не лучшим образом подходит для дальнейшего редактирования или внесения изменений.

Incremental (Single File) – этот параметр, позволяет указать как будет экспортирована анимация в формат .mi. Если он активен, то все изменения создаваемые во время анимации, будут сохранены в едином файле. Если этот параметр отключен, то все изменения в анимации, будут записаны отдельных файлах для каждого кадра.

[…] – с помощью этой кнопки, вы можете указать, куда будет сохранен файл .mi и делает активными рассмотренные выше параметры экспорта.

Остальные параметры свитка Translator Options, также могут оказывать влияние на данные, экспортируемые из 3ds Max в .mi формат. О них мы погорим в следующих постах.

Все что вы настроите в диалоговом окне Render Scene, будет экспортировано в .mi и далее, вы можете просто вручную отредактировать файл или указать особые параметры при экспорте.
Файл сцены в формате .mi после экспорта из 3ds Max Design 2013.
Как видите, у 3ds Max по умолчанию не предоставлено большого количества возможностей по настройке экспорта в формат данных mental images. Однако здесь стоит обратить внимание на применение специальных сценариев, позволяющих более глубоко выполнить настройку параметров визуализатора и выполнить экспорт.
Сценарий Render Optimizer Unlimited от Infinity Vision.
По рекомендации Андрея Плаксина (http://scionik.livejournal.com/), я начал использовать специальный сценарий Render Optimizer от Infinity Vision. С помощью Render Optimizer, можно использовать скрытые возможности mental ray for 3ds Max. У этого сценария, есть версия, специально предназначенная для пользователей mental ray Standalone - Render Optimizer Unlimited. Все параметры, которые вы настроите с помощью этого сценария, можно будет экспортировать в .mi формат, что существенно облегчает работу с форматом данных mental ray.
Пример экспорта сцены из 3ds Max Design в формат .mi без и с помощью Render Optimizer.
На приведенном выше скриншоте видно, что было добавлено в описание сцены при экспорте с настройками из Render Optimizer. В сценарии, были заданы расширенные параметры Final Gather и Irradiance Particles. С левой стороны, показан участок описания сцены с экспортом по умолчанию, справа, описание сцены с парамтерами добавлеными с помощью Render Optimizer. Как упоминалось выше, Render Optimizer позволяет значительно сократить время по настройке параметров mental ray и на редактировании формата mental images.

Познакомившись с базовыми возможностями экспорта сцены в формат .mi из 3ds Max, мы можем перейти к знакомству с экспортом сцены из Autodesk Maya.

Экспорт сцены в формат .mi из Autodesk Maya

В отличие от 3ds Max, пакет Autodesk Maya обладает, пожалуй, одним из самых лучших plug-in коннектором для mental ray. И с помощью параметров визуализации и настройки экспорта, можно настроить любой параметр визуализатора и корректно экспортировать его из Maya в формат .mi.
Параметры экспорта сцены Autodesk Maya в формат .mi.
На представленной выше иллюстрации, показаны основные параметры для экспорта сцены в формат .mi из Autodesk Maya. С помощью диалогового окна Export All Options, вы можете выполнить настройку экспорта в формат .mi с различными типами данных.

Давайте рассмотрим параметры экспорта в .mi формат из Autodesk Maya.

Первое что нам необходимо сделать, это выбрать в меню File > Export All… > [□], сразу откроется диалоговое окно Export All Options. Помимо этого, начиная с Maya 2011, при открытии диалогового окна Export All, вы можете настроить параметры для выбранного формата в области параметров (расположена справа).

Свиток General Options:

File Type – позволяет выбрать тип формата данных и файла, нам необходим пункт mentalRay

Default file Extensions – когда активен, файл экспортируется с расширением, для выбранного типа файла

Preserve References – если эта опция активна, все референсы, используемые в файле будут сохранены, если не активен, референсы и данные связанные с ними будут записаны в экспортируемый файл

Export Unloaded References – Экспортирует не загружаемые Proxy файлы, ассоциированные с текущей сценой

Свиток File Type Specific Options:

Этот свиток, содержит основные параметры для экспорта сцены в формат .mi.

Export Selection Output – В этом свитке, вы можете выбрать тип данных для экспорта в формат .mi.

- Renderable Scene – Выбрано по умолчанию. Maya экспортирует все данные сцены (источники света, камеры, шейдеры, глобальные атрибуты и т.д.), которые необходимы для визуализации выбранных объектов или сцены. Получаемая при экспорте сцена, может быть полностью использована при визуализации средствами mental ray Standalone

- Render Proxy (Assembly) – Экспортирует сцену или выделенные объекты в формат .mi, но с параметрами для визуализации Proxy объектов (mental ray Proxy) в вашей сцене. Используйте эту опцию для экспорта завершенной геометрии, которая будет использована для визуализации в mental ray Proxy

- Scene Fragment (Custom) – Если выбран этот пункт, то Maya будет экспортировать только выделенные узлы. Этот режим, может быть использован для экспорта источников света, камер, шейдеров или геометрии. Полученный файл формата .mi не может быть использован в финальной визуализации на прямую, а может быть применен как фрагмент сцены (Scene Fragment) и включен в другой файл .mi

Если объекты не подвержены изменениям, переподготовка перед экспортом в формат .mi не требуется, и процесс экспорта будет значительно сокращен.
Представленные типы экспортируемых данных в формат .mi.
Export Materials – В дополнение к выбранным узлам, этот параметр позволяет экспортировать любой материал для связанный с ними. Это применяется к выбранной геометрии и узлам затенения (Shading Nodes)

Export material Assignments – В дополнение к выбранным узлам, этот параметр также экспортирует любой назначенный материал связанный с ними. Для примера, если вашему объекту назначен шейдер Phong, выбрав эту опцию и опцию Export Materials, геометрия которая связана с Phong Shader будет также экспортирована.
Эту опцию рекомендуется использовать при работе с render proxies в .mi формате.
Также, эта опция поддерживает передачу материала из Maya с render proxies.

Export all incoming shaders - В дополнение к выбранным узлам затенения, также экспортирует все материалы для этих узлов. Например, если Surface Shader выбран, связи любой текстуры в шейдере будут экспортироваться вместе с шейдером.

Export entire child DAG - Этот параметр указывает, что в дополнение к выбранной геометрии, любые дочерние объекты, должны быть экспортированы.

Root Group Name – Используйте эту опцию, для указания корневого имени сборки. Если вы выбрали Use Filename, корневое имя группы будет взято из имени сцены.

File Format – Если выбран режим ASCII, все данные в экспортируемом .mi файле, будут представлены в виде открытого для редактирования и чтения ASCII текста. В режиме Binary, ряд данных (points, normals, texture coordinates и т.д.), будет подвержен компрессии, для уменьшения объема экспортируемого файла. Значение tabulator size, позволяет задать значение отступа в файле .mi.

В раскрывающемся списке Compression, вы можете выбрать какой тип компрессии использовать для Binary формата. Предлагается три варианта компрессии: GZip Best Speed, GZip Default Compression и GZip Best Compression. Все эти пункты, различаются степенью компрессии данных в экспортируемом файле.

Output File Per Frame – Когда в сцене есть анимация, Maya экспортирует все данные, необходимые для визуализации всех кадров указанных в настройках параметров диапазона рендеринга анимации. Когда Output File Per Frame находится в состоянии off, данные для всех кадров, экспортируются в один .mi файл. Когда эта опция находится в состоянии on, для каждого кадра анимации, будет создан отдельный файл .mi.

Frame Extension – Когда выбрана опция Output File Per Frame, в раскрывающемся списке, вы можете стиль написания расширения фала. Предоставляется три типа расширений: name.ext.#, name.#.ext, name.#.

Frame Padding - Когда выбрана опция Output File Per Frame, определяет количество символов применяемое к расширению номера кадра. Например, если значение Frame Padding равно 2, то значение расширения номера кадра будет выглядеть так: 01, 02, 03,…, если Frame Padding равен 3, то расширение будет выглядеть так: 001, 002, 003,…

Output File Per Layer – Информация из множества слоев визуализации (Render Layer), не может быть экспортирована в одном файле .mi, Установите эту опцию, для того чтобы экспортировать файл .mi для каждого слоя визуализации (Render Layer). Если ваша сцена использует множество Render Layers, вы можете включить эту опцию для корректной визуализации Render Layers. Если параметр Output File Per Layer выключен, визуализация сцены с множеством слоев визуализации, может проходить некорректно.

Export File Paths - Используйте эту опцию, чтобы установить путь к файлу определенной категории. Для каждой категории есть три варианта:

- None – Имя файла не содержит пути к файлу. К примеру: bottle_difMap.jpg

- Absolute - Имя файла содержит абсолютный путь к файлу. К примеру: D:/WORKSPACE/DCC/Maya/Demo/sourceimages/bottle_difMap.jpg

- Relative to project – Релевантный путь к директории проекта, содержащей файл. К примеру: sourceimages/bottle_difMap.jpg
Параметры связей с внешними файлами.
Link Library – Опция пути к файлу для библиотек шейдеров (Shader Libraries). Для примера указывается путь для mayabase.so, base.so, и т.д.

Include File - Опция пути к файлу описания шейдера (shader declaration) (.mi), такому как mayabase.mi и другие.

Texture File - Опция пути к файлам текстур. Для примера bottle_difMap.jpg.

Light Map - Опция пути к сгенерированным файлам lightmap (если используется lightmap shader).

Light Profile - Опция пути к файлам профилей источников света (light profile).

Output Image - Опция пути к выводимым файлам изображений.

Shadow Map - Опция пути к файлам shadow map.

Finalgather Map - Опция пути к файлам final gather map.

Photon Map - Опция пути к файлам photon map.

Render Proxy Placeholder - Опция пути к render proxy placeholder.
Параметры выбора отдельных элементов для экспорта.
Export Selected Items Only – Эта опция, предоставляет детальный контроль над тем, какие именно элементы mental ray будут экспортированы в файл формата .mi.

Predefined Export Filters – Содержит ряд полезных заданных комбинаций типов экспортируемых объектов и функций.

Как видите, Maya позволяет настроить экспорт практически любого элемента сцены и выполнить визуализацию средствами mental ray Standalone. Однако, если вы хотите напрямую выполнять визуализацию сцены средствами mr Standalone из интерфейса Autodesk Maya, вы можете воспользоваться рядом специальных сценариев, которые можно загрузить из сети.

Для примера я взял один из известных в нашем CG производстве сценариев – Render With Mental Ray Standalone, автором которого является наш соотечественник Павел Ледин (aka Puppet).

В этом посте я не буду рассматривать детально этот сценарий, специальным сценариям будет посвящен отдельный пост, где будут рассмотрены несколько таких сценариев для оптимизации работы с mr Standalone из Maya. Но взглянуть на него стоит.
Интерфейс сценария Render With Mental Ray Standalone версии 1.1.3.
С помощью сценария Render With Mental Ray Standalone, вы можете напрямую указать команды визуализатора и настроить вывод изображения в формат OpenEXR и Multichannel OpenEXR.

При этом, можно указать команды визуализатора, которые будут использованы при запуске визуализации.

К сожалению, на данный момент нет обновленной версии этого сценария, поддерживающей Maya 2012 и Maya 2013. Думаю, Павел его обновит под новые версии Maya и данный сценарий будет корректно работать с новыми возможностями пакета и системы визуализации mental ray Standalone. Если же вам интересен этот сценарий, вы можете его загрузить из раздела загрузок в конце этого поста.

===========================

Итак, в этом посте, мы рассмотрели основные возможности по экспорту данных в формат .mi из двух самых распространенных пакетов – Autodesk 3ds Max и Autodesk Maya. Учитывая, что 3ds Max сейчас движется по пути максимального упрощения работы с пакетом, он стал жертвой минимализма в функциональности. С другой стороны, Maya обладает всеми необходимыми функциями для работы со Standalone версией mental ray и по эскорту в рабочий формат .mi.

В следующих постах, мы рассмотрим различные параметры, и какое влияние они оказывают на описание данных в формате .mi. Помимо этого, мы уделим внимание специальным расширениям, которые могут помочь в работе с mental ray Standalone напрямую из пакетов 3ds Max и Maya.

Загрузки
Сценарий Render With Mental Ray Standalone для Autodesk Maya (ZIP Archive)
Сценарий Render Optimizer 2 для Autodesk 3ds Max (ZIP Archive)

Опубликовано

mental ray Standalone Global Review
- mental ray Standalone | Первое знакомство

mental ray 4 Maya | Shaders Guide
- mental ray 4 Maya | Shaders Guide | Основы
- mental ray 4 Maya | Shaders Guide | dgs_material, dielectric_material

До скорой встречи, ваш dimson3d :).

четверг, 14 июня 2012 г.

mental ray Standalone | Первое знакомство

Приветствую вас дорогие друзья!
Наконец осуществилась моя давняя мечта — переход на Standalone версию визуализаторов. Учитывая что я выбрал две системы визуализации для своей работы — mental ray и V-Ray, оба они предлагают Standalone версии.
С V-Ray Standalone я познакомился уже достаточно давно, а вот переход на mental ray Standalone реализовал только сейчас и сразу же получил огромное удовольствие от полного контроля всех данных и возможностей движка визуализации.
Сцена созданная в 3ds Max 2011, визуализирована в mental ray 2013 Standalone.
В этом небольшом посте, я познакомлю вас с подходом к работе с mental ray Standalone.
Конечно, здесь стоит обратить внимание на то, что огромное количество задач выполняется не в редакторе 3D анимации и визуализации, а в простом текстовом редакторе поддерживающем формат файла текста ASCII и обладающим по сути функциями блокнота :)
Но давайте обо всем по порядку.
Первое что вам потребуется длля использования полноценной версии mental ray Standalone — сам mental ray Standalone и конечно ваш любимый редактор, им может быть Autodesk 3ds Max, Autodesk Maya, Autodesk Softimage, Houdini, Cinema 4D и даже Blender. В большинстве из этих приложений есть plug-in коннектор к mental ray Standalone, а в основных пакетах от Autodesk, mental ray идет с приложением. Поэтому большинство параметров вы можете настроить в удобном окружении, а дальше, обратиться к редактированию файлов сцен в формате mental ray (.mi).
mental ray 2013 Standalone в командной строке операционной системы Windows 7.
Как видите на представленной выше картинке, сейчас, Autodesk предлагает версию mental ray 3.10.1.4 как и в 3ds Max, Maya и вроде в Softimage 2013 версии.
Основные команды для визуализации с помощью mental ray Standalone указываются в командной строке или в специально созданном .bat файле, а также в описании сцены и параметров визуализаторов.
Помимо самого визуализатора, потребуется удобный браузер файлов и каталогов, я рекомендую использовать Total Commander, он достаточно функционален и удобен в использовании, а благодаря большому количеству самых разных расширений его легко можно настроить под себя и свои задачи.
Total Commander с открытыми директориями mental ray Standalone и каталогом проекта Autodesk Maya. 
Рекомендую сразу создать прикрепленные вкладки для того чтобы можно было быстро перемещаться между каталогами как с самими программами, так и проектами. Для экспорта сцены в формат .mi (или .mi2), в каждом из приложений есть специальная опция, которая не визуализирует сцену, а просто преобразует ее в сцену и данные формата .mi.
Например, в Autodesk Maya, с помощью меню File > Export All... можно выбрать формат данных mental ray и сохранить сцену в .mi файл.
Команда Export All... в меню File приложения Autodesk Maya.
Если нажать на Option Box (□) можно получить доступ к настройке параметров экспорта и формата данных.
Параметры формата mentalRay при экспорте из Autodesk Maya.
Как видите, параметров для экспорта сцены в формат .mi из Maya достаточно много, и  экспорт можно настроить под любые задачи. Однако, стоит обратить внимание на то, что существуют отдельные сценарии и даже плагины которые позволяют лучше экспортировать данные из Maya в .mi. О них мы обязательно поговорим в следующих постах.
При работе с Maya, и mental ray, я настоятельно рекомендую сразу использовать не бинарные форматы, такие как Maya ASCII и mental ray ASCII (.mi). Хоть объем получаемых файлов выше, но вы без проблем можете выполнить редактирование файла и его содержимого вручную. В набре инструментов mental ray, есть конвертер .mi Binary в .mi ASCII и обратно.
Если вы хотите работать с данными сцен mental ray напрямую, и вручную писать сцены и задавать различные параметры, вы можете воспользоваться одиним из многих текстовых редакторов. Здесь стоит отметить, что такие редакторы как Microsoft Word или аналогичные, не подойдут, они сохраняют слишком много лишней информации о форматировании. Рекомендуется использовать такие редакторы как Notepad++ или даже классический Notepad (Блокнот) в системе Windows. Для пользователей Linux и Mac OS рекомендуется Vim, Emacs или аналогичный, все зависит от вашего выбора.
Текстовый редактор Notepad++ с открытыми файлами формата .mi.
Плюс таких редакторов как Notepad++ заключается в том что они могут быть использованы как простое и удобное IDE не только для редактирования файлов, но и для создания небольших программ (благодаря интеграции с компиляторами). Помимо этого, в редакторе вы можете создать подсветку синтаксиса для более комфортной работы с языком программирования или языком описания сцены в mental ray. По умолчанию созданы подсветки к самым распространенным языкам программирования, а вот для языка описания сцены под mental ray к сожалению нет, но это и не удивительно, в мире очень немного людей вручную пишут шейдеры и даже геометрию на языке mental images :). Но это не большая проблема, я как раз занялся созданием подсветки на основе подсветки синтаксиста языка C/C++ и выложу эту настройку в свободный доступ.
Как видите, при работе со Standalone версией mental ray, вам потребуется как минимум 3 инструмента — приложение компьютерной графики, редактор текста, удобный браузер файловой системы и непосредственно сам движок визуализации.
В ходе подготовки большой статьи, я буду выкладывать различные материалы для того, чтобы вы познакомились с возможностями mental images scene description language. А наш большой гид по шейдерам «mental ray 4 Maya | Shaders Guide» будет писаться с с применением Standalone  версии mental ray.