logo search
Как использовать все возможности mental ray в р

Часть 4. Геометрические объекты

В mental ray принято различать пять типов геометрических объектов. К ним относятся: полигонные объекты, криволинейные поверхности (free-form surfaces), пространственные кривые, subdivision-поверхности, или поверхности с настраиваемой детализацией, и hair-геометрия, или многосоставные поверхности вроде волос и меха (описание hair-геометрии в mr рассматривалось в обзоре: http://www.ixbt.com/soft/mr_hairf.shtml).

Описание полигонных объектов выполняется при помощи вершин, нормалей и полигонов - треугольников, четырехугольников или n-угольников.

Криволинейные поверхности и пространственные кривые описываются процедурно, при помощи математических формул - полиномов вплоть до 21 степени. В mental ray поддерживается Bezier-, Taylor-, B-spline-, Cardinal - поверхности и кривые, как рациональные (NURB), так и нерациональные. Перед рендерингом криволинейные поверхности должны быть аппроксимированы при помощи полигонного представления. Эту функцию выполняют имеющиеся в mental ray различные алгоритмы аппроксимации: (regular) parametric, spatial, curvature-dependent, view-dependent, и их комбинации. Начиная с mental ray версии 3.1, введена еще одна техника - fine approximation, которая в настоящее время наиболее часто используется по причине высокого качества результатов.

Поверхности настраиваемой детализации (subdivision surfaces) стандартной версией mr не поддерживаются. Эти типы поверхностей могут быть отрендерены mental ray после аппроксимации, выполненной пакетом трехмерного моделирования. Либо после установки расширения mental matter, которое содержит необходимые шейдеры.

Описание геометрического объекта в mi-файле состоит из определения объекта, создания его instance и назначения ему материала, который должен быть определен предварительно - до момента первого использования в объекте.

Определение объекта представляет собой описание по определенным правилам геометрии его поверхности - указания трехмерных координат элементов, список элементов, способы сопоставления координат и элементов, а также - операторы и флаги свойств объекта.

Поскольку для определения объекта требуются координаты, в mr необходимо явно указывать координатную систему. В настоящее время используется три системы: система координат, привязанная к камере (camera space), система координат объекта (object space) и мировая система координат (world space). Основными являются object и world, тогда как camera space используется только в особых случаях и, в основном, для совместимости со старыми версиями mr.

Object space является локальной системой координат. Это означает, что для каждого объекта создается собственная система координат, которая привязывается к началу объекта, и все координаты элементов объекта определяются относительно локальной системы.

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

В самом общем виде определение геометрического объекта в mi-файле сцены выполняется при помощи конструкции:

object " object_name "

[ visible [ on|off] ]

[ shadow [ on|off] ]

[ shadow [ mode] ]3.4

[ shadowmap [ on|off] ]3.3

[ trace [ on|off] ]

[ reflection [ mode] ]3.4

[ refraction [ mode] ]3.4

[ transparency [ mode] ]3.4

[ select [ on|off] ]

[ tagged [ on|off] ]

[ caustic [ on|off] ]

[ globillum [ on|off] ]

[ finalgather [ on|off] ]

[ caustic [ mode] ]

[ globillum [ mode] ]

[ finalgather [ mode] ]3.4

[ finalgather file file (list) ]3.4

[ face [ front|back|both] ]3.4

[ box [min_x min_y min_z max_x max_y max_z] ]

[ motion box [min_x min_y min_z max_x max_y max_z] ]

[ max displace value ]

[ samples min max ]

[ data null|" data_name " ]

[ tag label_number ]

[ file " file_name " ]

[ basis list ]

group

vector list

vertex list

geometry list

approximation list

end group

end object

Конструкция определения объекта начинается с указания имени объекта и состоит из двух частей: флагов и операторов свойств объекта (все из которых являются необязательными и могут не указываться), и описания геометрии объекта в group … end group.

Имя объекта " object_name ", указываемое при его определении, служит для целей идентификации объекта. Имя объекта используется в mental ray только при отчете о ходе выполнения рендеринга и в сообщениях об ошибках. Имя объекта рекомендуется указывать в двойных кавычках.

Флаги и операторы свойств геометрического объекта

Флаг visible [ on|off]

делает объект видимым для первичных лучей (primary ray) из камеры и для transparency ray, которые используются исключительно scanline - алгоритмом mental ray для расчета простой прозрачности объекта, без учета коэффициентов преломления и без трассировки лучей. Выключение флага видимости, visible off, позволяет исключить объект из изображения. Значение по умолчанию - on. Если оператор trace явно не указан в свойствах объекта, тогда значение этого флага по умолчанию off (это справедливо для всех ниже перечисленных флагов).

Флаг shadow [ on|off]

позволяет или запрещает объекту отбрасывать тень. Значение флага shadow off, определенное в блоке Options mi-файла сцены, отключает расчет теней у всех объектов и имеет преимущество над значением флага shadow в свойствах объектов.

Флаг shadow [ mode]

появился в mental ray 3.4 и позволяет дополнительно указать режим построения теней:

Флаг shadowmap [ on|off]

устанавливает, что отбрасываемая объектом тень рассчитывается при помощи алгоритма построения растровых карт теней. Требуется также, чтобы флаг shadow был установлен в значение on. Флаг появился в mr 3.3.

Флаг trace [ on|off]

делает объект видимым или невидимым для вторичных лучей - для преломленных прозрачными объектами лучей или для отраженных лучей, то есть для ray tracing. Аналогичный флаг в Options mi-файла сцены имеет преимущество, если он выключен (trace off), значения trace-флагов объектов игнорируются.

Начиная с версии mental ray 3.4, появились три дополнительных флага, позволяющие по отдельности управлять видимостью объекта для отражений, преломлений и лучей простой прозрачности, рассчитываемых scanline.

Флаг reflection [ mode]

значения mode:

Флаг refraction [ mode]

значения mode:

Дополнительные значения mode для reflection/refraction будут рассмотрены чуть позже.

Флаг transparency [ mode]

значения mode и их смысл аналогичны значениям флага refraction. По умолчанию используется mode 3.

Флаг select [ on|off]

может использоваться приложениями для интерактивного выбора объекта при помощи луча, посылаемого в сцену, например, по нажатию кнопки мыши, из текущего положения на экране монитора. После трассировки вглубь сцены, луч возвращает список объектов, с которыми он пересекся. Только объекты с установленным флагом "select on" будут присутствовать в списке.

Флаг tagged [ on|off]

позволяет изменить способ указания материалов при определении геометрического объекта. Обычно, каждый треугольник, полигон и поверхность должны содержать указание материала, который им назначен, либо при определении объекта, либо в определении instance, использующего определение (имя) данного объекта. Установка флага tagged on означает, что определяемый объект вообще не использует материал, а назначение материала будет выполнено только при создании instance определяемого объекта по указанным для полигонов и поверхностей специальным целочисленным меткам, заменяющим указание материалов. В 3ds max такие метки полигонов имеют простой смысл - это material ID полигона.

Флаг caustic [ on|off]

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

Флаг caustic [ mode]

значения mode:

Значение флага "caustic off" означает невидимость объекта для каустик-фотонов, "caustic on" - аналогичен режиму 3. Если флаг caustic явно указан в свойствах объекта, но без указания mode, по умолчанию полагается "on", (mode=3), если флаг caustic явно не указан в свойствах объекта, по умолчанию полагается caustic off.

Блок Options также имеет оператор caustic, который имеет преимущество: если его значение "off", каустик-свойства объектов игнорируются.

Из теории фотонных карт известно, что каустик-эффекты создаются отражающими или преломляющими прозрачными объектами, фокусирующими рассеиваемый ими отраженный/преломленный свет на преимущественно диффузных поверхностях. Например, при прохождении света через тонкую собирающую линзу свет фокусируется и может образовать яркое световое пятно на диффузной поверхности, находящейся за линзой. В этом примере можно линзе и поверхности назначить caustic on, то есть, оба объекта будут и генерировать и сохранять каустик-фотоны. Однако более оптимально и правильно назначить линзе caustic 1, поскольку она только генерирует каустик-фотоны, а поверхности - caustic 2, поскольку она только регистрирует и сохраняет в карте фотоны, приходящие от линзы. В блоке Options должно быть установлено "caustic on".

Флаг globillum [ mode]

позволяет объекту участвовать в оптимизированном расчете глобального освещения (расчете вторичных диффузных переотражений). Как и в предыдущем случае с каустикой, оптимизация расчетов глобального освещения достигается за счет индивидуального определения для объектов значения mode:

Оператор globillum в блоке Options mi-сцены имеет преимущество, если его значение off, глобальное освещение в сцене рассчитываться не будет вне зависимости от значений флагов объектов.

В mental ray 3.4 появились два новых флага, позволяющие оптимизировать final gathering посредством индивидуального включения/исключения объектов из расчетов.

Флаг finalgather [ mode]

значение mode:

Если значение mode не указано явно, по умолчанию принимается значение 0. По-объектное указание значения этого флага позволяет, например, исключить из расчета диффузных переотражений чисто зеркальные или прозрачные объекты. Если для всех объектов сцены, за исключением данного, установить finalgather 9, а для самого объекта finalgather 3, то будут рассчитаны только fg-точки данного объекта.

Флаг finalgather file file (list) ]

