Theory/PreBakedRibs

Rib 

Запечённые RIB-файлы

Введение

Прежде чем начать использовать запеченные RIB-файлы (они же «забейканные» RIB'ы, они же RIB-архивы), созданные в Maya, полезно разобраться, что вообще из себя представляют подобные файлы, и изучить механизм их включения в другие RIB-файлы. Для этого снова прибегнем к помощи текстового редактора.


Запеченный RIB-файл, или RIB-архив, похож на обычный RIB-файл, за исключением того, что он не содержит видовых преобразований и World-блока. Часто в RIB-архивах также отсутствует описание шейдеров и освещения. Как правило, архивные файлы содержат только геометрию. Именно такие запеченные файлы создает, к примеру, плагин Maya Rib Archive.


Сам по себе файл RIB-архива не может быть отрендерен, однако его можно вызвать из другого RIB-а посредством специальной команды. Мотивация подобного решения такова: можно использовать в сцене множество экземпляров забейканной геометрии, сохраняя при этом RIB-описание сцены довольно компактным. Именно этот подход используется для создания массовок, работы с частицами и прочим тиражированием, будь то перья птицы или деревья в лесу. Более того, во многих масштабных сценах, использование RIB-архивов – единственное возможное решение, в противном случае размер всех Rib-файлов был бы неприемлемо велик для большинства современных компьютеров.


Обычный RIB-файл можно превратить в «запеканку», удалив весь текст из начала файла вплоть до TransformBegin, также стоит убрать и концовку файла, начиная с WorldEnd. После чего оставшуюся часть следуют заключить в команды AttributeBegin и AttributeEnd.


Вот пример несложного запеченного RIB-файла:


Он описывает геометрический объект, который некоторое время назад любили устанавливать в песочнице на детских площадках. Рассмотрим теперь включение «запеканки» в обычный RIB-файл. Это делается при помощи команды Read Archive?:


Как мы видим, архив был вызван трижды в разных координатах. Ниже приведен результат рендера:



рис.1 Грибки


Использование RIB-архивов в Pixar RenderMan Studio 1.


Для того чтобы использовать RIB-файл в сцене Maya, необходимо создать прямоугольный параллелепипед, который будет служить контейнером для архива, сделать ему размер, совподающий с bounding box оригинальной модели, и применить freeze transformations. В RenderMan Studio есть возможность вызывать процедуры Рендерман интерфейса с помощью MEL. Чтобы использовать параллелепипед в качестве контейнера RIB-файла нужно выбрать параллелепипед, в Attribute Editor выбрать Shape модели и выбрать в меню Attributes – Renderman – Manage Attributes. Из появившегося окна необходимо добавить аттрибут Pre-Shape MEL. Это и есть аттрибут, с помощью которого можно вызвать Ri-процедуру с Ri-аттрибутами. В появившееся поле необходимо ввести следующий Ri-код:



Таким образом в Майе для сложных, комплексных сцен, помимо использования proxy references, можно упростить представление, заменив сложные модели на упрощенные контейнеры RIB-архивов.


Однако это не все. Существуют ситуации, когда нужно сделать достаточно немалое количество копий одного и того же объекта, для каждого контейнера по отдельности включать атрибут Pre-Shape MEL и вписывать один и тот же код, было бы досаточно трудозатратно. Поэтому в RenderMan Studio предоставлена возможность создавать Shared Geometric Attributes.


Чтобы назначить нескольким контейнерам один и тот же Ri-код, нужно выбрать все модели, и в Shelf во вкладке RenderMan выбрать SGA menu, в появившемся окне нажать кнопку create, и позже нажать кнопку attach, чтобы пресоединить к выбранным моделям ноду rmanSettings, далее в Attribute Editor для ноды rmanSettings необходимо провести те же действия, что были описаны в предыдущих абзацах (Manage Attributes, Pre-Shape MEL, и так далее).


Естественно функционал Shared Geometric Attributes распространяется не только на RIB-архивы, но и на другие аттрибуты Рендермана в Майе, и может уменьшить объем ненужных трудозатрат.

Источники

1. Оригинальная статья Pre-Baked RIBs. на www.fundza.com: http://fundza.com/rib/bakerib/index.html
2. renderman.digitalrendering.com