Как использовать все возможности mental ray в работе с 3ds max.
Часть 2. Options и ключи рендеринга командной строки


В предыдущей, первой части, мы познакомились с общей структурой представления трехмерной сцены конструкциями языка mental ray. Сегодня мы займемся изучением свойств конкретных элементов описания сцены, и начнем мы с блока операторов Options и ключей командной строки.

Options

Обязательный блок операторов Options определяет режимы рендеринга сцены, общие для всех ее элементов. В 3ds max аналогом операторов блока Options являются настроечные параметры диалогового меню Render Scene > mental ray Renderer, которые и транслируются в соответствующие операторы блока Options при экспорте в mi-файл. Редактирование операторов Options mi-файла идентично изменению настроечных параметров меню Render Scene 3ds max.

Не все доступные операторы опций рендеринга mental ray имеют соответствующие аналоги среди настроечных параметров Render Scene 3ds max. По этой причине рендеринг экспортированной в mi-файл сцены средствами standalone mr имеет преимущество перед рендером сцены из 3ds max. При описании операторов Options, приводимом далее, также будут указываться соответствующие настроечные параметры диалогового меню Render Scene 3ds max, если таковые имеются. Операторы, для которых аналоги в 3ds max отсутствуют, будут выделены красным цветом.
Кроме того, при описании синтаксиса оператора в скобках будет приводиться соответствующий ключ командной строки для ray.exe. Ключи имеют более высокий приоритет и переопределяют оператор Options с аналогичной функцией. В большинстве случаев все же гораздо удобнее пользоваться оператором в mi-файле, а не ключом командной строки, поскольку последние приходится набирать вручную при каждом запуске ray.exe, а операторы можно сохранить вместе с mi-файлом.

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

options " name "
option_statements (операторы опций рендеринга)
end options

Блок обязательно должен иметь "name" - имя, на которое команда рендеринга сцены render должна впоследствии ссылаться. Имя может быть произвольным, так при экспорте транслятор 3ds max автоматически генерирует нечто свое.

Полный список операторов, не имеющих аналога в интерфейсе 3ds max:

  • samples min max defmin defmax
  • filter clip mitchell|lanczos [width [height]]
  • hardware off|on|all
  • hardware cg|native|fast - [ force ]
  • approximate technique [ min max ] all
  • shadowmap opengl|detail
  • shadowmap only
  • shadowmap rebuild merge
  • shadowmap bias bias
  • scanline opengl
  • bsp shadow on|off
  • geometry on|off
  • displace on|off
  • displace presample on|off
  • photon autovolume on|off
  • pass on|off
  • caustic scale r g b [ a]
  • photonmap only on|off
  • globillum scale r g b [ a]
  • finalgather only
  • finalgather file [ " name ", " name ", ... ]
  • finalgather presample density T
  • finalgather scale r g b [ a]
  • colorclip rgb|alpha|raw
  • desaturate on|off
  • premultiply on|off
  • dither on|off
  • gamma gamma_factor frame buffer n [ " type "]
  • camera space
  • object space
  • state shader shader
  • face front|back|both
  • luminance weight ntsc
  • luminance weight r g b
  • inheritance " function_name "
  • traversal " function_name "

Список довольно внушителен, назначение этих операторов далее будет рассмотрено подробно. Использование в синтаксисе скобок вида [ ] означает необязательный параметр, который может быть опущен при использовании оператора. Полужирный шрифт используется для имени оператора, а обычный - для обозначения его параметров. Дальнейшее изложение подразумевает знание смысла настроечных параметров рендеринга mental ray в 3ds max, поэтому операторы, имеющие аналоги в 3ds max, лишь указываются и подробно не описываются.

Группа операторов сэмплирования

  • contrast r g b [ a] (-contrast r g b [ a])
    аналог в max - группа параметров Contrast
  • time contrast r g b [ a] (-time_contrast r g b [a])
    аналог - Temporal
  • samples [ min ] max (-samples [ min ] max)
    аналог - группа Samples per pixel
  • samples min max defmin defmax (samples [ min ] max (-samples [ min ] max))
    аналога нет
  • samples collect num (-samples_motion num) (-samples_collect num3)
    аналог - Samples per Pixel (Fast Rasterizer)
  • samples motion num (-scanline_collect num) (версия mental ray 3.3 и выше)
    аналог - Time Samples (Fast Rasterizer)
  • filter box|triangle|gauss|mitchell|lanczos [width [height]] (-filter [ clip ] box|triangle|gauss|mitchell|lanczos width [height])
    аналог - параметр Filter
  • filter clip mitchell|lanczos [width [height]] (-filter [ clip ] box|triangle|gauss|mitchell|lanczos width [height])
    аналога нет
  • jitter jitter (-jitter jitter)
    аналог - jitter в группе Options