позволяет указать имя файла (или список файлов) для сохранения или чтения карты fg-точек объекта. Этот флаг взаимодействует с оператором finalgather rebuild on|off| freeze, указываемым в блоке Options файла mi-сцены:

Другой оператор блока Options, finalgather file [ " name ", " name ", ... ], позволяет объединить несколько файлов с объектными fg-картами в один общий для всей сцены файл.

Таким образом, использование объектных флагов finalgather [ mode] и finalgather file file (list) ] в сочетании с операторами finalgather rebuild и finalgather file [ " name ", " name ", ... ] позволяет, при необходимости, реализовать схему по-объектного расчета fg.

Оператор face [ front|back|both]

появился в mr 3.4 и предназначен для по-объектного управления отбором полигонов (face culling) для рендеринга: f или front - рендериться будут только те полигоны, нормали которых направлены к камере b или back - только полигоны, обращенные "тылом" к камере a или all - все полигоны

Этот оператор имеет преимущество перед аналогичным оператором в блоке Options. По умолчанию принимается значение both.

Оператор box [min_x min_y min_z max_x max_y max_z]

позволяет определить прямоугольный трехмерный контейнер, полностью охватывающий объект и без учета displacement или motion blur. Такой куб используется вместо точного описания объекта, например, в случае рендеринга по требованию. Обычно, этот оператор используется совместно с оператором file " file_name ", указывающим имя файла с точным описанием геометрии объекта.