В 3ds max соответствующие настроечные параметры собраны на закладке Renderer:



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

Оператор
samples [ min ] max

определяет минимальный (начальный) и максимальный уровень сэмплирования пикселов изображения. В качестве параметров оператора используется значение уровня сэмплирования. В 3ds max настроечный параметр оперирует числом сэмплирующих лучей. Уровень (level) связан с числом лучей (samples) формулой:

samples = 2^(2*level),

например, 0-му уровню соответствует 1 сэмплирующий луч, 1-му level - 4 луча, а отрицательный (-1) уровень задает один луч на четыре пиксела. Если оператор имеет один параметр, то это - max, параметр min не указан, и его значение по умолчанию полагается равным (max - 2).

Оператор
samples [ min ] max defmin defmax

Начиная с версии 3.1, mental ray позволяет определять по-объектное сэмплирование. Данный оператор при помощи первых двух параметров позволяет установить общие для всех объектов пределы диапазона сэмплирования. Если для какого-либо объекта его индивидуальные настройки сэмплирования выходят за этот диапазон, они будут проигнорированы. Параметры defmin и defmax дополнительно задают диапазон сэмплирования "пустых" пикселов (областей сцены, где нет объектов). Значения defmin и defmax по умолчанию (когда они опущены в операторе) равны -128 и 128 соответственно, что равносильно отключению ограничений диапазона сэмплирования.

Оператор
contrast r g b [ a]

управляет включением рекурсивного сэмплирования. Причем, значение контраста не постоянно, а изменяется - при включении нового уровня сэмплирования умножается на 2^level. Заданное в операторе (или настройках 3ds max) значение контраста непосредственно используется только при нулевом уровне (множитель 2^0 = 1). Для первого уровня (4 сэмпла на пиксель) контраст удваивается (2^1=2), для второго - учетверяется и так далее. Для отрицательных значений уровня сэмплирования контраст делится. Например, для (-1) уровня значение порогового контраста составит половину от заданного в настройках. Таким образом, включение более низких уровней сэмплирования происходит быстрее, чем более высоких уровней.

Оператор
filter clip mitchell|lanczos [width [height]]

является модификацией оператора filter, позволяет использовать варианты фильтров Mitchell и Lanczos с обрезанными границами диапазона весовых коэффициентов сэмплов. Mitchell и Lanczos имеют негативные коэффициенты, которые могут вызывать кольцеобразный муар в областях высокого контраста изображений. Обрезание диапазона позволяет избежать этого. В 3ds max аналога нет.

Группа операторов рендеринга с использованием аппаратных возможностей видеокарты

  • hardware off|on|all (-hardware off|on|all) (в. 3.3 и выше)
    аналога в 3ds max нет
  • hardware cg|native|fast - [ force ] (-hardware cg|native|fast - [ force ]) (в. 3.3)
    аналога нет

Оператор
hardware off|on|all

определяет, какие объекты (материалы, шейдеры) сцены должны быть рассчитаны при рендере аппаратными средствами видеокарты. Параметр "off" полностью отключает расчет, on - включает расчет только для тех объектов, материалы которых имеют аппаратные шейдеры, all - включает расчет для всех объектов, при этом будет предпринята попытка найти замену для материалов, которые не имеют аппаратных шейдеров. Если попытка неудачна, произойдет откат к программному рендерингу, если это не запрещено параметром force.

Оператор
hardware cg|native|fast - [ force ]

определяет, в какой последовательности будет выполнен поиск аппаратных шейдеров. Параметр cg определяет поиск шейдеров в формате NVIDIA Cg 1.2, native - шейдеров OpenGL 2.0, fast - используется простая модель OpenGL затенения по Гуро. Параметр force запрещает откат к программному рендерингу, в этом случае расчет будет выполнен видеокартой с назначенным поверхностям объектов серым цветом вместо материалов, если отсутствуют соответствующие аппаратные шейдеры. Параметры обоих операторов могут смешиваться, если они используются как ключи командной строки, например, ray.exe -hardware all cg native fast force определит только аппаратный рендеринг всех объектов, вне зависимости от типа используемых шейдеров материалов. При указании операторов в Options ключи смешивать нельзя, каждый параметр должен задаваться отдельным оператором.

Следует заметить, что рендеринг материалов аппаратными средствами видеокарты - замечательная возможность mental ray. Однако для активизации этой возможности одного только указания операторов аппаратного рендеринга в Options или соответствующих ключей для ray.exe недостаточно. Обязательно должны быть представлены библиотеки аппаратных шейдеров на Cg или OpenGL и указаны пути к таким библиотекам. Аппаратные шейдеры являются аналогом соответствующих программных шейдеров и имеют созвучные имена функций с префиксами "migl_" для OpenGL шейдеров и "micg_" - для Nvidia Cg. Что касается декларации, то специальная декларация аппаратных шейдеров не требуется, достаточно декларации программного шейдера. Если указан оператор аппаратного рендеринга, mental ray по указанному пути будет искать эквивалентный аппаратный шейдер в файле с расширением *.cg. Например, для программного шейдера mib_illum_phong, декларированного в base.mi, эквивалентный аппаратный шейдер должен находиться в фале с именем mib_illum_phong.cg или mib_illum_phong_f.cg.

Полная поставка Alias standalone mental ray 3.3 содержит Cg-аналоги для следующих программных шейдеров:

bump
mib_bump_map_f.cg
sample compositing
mib_color_alpha_f.cg
mib_color_average_f.cg
mib_color_intensity_f.cg
mib_color_interpolate_f.cg
mib_color_mix_f.cg
mib_color_split_f.cg
mib_color_spread_f.cg
mib_dielectric_f.cg
illumination model
mib_illum_blinn_f.cg
mib_illum_cooktorr_f.cg
mib_illum_default_f.cg
mib_illum_lambert_f.cg
mib_illum_phong_f.cg
mib_illum_ward_deriv_f.cg
mib_illum_ward_f.cg
light
mib_light_infinite_f.cg
mib_light_point_f.cg
mib_light_spot_f.cg
environment
mib_lookup_background_f.cg
mib_lookup_cube1_f.cg
mib_lookup_cube6_f.cg
mib_lookup_cylindrical_f.cg
mib_lookup_spherical_f.cg
texture
mib_passthrough_bump_map_f.cg
mib_texture_checkerboard_f.cg
mib_texture_lookup_f.cg
mib_texture_polkadot_f.cg
mib_texture_polkasphere_f.cg
mib_texture_remap_f.cg
mib_texture_rotate_f.cg
mib_texture_vector_f.cg
mib_vector_split_f.cg

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

Группа операторов тесселяции

  • approximate technique [ min max ] all (-approx [options])
    аналога не имеет
  • approximate displace technique [ min max ] all (-approx_displace [options])
    аналог - группа Displacement
  • аналог - Max. Displace dist (-maxdisplace dist3)
    аналог - Max. Displace



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

Оператор
approximate technique [ min max ] all

позволяет определить технику и параметры аппроксимации, аналогично тому, как это делается в 3ds max для NURBS. Действие оператора распространяется на все поверхности в сцене, кроме полигонных (mesh и poly). Аналога в интерфейсе рендера из 3ds max нет.

Группа операторов Motion Blur

  • shutter [ delay ] shutter (-shutter [ delay ] shutter)
    аналог - параметр Shutter группы Motion Blur
  • motion on|off (в. 3.2) (-motion on|off)
    аналог - чекбокс Enable
  • motion steps num (в. 3.1) (-motion_steps steps)
    аналог - Motions Segment



Оператор
shutter [ delay ] shutter

несколько отличается от параметра Shutter 3ds max, последний фактически аналогичен разнице параметров (shutter - delay). Параметр Blur All Objects в max определяет, что заданные настройки Motion Blur будут использованы для всех объектов сцены и переписывают аналогичные по-объектные настройки. То же самое имеет место при использовании операторов Motion Blur в Options mi -файла - они переписывают объектные настройки размывания в движении.