Оператор motion box [min_x min_y min_z max_x max_y max_z]

определяет контейнер объекта с учетом минимальных и максимальных компонент векторов смещения, если таковые имеются

Оператор max displace value

определяет максимально допустимое смещение контрольных точек объекта в локальном пространстве в направлениях, определяемых нормалями поверхности. Если displacement-шейдер, назначенный объекту, превышает значение value, displacement будет обрезаться, о чем появится предупреждающее сообщение в логе рендеринга.

Оператор file " file_name "

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

Оператор samples min max

позволяет по-объектно определять antialiasing. Объектный оператор samples взаимодействует с оператором samples блока Options - значения min и max объекта должны лежать внутри интервала [ min, max], определенного в Options. Если пиксел изображения содержит несколько объектов, например, в результате расчета отражений или прозрачности, - используется максимальное значение min и max объектных определений. Если пиксел вообще не содержит объектов, aa определяется исходя из значений defmin и defmax, задаваемых в Options сцены.

tag label

указывает произвольное 32-битное целое число, идентифицирующее объект. Tag (label) используется mental ray для определения точки входа в базе данных сцены и предназначен исключительно для целей программирования шейдеров.

Оператор data null|" data_name "

позволяет связать с объектом пользовательские данные с именем "data_name". Данные должны быть к этому моменту уже определены в сцене. Параметр null отменяет ссылку на определенные ранее данные.

Список basis list

определяет список базисов, используемых при описании поверхностей произвольной кривизны и трехмерных кривых.

Флаги visible, shadow, trace, reflection, refraction, transparency, caustic, globillum, finalgather и face могут быть переопределены при создании instance объекта.

Блок

group

vector list

vertex list

geometry list

approximation list

end group