Расчет Motion Blur выполняется только в том случае, если разница (shutter - delay) ненулевая, однако при нулевой разнице включение оператора motion on в Options имеет особый смысл - значения векторов смещения вычисляются и передаются шейдерам для использования.

В 3ds max 8 интерфейс Motion Blur дополнился новым параметром

Оператор
trace depth reflect [ refract [ sum ]]

аналог - группа параметров Trace Depth



здесь наблюдается полное соответствие параметров max и оператора trace depth: Max. Depth соответствует параметру "sum", Max. Reflections - "reflect", Max. Refractions - "refract". Однако оператор более гибок - он позволяет задавать любое число параметров от одного до трех, интерфейс 3ds max требует определения всех трех параметров.

Группа параметров Shadows

  • shadow off|on|sort|segments (-shadow off|on|sort|segments)
  • shadowmap on|off|opengl|detail (-shadowmap [ on|off|opengl] [ only] [ rebuild] [ reuse] [ motion] [ nomotion] -)
  • shadowmap only
  • shadowmap rebuild on|off
  • shadowmap rebuild merge
  • shadowmap motion on|off
  • shadowmap bias bias (версия mr 3.3 и выше)



Оператор
shadow off

отключает расчет raytrace-теней у всех объектов сцены.

Оператор
shadow on

включает просчет простых ray-trace теней (Simple) в сцене.

Оператор
shadowmap on|off

включает расчет карт теней для всех объектов сцены, параметры карт будут определяться из свойств источников света. По умолчанию используется shadowmap off.

Оператор
shadowmap opengl

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

Оператор
shadowmap only

позволяет рассчитывать только карты теней и не рассчитывать все изображение.

Оператор
shadowmap rebuild merge

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

Оператор
shadowmap bias bias

позволяет определить параметр bias для карт теней. В 3ds max вплоть до версии 7.5 этот параметр при рендере с mental ray нельзя определить, соответствующий параметр источника просто игнорируется транслятором.
В 3ds max 8 при расчете теней типа mental ray shadow map можно указать bias.