содержит описание геометрии - список всех ее векторов (vector list), вершин, нормалей, текстур контрольных точек (vertex list) и описание элементов геометрии - полигонов, треугольников, патчей (geometry list).

В mental ray используется трехэтапное определение геометрии: сначала список всех векторов, затем список вершин, и в конце - список элементов поверхности, таких как треугольники или полигоны. Поэтому все описание блока group … end group разбито на три больших части.

Первая часть, vector list, содержит список векторов - последовательные тройки координат, разделенные пробелами. Эти вектора (тройки координат в объектном пространстве) описывают положение вершин геометрии, нормалей вершин, текстурные координаты, базисные векторы поверхности, вектора смещения и вектора, задаваемые пользователем. Все вектора указываются анонимно, то есть тройками чисел без указания их значения. Смысл вектора определяется сопоставлением его положения (индекса) в списке векторов с соответствующим положением (индексом) элемента описания в нижеследующем списке вершин.

Все вектора в пределах одного блока group … end group индексируются последовательно в порядке перечисления, начиная со значения индекса, равного нулю. То есть, самый первый вектор списка имеет индекс 0. Кроме того, все вектора подразумеваются трехмерными. Если описываются двумерные вектора, такие как текстурные координаты, базисные векторы или специальные точки на поверхности, просто полагается, что их третья координата равна нулю.

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

Используемые буквенные символы для указания типа вершины:

Третья часть, geometry list, описывает элементы геометрии - треугольники, полигоны, патчи и так далее. Описание элементов геометрии использует индексы вершин (порядковый номер вершины в списке) второй части, точно так же, как вершины используют индексы векторов.

Описание каждого элемента для полигонной геометрии выполняется при помощи конструкции:

[ тип вершины ] [" материал " ] список образующих вершин с индексами [ список вершин, образующих дыры в полигонах ]

Типы вершин могут быть c - convex, выпуклые полигоны, или p - concave, произвольные полигоны, как выпуклые, так и вогнутые. Полигон считается "выпуклым", если любая прямая линия, пересекающая полигон, имеет с ним не более двух точек пересечения. Указание типа вершин используется для целей повышения скорости расчетов и может быть опущено.

Если в свойствах объекта был определен флаг tagged, тогда вместо указания материала для полигона обязательно указывается целочисленная метка: [ тип вершины ] label список образующих вершин

Пример. Рассмотрим простейший геометрический объект - прямоугольный полигон, составленный из двух треугольников. Такой объект имеет шесть вершин и состоит из двух элементов - треугольников. Его определение в mental ray может выглядеть следующим образом:

object poli_4

visible

group

0.0 0.0 0.0

1.0 0.0 0.0

0.0 1.0 0.0

1.0 0.0 0.0

1.0 1.0 0.0

0.0 1.0 0.0

v 0

v 1

v 2

v 3

v 4

v 5

p "material" 0 1 2

p "material" 3 4 5

end group

end object

Здесь "poli_4" - имя, идентифицирующее объект, первая часть в блоке group .. end group

0.0 0.0 0.0

1.0 0.0 0.0

0.0 1.0 0.0

1.0 0.0 0.0

1.0 1.0 0.0

0.0 1.0 0.0

описывает все вектора геометрии, в данном случае - координаты вершин треугольников, что следует из второй части описания, списка вершин:

v 0

v 1

v 2

v 3

v 4

Тип вершин - v, то есть вершины геометрии, индексы 0 -5 позволяют сопоставить вершину с индексом и координаты из первой части: v 0 имеет координаты, указанные первой тройкой чисел списка векторов, то есть (0.0 0.0 0.0), v 1 - (1.0 0.0 0.0) и так далее.

Третья часть описывает треугольники, составляющие полигон: p "material" 0 1 2 означает "concave-полигон", которому назначен материал "material", образован вершинами из списка вершин v 0 (соответствует указанному индексу 0, то есть первая вершина в списке вершин), v 1 (индекс 1) и v 2 (индекс 2). Как видим, все просто.

Преимущество трехэтапного определения геометрии состоит в возможности исключения повторяющихся элементов описания, что экономит память. В выше приведенном примере в списке векторов есть две повторяющиеся последовательности координат. Их можно указать только один раз. Тогда определение будет выглядеть:

object poli_4

visible

group

0.0 0.0 0.0

1.0 0.0 0.0

0.0 1.0 0.0

1.0 1.0 0.0

v 0

v 1

v 2

v 1

v 3

v 2

p "material" 0 1 2

p "material" 3 4 5

end group

end object

Вместо шести векторов в списке теперь сейчас только четыре. Однако теперь появились повторяющиеся вершины в списке вершин. Их тоже можно указывать только один раз. Тогда определение объекта примет вид:

object poli_4

visible

group

0.0 0.0 0.0

1.0 0.0 0.0

0.0 1.0 0.0

1.0 1.0 0.0

v 0

v 1

v 2

v 3

p "material" 0 1 2

p "material" 1 3 2

end group

end object

Из определения могут быть исключены только повторяющиеся вектора одного и того же типа вершин. Также, блок group .. end group может описывать только один тип геометрии либо только полигонную геометрию, либо только поверхности произвольной кривизны, либо только пространственные кривые. Смешивание описаний различных типов в пределах одного блока не допускается. Кроме того, хотя определение геометрического объекта и может содержать несколько блоков group … end group, делать это не рекомендуется. Определение должно быть односоставным - использовать только один блок.

Оператор approximate

указывается в конце блока group … end group и определяет метод тесселяции геометрии. В случае поверхностей произвольной кривизны речь идет об аппроксимации треугольниками процедурных поверхностей, определенных аналитически. Для этих поверхностей оператор approximate присутствует всегда. Для полигонных поверхностей оператор используется только в том случае, если материал имеет displacement шейдер.

Мы достаточно подробно рассмотрели описание только полигонной геометрии. Описание геометрии остальных типов довольно сложно и здесь опущено. Важно то, что определение этих типов геометрии выполняется при помощи той же конструкции, содержащей блок group … end group. Хотя содержание этого блока будет иным, конструкция определения геометрии объекта в остальном идентична - содержит те же флаги и операторы и легко идентифицируется в mi-файле. А редактирование геометрии лучше оставить пакету моделирования.

Конструкция instance для объекта

После того как объект определен, для того, чтобы он появился в сцене и в изображении, для него должен быть создан так называемый инстанс-представитель (instance). Эта задача выполняется при помощи следующей конструкции языка описания сцен mental ray:

instance " name_instance "

" object_name" | geometry function

[ hide on|off ]

[ visible on|off ]

[ shadow on|off ]

[ shadow mode ]

[ shadowmap on|off ]

[ trace on|off ]

[ reflection mode ]

[ refraction mode ]

[ transparency mode ]

[ caustic [ mode ]]

[ globillum [ mode ]]

[ finalgather [ mode ]]

[ transform [ matrix ]]

[ motion transform [ matrix ]]

[ face [ front|back|both ]]

[ motion off ]

[ override ]

[ material " material_name " ]

[ material [ " material_name " [ , " material_name " ... ] ] ]

[ approximate [ approximation [ , approximation ... ] ] ]

[ tag label ]

[ data [ " data_name " ]]

end instance

Здесь " name_instance " - символьный идентификатор (имя) инстанс-представителя объекта, " object_name" - имя объекта, чей представитель определяется, geometry function - шейдер, запрограммированный для создания какого-либо геометрического объекта.

Помимо определения instance объекта, можно создать инстанс инстанса с помощью конструкции instgroup " name " ... end instgroup. Основное назначение instgroup - быть контейнером для инстансов элементов сцены. Instgroup может быть вложенной произвольное число раз, то есть в сцене могут присутствовать множественные определения инстансов на основе инстансов, образуя древовидную структуру элементов сцены (DAG). Самая верхняя группа root instgroup содержит все инстансы и группы инстансов и передается команде render в качестве аргумента.

Смысл и назначение флагов и операторов visible on|off, shadow on|off, shadow mode, shadowmap on|off, trace on|off, reflection mode, refraction mode, transparency mode, caustic mode, globillum mode, finalgather mode, approximate, tag label, data идентичны аналогичным в конструкции определения объекта.

Транслятор 3ds max всегда устанавливает значение этих флагов и операторов только в instance объекта, оставляя их значение в определении объекта по умолчанию.