Группа параметров Rendering Algorithms

  • trace on|off (-trace on|off)
  • scanline on|off|rapid|opengl (-scanline on|off|opengl|rasterizer|rapid)
  • acceleration bsp|large bsp|grid (-acceleration bsp|largebsp|grid)
  • bsp size size (-bsp_size size)
  • bsp depth depth (-bsp_depth depth)
  • bsp shadow on|off (в. 3.1) (-bsp_shadow on|off)
  • grid resolution xres [ yres zres ] (-grid_resolution xres [ yres zres)
  • grid depth depth (в. 3.1) (-grid_depth depth)
  • grid size size (в.3.1) (-grid_size factor)



Оператор
scanline opengl

для расчета первичных лучей (лучей из камеры) будут использованы аппаратные возможности видеокарты. При сетевом рендеринге сервер в этом режиме подготавливает и передает информацию для ускорения расчетов пересечения на остальных сетевых компьютерах. Нужно отметить, что расчет в режиме OpenGL уступает по качеству программному рендерингу.

Оператор
bsp shadow on|off

создает отдельное BSP древо специально для расчета raytrace-теней от объектов, которые только отбрасывают тени и не видны для первичных лучей (не видны в камеру). Оператор предназначен для использования с объектами-дубликатами, имеющими более простую геометрию, чем оригинал, и предназначенных только для того, чтобы создавать тени объектов, которые они дублируют.

Остальные операторы этой группы аналогичны настроечными параметрам 3ds max.

Группа операторов Feature Disabling

  • lens on|off (-lens on|off)
    аналог - Renderer > Camera Effects > Camera Shaders > Lens
  • volume on|off (-volume on|off)
    аналог - Renderer > Camera Effects > Camera Shaders > Volume
  • geometry on|off (-geometry on|off)
  • displace on|off (-displace on|off)
  • displace presample on|off (в. 3.2) (-displace_presample on|off)
  • output on|off (-output on|off)
    аналог - Renderer > Camera Effects > Camera Shaders > Output
  • autovolume on|off
    аналог - Renderer > Ray Trace > Use Autovolume
  • photon autovolume on|off
  • pass on|off
  • lightmap on|off|only (в.3.4) (-lightmap on|off|only)
    аналог - Render Element > тип карты Lighting

Оператор
geometry on|off

отключает использование всех геометрических шейдеров в сцене. Стандартная поставка 3ds max не содержит механизма подключения геометрических шейдеров mental ray в сценах 3ds max. Однако MAX SDK содержит исходный код плагина, скомпилировав который можно получить возможность подключения геометрических шейдеров.

Оператор
displace on|off

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

Оператор
displace presample on|off

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

Оператор
photon autovolume on|off

включает режим autovolume для фотонов. Если фотоны от источников света попадают внутрь объема объектов с photonvolume шейдерами, они будут корректно обсчитываться.

Оператор
pass on|off

если выполняется многопроходный рендеринг, этот оператор позволяет отключить его, при этом все операторы расчета проходов (passes), определенные для камеры, игнорируются, а изображение будет рассчитываться полностью.

Группа параметров Caustics

  • caustic on|off (-caustic on|off)
  • caustic accuracy N [R] (-caustic_accuracy nphotons [radius])
    аналог - N: Maximum Num. Photons per Sample, R: Maximum Sampling Radius
  • caustic filter box|cone [ filter_const]
    аналог - Filter
  • caustic scale r g b [ a] (в. 3.4) (-caustic_scale r g b [ a])
  • photon trace depth reflect [ refractt [ sum ]] (-photon_depth reflectint [ refractint [ sumint]])
  • photonmap file " filename " (-photonmap_file " filename ")
  • photonmap rebuild on|off
  • photonmap only on|off (-photonmap_only on|off)







Оператор
caustic scale r g b [ a]

позволяет определить множители яркости цвета для всех четырех каналов по отдельности (r, g, b и альфа-канала). Значения коэффициентов больше 1 увеличивают яркость.

Оператор
photonmap only on|off

если используется с параметром "on" позволяет рендерить только фотонную карту, полное изображение не рассчитывается. По умолчанию - "off". Получить рендер только фотонной карты можно и с помощью интерфейса 3ds max, однако процедура будет более сложной.

Группа параметров Global Illumination

  • globillum on|off (-globillum on|off)
  • globillum accuracy N [R] (-globillum_accuracy nphotonsint [radius])
    аналог - N: Maximum Num. Photons per Sample и R: Maximum Sampling Radius группы GI
  • globillum scale r g b [ a] (в. 3.4) (-globillum_scale r g b [ a]3.4)
  • photonvol accuracy N (-photonvol_accuracy nphotonsint [radius])
    аналог - N: Maximum Num. Photons per Sample группы Volumes
  • finalgather on|off|only (в. 3.3) |fastlookup (-finalgather on|off|only3.3|fastlookup)
  • finalgather accuracy [ view ] N [R_1 [R_2]] (-finalgather_accuracy [ view ] nraysint [ maxdist [ mindist ]])
    аналог - N: Sampling, R_1: Radius, R_2: Min. Radius, view: Radii in Pixels группы Final Gather
  • finalgather falloff [ start ] stop (в. 3.2) (-finalgather_falloff [ start ] stop)
  • finalgather file " filename " (-finalgather_file " name ")
  • finalgather file [ " name ", " name ", ... ] (в. 3.3) (-finalgather_file [ " name " " name " ... ])
  • finalgather filter size (в. 3.2) (-finalgather_filter size)
  • finalgather rebuild on|off| freeze (-finalgather_rebuild on|off|freeze)
  • finalgather trace depth reflect [ refract [ diffuse (в. 3.4) [ sum ]]] (-finalgather_depth reflectint [ refractint [ diffuse3.4int [ sumint ]]])
    аналог - группы Trace Depth секции Final Gather
  • finalgather presample density T (в. 3.4) (-finalgather_presample_density T)
  • finalgather scale r g b [ a] (в. 3.4) (-finalgather_scale r g b [ a])



Оператор
globillum scale r g b [ a]

определяет множители для цветовых каналов освещения, оцененного по фотонной карте. Значения r, g ,b, a больше единицы увеличивают яркость соответствующего цвета.

Оператор
finalgather only

с параметром only позволяет рендерить только FG-карту, без полного расчета изображения.

Оператор
finalgather file [ " name ", " name ", ... ]

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

Оператор
finalgather presample density T

позволяет управлять плотностью FG-точек, рассчитываемых в первой, предварительной, фазе. Плотность (и общее количество) FG точек будет изменено в T раз.

Оператор
finalgather scale r g b [ a]

позволяет управлять яркостью освещения рассчитанного final gathering отдельно по каждому каналу.

Группа операторов Frame Buffer Control

Эта группа операторов аналогов в интерфейсе рендеринга 3ds max не имеет.

Оператор
colorclip rgb|alpha|raw (-colorclip rgb|alpha|raw)

определяет способ сжатия рассчитанного цвета в диапазон значений [0,1], который соответствует обычному диапазону оттенков [0, 255] одного канала RGB-модели представления цвета, перед его записью в целочисленный 8-битный frame buffer или файл с 8 битами на канал. Фактически - это оператор, преобразующий внутреннее представление рассчитанного mental ray цвета в модель RGB.
Параметр rgb принят по умолчанию. В этом режиме цвет сначала сжимается в дискретный диапазон [0,1] и затем альфа канал сжимается в диапазон [ max (R, G, B), 1]. Используется в тех случаях, когда цвет важнее точности альфа-канала. Если указан параметр alpha, в [0,1] сжимается сначала альфа-канал, а потом цвет сжимается в диапазон [0, максимальное значение альфа-канала]. Используется в тех случаях, когда точное значение альфа канала важнее цвета, например, при композиции рендер-слоев для точного представления прозрачности. При указании параметра raw цвет и альфа-канал сжимаются в диапазон [0, 1] независимо друг от друга. Этот режим нельзя использовать, если будет выполняться композиция рендер-слоев в одно изображение, режим также автоматически включает оператор premultiply в режим "on". Во всех режимах цвет сжимается с учетом используемого режима оператора desaturate.

Оператор
desaturate on|off (-desaturate on|off)

используется для вывода цвета во frame buffer, не обладающего 32-битной точностью представления цвета, если значение цвета лежит вне заданного диапазона [0, max], значение max определяется режимом оператора colorclip. Если desaturation используется с параметром "off", цвет просто сжимается к заданному диапазону. В режиме "on" mental ray пытается изменить яркость, смещая значение цвета вниз по оси grayscale цветового куба, пока цвет не окажется в пределах заданного диапазона. По умолчанию desaturation используется в режиме "off ".

Оператор
premultiply on|off (-premultiply on|off)

используется для масштабирования (premultiplication) значений цветовых каналов R, G, B умножением их на значение альфа-канала для соответствующего пиксела. Например, при 10% непрозрачности цвет хранится не в формате (1, 1, 1, 0.1),а в виде (0.1, 0.1, 0.1, 0.1). Единственная причина такого представления в том, чтобы значения R, G и B никогда не превысили значения альфа-канала. mental ray всегда использует масштабирование цвета во внутренних вычислениях и при передаче цвета шейдерам. В режиме premultiply off оператор инструктирует mental ray выполнить операцию, обратную масштабированию (то есть делит цвет на альфа-канал). Оператор игнорируется при использовании colorclip raw.

Оператор
dither on|off (-dither on|off)

включает "шум" при сохранении цвета в 8-битный фреймбуфер. Внутренние вычисления цвета mental ray выполняет с использованием чисел с плавающей запятой, и может выводить результаты расчетов во фреймбуфер с поддержкой 32- , 16- и 8- бит на канал. Поскольку 8-битное представление (стандартная модель RGB с 256 дискретными оттенками на канал) и 16 -битное представление точных внутренних вычислений приводят к появлению ошибок округления и, как следствие, к проявлению эффекта полос, используется оператор dither, который зашумлением маскирует "полосатость" цвета. По умолчанию оператор отключен ("off").

Оператор
gamma gamma_factor (-gamma gamma_factor)

выполняет гамма-коррекцию 8-битных фреймбуферов для компенсации нелинейности устройств вывода (мониторов, например). Не работает с буферами в 16- и 32-битном представлении. По умолчанию значение gamma_factor = 1, что равносильно отключению гамма-коррекции. В 3ds max предусмотрена гамма-коррекция, но транслятор настройки гаммы игнорирует.

Оператор
frame buffer n [ " type "]

определяет или удаляет пользовательский фрейм-буфер с номером n. Начиная с версии mental ray 3.4, число пользовательских буферов неограниченно (в более ранних версиях разрешалось использовать не более 8 буферов). Параметр "type" может определять любой из стандартных типов изображений, разрешенных для оператора output камеры, например, rgba или z. Если параметру предшествует знак "+", сэмплы будут интерполироваться, " -" сэмплы интерполироваться не будут (принято по умолчанию). После того, как буфер определен оператором frame buffer n, он может использоваться в качестве параметра оператора fb вывода данных для камеры: fb n. Несмотря на определение, пользовательский фреймбуфер будет реально создан только в том случае, если он упоминается хотя бы одним оператором вывода.

Группа параметров Scene Geometry

аналогов в 3ds max не имеют

Оператор
camera space

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

Оператор
object space

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

Группа операторов Contours

  • contour store shader
  • contour contrast shader

Операторы аналогичны соответствующим параметрам группы Contours секции Camera Effects интерфейса рендера в max.



Оператор
state shader shader

Шейдеры типа state могут быть использованы для управления состоянием (state) mental ray перед вызовом шейдера, указанного в качестве параметра. State shaders вызываются в четырех случаях: когда shader state создается или разрушается, перед расчетом сэмпла и сразу после расчета сэмпла. Эти четыре случая могут быть обнаружены и определены по константам, передаваемым шейдерам от mental ray.

Группа операторов Diagnostic Modes

  • diagnostic grid off|object|world|camera S (-diagnostic grid off|object|world|camera size)
  • diagnostic bsp off|depth|size (-diagnostic bsp depth|size)
  • diagnostic photon off|density|irradiance N (-diagnostic photon off|density|irradiance max)
  • diagnostic samples on|off (-diagnostic samples on|off)
  • diagnostic finalgather on|off (-diagnostic finalgather)

идентична параметрам max:



Группа дополнительных операторов

Оператор
face front|back|both (-face front|back|both)

позволяет определять рендер полигонов в зависимости от направления их нормалей. В режиме "front" рендериться будут только те полигоны, нормали которых направлены к камере, "back" - только полигоны, обращенные "тылом" к камере, "both" -- все полигоны. Оператор может быть полезен для быстрого предварительного просмотра или отладки сцен.

Оператор
task size sizeint (-task_size task_sizeint)
аналогичен параметру Renderer > Sampling Quality > Options > Bucket Width

Оператор
luminance weight ntsc

определяет весовые множители (0.299, 0.587, 0.114), которые использует API-функция mi_luminance при расчете RGB цвета, в соответствии со стандартом NTSC.

Оператор
luminance weight r g b

позволяет задавать произвольные значения множителей RGB цвета, рассчитываемого mi_luminance.

Ключи рендеринга командной строки ray.exe

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

Общий формат запуска рендера из командной строки следующий:

ray [options] [scenefile],

где [options] - это ключи командной строки, [scenefile] - имя экспортированного mi-файла сцены. При назначении имен файлов следует избегать пробелов и текстовых символов не основной кодировки, например, - русских букв, если имя mi-файла указывается без кавычек. Если же при указании имени файла используются кавычки, то допустимы любые символы. В частности, ray scene 1.mi вызовет сообщение об ошибке, правильный формат команды: ray "scene 1.mi".

-echo "filename" [ ascii] [ source] [ approx] [ norendercommand] [ textures] [ incremental3.2] [ omit " S "] [ norecurse " S "] [ explode [ N]] -

Параметр-ключ echo будет копировать файл сцены в файл с именем "filename", при этом копирование выполняется по-разному в зависимости от дополнительных опций ключа:

  • [ ascii ] компоненты векторов будут записаны в ASCII - формате (по умолчанию используется binary).
  • [ source ] описание геометрии при копировании выполняется с использованием геометрических примитивов сцены-источника, если это возможно, а не треугольников.
  • [ approx ] при копировании используется представление геометрии сцены треугольниками, если возможно, (опция противоположна по смыслу source).
  • [ norendercommand ] отключает эхо команды render.
  • [ textures ] включает точную передачу пиксельных данных текстур, используемых в сцене.
  • [ incremental3.2 ] позволяет более компактно описывать сцены с анимацией, опуская в каждом фрейме те элементы, которые остались неизменными по отношению к предыдущему кадру.
  • [ omit [ " S " ]]позволяет исключить вывод при копировании определенных элементов сцены, тип элемента указывается параметром S. Эта опция полезна, скажем, для исключения излишних деклараций шейдеров из mi-файла сцены, которые добавляет 3ds max при трансляции. Или для извлечения набора определенных элементов из сцены, например, - всех источников света, или всех instance-элементов и так далее.
  • [ explode [ N ]] при копировании все геометрические объекты с числом вершин большим, чем указано в N, будут записаны в отдельные файлы с именами, начинающимися с autoload. В файле сцены объект заменяется контейнером со ссылкой на файл описания геометрии объекта. Опция explode очень полезна, если необходимо выполнять ручное редактирование больших mi-файлов - выведение описания геометрии в отдельные файлы позволяет сильно уменьшить размер файла самой сцены и тем облегчить его редактирование.
  • [ norecurse ] позволяет исключить при копировании вывод ссылок (references) на определенные типы элементов сцены, указанных параметром S:
S - элемент
g - instance group
o - геометрический объект
c - камера
l - источник света
m - материал
t - текстура
p - блок option
s - именной шейдер
d - declaration
u - user data
ig - instance инстанс-группы
io - instance объекта
ic - instance of a camera
il - instance источника света
is - instance геометрического шейдера

-imgpipe fd

обычно mental ray выводит результаты своей работы в файл. При использовании ключа -imgpipe эта информация может быть выведена на устройство с дескриптором fd. Например, этот ключ можно использовать для интерактивного подключения к конвейеру вывода программы-вьювера imf_disp.exe:

ray -imgpipe 1 "scene.mi" | imf_disp -

в этом случае процесс рендера изображения будет отображаться в отдельном окне во время работы ray.exe.

-render begin [ end [ inc ]]

выполняется рендер только фреймов, начиная с номера, указанного в begin, и заканчивая номером, указанным в end. Если задано значение inc, рендерится будут только фреймы-кадры с номером, кратным значению inc. Этот ключ удобно использовать для расчета fg-файла, с учетом и сохранением изменений только избранных кадров, например, только каждого 10-го кадра.

-verbose on|off| levelint или -v on|off| levelint

ключ позволяет включить отображение различной информации о ходе рендера и определить степень его детальности. Значения levels соответствуют: 1 (F)- вывод сообщений только о фатальных ошибках, 2 (E) - сообщения об ошибках, 3 (W) - предупреждения, 4 (P)- отчет о ходе расчетов (progress), 5 (I) - информационные сообщения, 6 (D) - отладочная информация, 7 (V) - отладочная информация для verbose. Сообщения более высокого уровня включают и все сообщения более низких уровней.

-xcolor [ "control "]

сообщения отображаются в цвете, в частности, все ошибки будут отображаться красным цветом. Параметр control позволяет задать собственную цветовую схему: число символов и их положение соответствует уровню, а символьное значение буквы - цвету, символ "точка" используется для отключения цвета. По умолчанию установлена цветовая схема FEWPIDV = mrc..gb, то есть фатальные ошибки отображаются розовым цветом, ошибки - красным, предупреждения - бирюзовым, ход выполнения рендеринга и информация о нем - обычным белым, отладка - зеленым, отладка verbose - синим.

-help

выводит экран помощи с перечислением основных ключей и их синтаксиса.

Примеры команд:

ray -v 5 -x on -imgpipe 1 "scene.mi" | imf_disp -notop -

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

ray -v 3 -x "yrb..." -imgpipe 1 "scene.mi" | imf_disp -notop -

рендеринг сцены scene.mi с отображением только ошибок и предупреждений, для которых используется пользовательская цветовая схема: фатальные ошибки будут отображаться желтым, ошибки - красным, предупреждения - синим.

ray -v 3 -x on -echo "scene_explode.mi" omit d explode -imgpipe 1 "scene.mi" | imf_disp -notop -

Таким образом, рендеринг из командной строки с использованием ключей в сочетании с редактированием операторов блока Options является гибкой альтернативой рендеринга с использованием интерфейса 3ds max (и любого другого 3d- пакета), обладающей рядом уникальных возможностей.

Далее будет подробно рассмотрена конструкция описания источников света и ее свойства, а также - примеры реализации конкретных типов источников света в интерфейсе 3ds max, в частности - источников произвольной формы и варианты sky light.

Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.