Несколько слов о значениях mode, которые он может принимать. Выше мы уже немного говорили об этом, но были указаны не все возможные значения.

Для определения значения mode флагов caustic и globillum используется 6-битная карта:

Биты карты могут смешиваться (хотя и не все), давая новые режимы взаимодействия объекта с фотонами. В конструкции определения объекта или его инстанса значение mode указывается в десятичном виде.

Например, для того, чтобы объект и получал и генерировал каустик- или gi- фотоны, нужно установить 1-й и 2-й бит карты, что соответствует десятичному значению 3. А для того, чтобы объект вообще не участвовал в расчетах каустики и gi (но участвовал в переотражениях фотонов), нужно установить 3-й и 4-й бит, что соответствует десятичному значению 12.

Если нужно, чтобы объект был "чистым" генератором каустики или gi, нужно установить биты 1-й и 4-й, то есть десятичное значение 9. Если нужно, чтобы объект только получал каустик или gi эффекты, но сам их не генерировал, нужно установить 2-й и 3-й биты, то есть десятичное значение 6.

По вполне очевидным причинам нельзя смешивать первый и третий биты, 2-й и 4-й, а также - 5-й и 6-й. Другими словами, десятичные значения 5, 10 и 48 запрещены.

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

Для значений mode флагов reflection, refraction, transparency и finalgather используется 4-х битная карта:

Правила смешивания битов для получения дополнительных режимов расчетов эффектов те же.

Флаг hide on|off

позволяет исключить инстанс и все ссылки на него из сцены. Используется в отладочных целях.

Матрица трансформации transform [ matrix ]

определяет преобразование координат инстанса объекта из координатного пространства сцены (world space, если инстанс включен в группу root instance сцены) в локальное объектное пространство. Практически, матрица трансформации определяет масштабирование, ориентацию и положение инстанс-представителя объекта в сцене.

Матрица содержит 16 чисел:

transform

1 0 0 0

0 1 0 0

0 0 1 0

x y z 1

числа x, y, z определяют положение объекта в сцене (в mr ось Z направлена вниз, а не вверх как в 3ds max), остальные числа описывают вращение и масштабирование.

Матрица смещения motion transform [ matrix ]

определяет матрицу из 16 чисел преобразования координат векторов смещения из координатного пространства сцены в локальное пространство объекта.

Оператор motion off

выключает все унаследованные вектора смещения, определенные, например, для камеры.

Ключ override

используется как префикс с операторами material и approximate, устанавливает превосходство (переписывает) материалы и свойства аппроксимации в инстансах (инстанс-группах), определяемых на основе данного инстанс позже в сцене (инстанс инстанса). Если отсутствует, операторы более позднего определения инстанса имеют преимущество.

Оператор material " material_name "

указывает для инстанса, какой материал будет использоваться для определения свойств поверхности объекта. Материал к этому моменту уже должен быть определен. Заданный материал наследуется всеми инстансами, определяемыми на основе данного позднее в сцене (вниз по структуре DAG сцены). Если определенные позднее инстансы имеют собственные материалы, они переписывают наследуемые.

Оператор material [ " material_name " [ , " material_name " ... ] ]

задает список материалов для объекта. Если в определении объекта использовался флаг tagged и для полигонов задавались метки label, для полигона с меткой n используется n-ый материал в списке оператора. Если метка n превышает количество материалов, для полигона используется первый в списке материал.

Если transform, motion transform, material указываются в instance без аргументов, они считаются неопределенными. Это используется для накопления изменений с наращиванием при последовательных определениях instance на основе друг друга.

Метка tag label

может быть назначена instance объекта, mental ray ее не использует, но метка может быть передана шейдеру для каких-либо нужд, например, идентификации инстанса.

Свойства объектов в 3ds max и флаги mr

Для сопоставления установок свойств объекта в 3ds max и флагов в mi-файле использовалась сцена caustics_two_lights.max, стандартно поставляемая вместе с файлами уроков 3ds max (папка 3dsMax\Tutorials\mental_ray). В сцене отключен расчет каустики, выполнен ее экспорт в mi-файл, который обработан командой ray.exe с ключом -echo для выноса описания геометрии в отдельные файлы.