使用 mental ray 从命令行渲染

 
 
 

从命令行渲染

  1. 执行下列操作之一:

    在命令提示、shell 或终端窗口中,键入:

    Render -r <renderer name> <options> <filename>
    

    其中 <renderer name> 是渲染器的名称:

    • mr = NVIDIA.mi®mental ray®
    • mi = 使用命令行导出 .mi 文件
    • sw = 软件渲染器
    • hw = 硬件渲染器
    • vr = 矢量渲染器
    • hw2 = 硬件 2.0 渲染器
    • file = 使用存储在 Maya 文件中的渲染器

    其中 <filename>(通常)是 Maya ASCII 或 Maya 二进制文件,<options> 是一个或多个选项或标志。

    这样,将使用在命令行中指定的渲染器渲染图像或动画。

    注意

    如果未明确指定渲染器,Maya 使用在场景文件中指定的渲染器。该行为不同于 Maya 2010。

  2. 在命令提示下,键入:
    Render <options> <filename>
    

    <filename>(通常)是 Maya ASCII 或 Maya 二进制文件,<options> 是一个或多个选项或标志。

    它使用在文件中定义的渲染器渲染图像或动画。

mental ray for Maya 渲染器命令行渲染器标志

以下是特定于使用 mental ray for Maya 渲染器实现命令行渲染的所有标志及其说明。还可以在 Shell 或终端 (Mac OS X) 窗口中键入 Render -r mr -help,以查看此列表。

请参见命令行渲染器的公用标志

标志 说明
-v <int>

设置详细级别:

  • 0 代表禁用消息
  • 1 仅代表致命错误
  • 2 代表所有错误
  • 3 代表警告
  • 4 代表信息性消息
  • 5 代表进度消息
  • 6 代表详细的调试消息。
-rt <int>

指定渲染线程的数量。

-art

启用此选项,以使 Maya 可以自动计算最充分地利用工作站上的 CPU(或核心)时应使用的线程数量。

-mem <int>

由 mental ray 使用的内存的软限制(以 MB 为单位)。软限制意味着 mental ray 实际上可能会使用比指示的内存数量更多的内存。

-aml

启用此选项,以使 Maya 在开始渲染之前先动态计算内存限制。可以随时启用该功能,以获取更好的性能。

-ts <int>

设置渲染分片的像素宽度和高度。

-at

启用此选项,即可在渲染时自动确定最佳分片大小。

-rnm <boolean>

网络渲染选项。如果为 True,则“mental ray”将渲染从属计算机上几乎每一样东西,从而减少主计算机上的工作负荷。

-lic

已过时的标志。

-reg <int int int int>

设置最终图像的子区域像素边界(左侧、右侧、底部和顶部)。

-bakeSetDefault

指定一个烘焙集,以包括未指定给场景中的任何其他烘焙集的所有对象。

-rto

仅渲染目标。选择此选项,可执行 2D 渲染并仅渲染场景中的渲染目标。

-ort

忽略渲染目标。选择此选项,可执行 3D 渲染并仅渲染场景中的依存关系。

-rat

渲染所有目标。选择此选项,可包括批渲染中的所有可渲染依存关系和渲染目标。

-perframe

如果 mental ray 没有正确渲染动画,请使用此标志从头开始重新平移帧。此功能仅适用于批渲染。

-sampling (-sa)

如果您打开使用 mental ray for Maya 渲染器渲染的低于 Maya 2014 的场景,您的采样设置将更改为使用 “统一采样”(Unified Sampling)。某些功能(如轮廓渲染)不支持使用“统一采样”(Unified Sampling)

若要使用命令行渲染器渲染具有先前保存的旧版采样设置的旧版场景,请使用该标志及以下参数:

0 - 统一采样

1 - 旧版光栅化器

2 - 旧版采样

例如:

/path/to/Maya/bin/Render -r mr -v 5 -proj /path/to/proj -sampling 2 sceneName.ma

-unifiedQuality (-uq)

如果您设置了 -sampling 0(统一采样),或未对 Maya 2014 之前的场景设置 -sampling 标志(在这种情况下,将使用“统一采样”(Unified Sampling)),则还可以使用此标志设置“统一采样 > 质量”(Unified Sampling > Quality)

例如:

/path/to/Maya/bin/Render -r mr -v 5 -x 1 -uq 1.25 old_2012_sceneFile.ma

使用命令行导出 MI 文件

您可以使用命令行导出要使用 mental ray Standalone 渲染器渲染的 .mi 文件。使用此方法可实现以下用途:

示例

下面用两个示例说明如何使用命令行导出 .mi 文件。有关下面选定的导出选项的详细信息,请参见命令行标志

示例 1:

Render -r mi -im "cmdrenderTest" -of "gif" -binary 0 -file "C:/temp/test.mi" mayascene.ma

此命令采用 ASCII 格式(-binary 标志)创建并导出 mi 文件 C:/temp/test.mi(由 -file 标志设置)。在使用 Standalone 渲染器渲染 test.mi 文件时,输出图像文件采用 gif 格式(-of 标志)带有文件名 cmdrenderTest(-im 标志),并存储在当前目录中。

示例 2

Render -r mi -rd "C:/images" -im "cmdTest" -of "tif" -s 10 -e 15 -b 1 -binary 0 -perframe 0 -exportPathNames "1111111111" -file "C:/temp/test.mi" mayascene.ma

上面的命令将输出第 10 帧至第 15 帧(-s、-e 和 -b 标志),并为整个动画导出一个 .mi 文件(-perframe 标志)。导出的 .mi 文件采用 ASCII 格式(-binary 标志),带有路径和文件名 C:/temp/test.mi。.mi 文件使用其完整名称的绝对路径(-exportPathNames 标志)。

在使用 Standalone 渲染器渲染 test.mi 文件时,输出图像文件采用 tif 格式(-of 标志)带有文件名 cmdTest(-im 标志),并存储在 c:/images 目录(-rd 标志)。

命令行标志

下面是特定于使用命令行导出 .mi 文件的所有标志及其说明。还可以在命令提示符 (Windows) 或“终端”窗口(Linux、Mac OS X)中键入 Render -r mi -help 以查看此列表。(请注意,即使是导出文件以便使用 Standalone 渲染器进行渲染,也可以使用 Render 命令。)

请参见命令行渲染器的公用标志

导出标记

标志 定义
-file <string>

导出的 .mi 文件的名称。如果未指定,将使用场景名称。

-binary <boolean>

采用二进制格式或 ASCII 格式导出 .mi 文件。

0=ASCII

1=二进制

-tabstop <int>

要在 .mi 文件中使用的选项卡大小。使用此选项可以设置用于缩进 .mi 文件中的行的空格字符数量。该功能可以提高文件的可读性。仅限于使用 ASCII 格式的 .mi 文件。

-perframe <int>

控制动画的每帧 .mi 文件导出。

  • 0:导出单个 .mi 文件,其中包含整个动画,且利用增量更改
  • 1、2 或 3:每帧导出一个 .mi 文件,不使用增量更改。用于每个选项的 .mi 文件名都有所不同,如下所示 :
    • 1:每个 .mi 文件都被命名为 name.mi.#
    • 2:每个 .mi 文件都被命名为 name.#.mi
    • 3:每个 .mi 文件都被命名为“名称.#”

增量更改是指动画的第一帧与每个连续帧之间的场景修改。“mental ray”(mental ray)渲染第一帧并保留此帧,然后借助适用于下一个连续帧的相应场景修改对其进行编辑。这些场景修改就是增量更改。

-padframe <int>

设置用于在逐帧导出期间生成文件扩展名的帧编号填充(固定字段宽度)。填充的编号为具有指定位数的帧编号,其中 0 用于填充未使用的位数。

-perlayer <bool>

启用时,为每个渲染层导出 .mi 文件。默认值为 1。

-exportPathNames <string>

指定文件路径选项。字符串中的每个字符指定不同类型文件的文件路径选项,顺序如下:链接库,包括 .mi 文件、纹理文件、光照贴图、灯光剖面、输出图像、阴影贴图、最终聚集贴图、光子贴图,需要加载对象 .mi 文件。

可用的文件路径选项包括:

  • 0 - 无更改;1 - 绝对值;2 - 相对支;3 - 无路径,或者
  • 0 - 无更改;a - 绝对值;r - 相对值;n - 无路径

示例:-xp aarrararra 将使用链接库的绝对路径,包括文件、灯光剖面、阴影贴图和需要加载对象 .mi 文件;或使用纹理文件的相对路径、光照贴图、输出图像、最终聚集贴图和光子贴图。

默认设置:无更改。

有关详细信息,请参见 Mayatomr

-fragmentExport

启用碎片导出。此选项可导出带有更多选项的选定节点,进而同时导出相关或连接的节点。使用此选项可以创建仅包含选定对象或节点的 .mi 文件。

默认设置:导出整个场景。

此标志与 Maya 界面中的“导出当前选择”(Export Selection)选项等效。

应该与以下标志结合使用:-fragmentMaterials、-fragmentIncomingShdrs、-fragmentChildDag

示例:

mayatomr -mi -active -fragmentExport -fragmentChildDag -file “text.mi”

请注意,-fragmentMaterials、-fragmentIncomingShdrs 和 -fragmentChildDag 标志必须与 -fragmentExport 结合使用。此外,还必须使用 -active 来激活标志。

有关详细信息,请参见 Mayatomr

-fragmentMaterials

与碎片导出结合使用,可同时导出在当前选择中找到的形状/变换节点的材质。必须与 -fragmentExport 结合使用。

默认设置:忽略附着材质。

有关详细信息,请参见 Mayatomr

-fragmentIncomingShdrs

与碎片导出结合使用,可同时导出连接到在当前选择中找到的节点(即驱动节点)的着色节点。必须与 -fragmentExport 结合使用。

默认设置:忽略连接。

有关详细信息,请参见 Mayatomr

-fragmentChildDag

与碎片导出结合使用,可同时导出在当前选择中找到的变换节点的任何子标志。必须与 -fragmentExport 结合使用。

默认设置:仅导出选定对象/实例。

有关详细信息,请参见 Mayatomr

-exportFilter <int>

使用整型参数过滤 .mi 文件中某些类型的 mental ray 图元。整型参数是位图,其中每一位表示一个过滤器条目。有关可过滤的图元及其对应位值的列表,请参见 Mayatomr

默认设置:无过滤器。

-exportFilterString <string>

使用字符串参数过滤 .mi 文件中某些类型的 mental ray 图元。字符串的每个字符均表示相应的过滤器条目。有关可过滤的图元及其对应位值的列表,请参见 Mayatomr

默认设置:无过滤器。

-reg <int int int int>

设置最终图像的子区域像素边界(左侧、右侧、底部和顶部)。

使用命令行生成光照贴图

光照贴图命令使用 mental ray 光照贴图渲染将照明烘焙到纹理中。使用此方法可以增加渲染效率并节省项目所需的时间。照明计算昂贵且耗时。因此,如果场景中的照明条件没有发生变化,或者如果您的着色网络特别复杂,则可以以前预先计算并存储光照贴图,以便不会在渲染时执行照明计算。

使用光照贴图命令,可以指定全局设置,如输出目录,摄影机名称、阴影、对象。除非进行替换,否则默认情况下,使用指定给每个对象的纹理烘焙集来控制颜色模式、图像格式等。

示例

下面举例说明了如何使用命令行渲染光照贴图。有关下面选定的导出选项的详细信息,请参见命令行标志

Render -r lightmap -rd "C:/output" -sel pSphere1 -sel pSphere2 -override 1 -colorMode 3 -occlusionRays 16 

以上命令用于烘焙 pSphere1 和 pSphere2 并将光照贴图保存到 C:/output 中。

命令行标志

以下是特定于使用光照贴图渲染器实现命令行渲染的所有标志及其说明。还可以在命令提示符 (Windows) 或“终端”窗口(Linux、Mac OS X)中键入 Render -r lightmap -help 以查看此列表。

请参见命令行渲染器的公用标志

通用标志

标志 定义
-rd <string>

光照贴图目录的绝对路径。如果未指定,则将使用 mentalray 目录。

-camera <string>

通过指定相应的摄影机名称,选择所需的视图。如反射和镜面反射高光等功能依赖于视图,因此您可能希望通过选择此选项来更改视图。

-shadow <boolean>

指定是否要烘焙阴影(如果要烘焙阴影,则应在场景中启用阴影)。如果为 1,则烘焙阴影。

默认值:0。无阴影烘焙。

-all <boolean>

烘焙场景中的所有对象。如果为 0,则烘焙选定对象。

-sel <name>

选择要烘焙的对象、组和/或集。

纹理烘焙集设置标志

标志 定义
-override <boolean>

使用以下设置,可以覆盖场景中保存的纹理 Bakeset 属性。

-colorMode <int>

“颜色模式”(Color mode)选项。指定要计算的照明信息。

  • 0:“灯光和颜色”(Light and Color)。计算传入的灯光和曲面颜色以生成最终颜色。
  • 1:“仅灯光”(Light only)。计算直接和间接传入灯光。
  • 2:仅全局照明(Global Illumination only)。仅计算全局照明(间接灯光)。
  • 3:“遮挡”(Occlusion)。计算到达某一点的灯光量的灰度值。
  • 4:“自定义着色器”(Custom Shader)。将指定的自定义着色网络烘焙到烘焙集中。

默认值:0

有关详细信息,请参见纹理烘焙集属性

-occlusionRays <int>

遮挡光线的数量。通过增加遮挡光线的数量可以提高质量,但会降低性能速度。在将颜色模式设置为遮挡时使用。

默认值:64。

有关详细信息,请参见纹理烘焙集属性

-occlusionFalloff <float>

遮挡衰减。确定遮挡光线的最大长度。长度超过此值的光线被视为阻挡光线。在将颜色模式设置为遮挡时使用。

默认值:0。

有关详细信息,请参见纹理烘焙集属性

-normalDirection <int>

法线方向(Normal Direction)

您可能需要根据是从房间的外部还是内部进行烘焙,来调整法线的方向。例如,如果要从房间的外部进行烘焙,并且不希望场景中的照明受房间内照明的影响,则将法线方向设置为“表面背面”(Surface Back)(如果法线当前指向房间内部)。

  • 0:“朝向摄影机”(Face Camera)(朝着摄影机方向)
  • 1:表面正面(Surface Front)(从对象曲面朝外)
  • 2:表面背面(Surface Back)(从对象曲面朝里)。

默认值:1。

有关详细信息,请参见纹理烘焙集属性

-orthogonalReflection <boolean>

使用曲面法线作为投影方向。反射依赖于视图,因为反射会根据查看角度发生更改。因此,不需要从特定查看角度烘焙反射,尤其是摄影机飞行环境中使用光照贴图信息时。使用此选项时,可以使用曲面法线(而不是眼光线)来计算反射。计算的结果是类似于环境贴图的反射。设置为 1 时可选择此选项。

默认值:0。

有关详细信息,请参见纹理烘焙集属性

-customShader <string>

用于计算照明的“自定义着色器”(custom shader)的名称。将 colorMode 设置为“自定义着色器”(Custom Shader)时使用。

有关详细信息,请参见纹理烘焙集属性

-prefix <string>

此烘焙生成的光照贴图的名称将以此前缀开头。

-xResolution <int>

光照贴图 X 分辨率。

-yResolution <int>

光照贴图 Y 分辨率。

-fileFormat <int>

文件格式:

  • 1:tiff
  • 2:iff
  • 3:jpg
  • 4:rgb
  • 5:rla
  • 6:tga
  • 7:bmp。
-bitsPerChannel <int>

每个通道的字节数:1、2 或 4。

-samples <int>

每个像素的采样数。增加采样数将提高渲染结果的精度;但是,也会增加计算成本。

-bakeToOneMap <boolean>

为所有对象生成一个光照贴图。确保对象的 UV 的对象不重叠。设置为 1 时可选择此选项。

默认值:0。

-bakeAlpha <boolean>

在生成的纹理烘焙过程中包括 Alpha。设置为 1 时可选择此选项。

默认值:0。

有关详细信息,请参见纹理烘焙集属性

-alphaMode <int>

如何计算“Alpha 通道”(alpha channel)

  • 0:“通过”(Pass Through)。使“Alpha 通道”(alpha channel)始终不受影响。“Alpha 通道”(Alpha channel)包含着色网络的输出。仅用于自定义着色器。
  • 1:表面透明度(Surface Transparency)“Alpha 通道”(Alpha channel)将包含曲面透明度值。
  • 2:“表面颜色亮度”(Luminance of Surface Color)“Alpha 通道”(Alpha channel)将包含曲面颜色亮度。
  • 3:“覆盖”(Coverage)“Alpha 通道”(alpha channel)将存储采样点的覆盖。

默认值:1。

有关详细信息,请参见纹理烘焙集属性

-finalGatherQuality <float>

最终聚集预计算质量。

从摄影机渲染时,mental ray 会在实际渲染场景之前先预计算最终聚集过程。默认情况下,对烘焙禁用此预计算过程。从命令行烘焙时,可以使用此选项来执行相同预计算过程。

默认值:1。

有关如何设置浮点参数以获取所需的最终聚集质量的详细信息,请参见 Mayatomr

-finalGatherReflect <float>

用于反射的最终聚集预计算质量。

预计算光照贴图的最终聚集过程时,可以使用此选项来计算对象的反射率。使用浮点参数可以设置预计算的最终聚集点的分数(不是在正在烘焙的对象上,而是在从正在烘焙的对象投射的反射光线命中的对象上)。

默认值:0。

有关详细信息,请参见 Mayatomr

-uvRange <int>

仅将指定的 UV 范围烘焙到光照贴图。

  • 0:0 到 1
  • 1:整个 UV 空间
  • 2:用户指定的空间范围。(Umin Umax Vmin Vmax)。

默认值:0。

-uMin <float>

光照贴图的最小 U 值。在将“uvRange”设置为“用户指定”(User Specified)时使用。只有指定的 UV 范围被烘焙到光照贴图。

默认值:1。

-uMax <float>

光照贴图的最大 U 值。在将“uvRange”设置为“用户指定”(User Specified)时使用。只有指定的 UV 范围被烘焙到光照贴图。

默认值:1。

-vMin <float>

光照贴图的最小 V 值。在将“uvRange”设置为“用户指定”(User Specified)时使用。只有指定的 UV 范围被烘焙到光照贴图。

默认值:1。

-vMax <float>

光照贴图的最大 V 值。在将“uvRange”设置为“用户指定”(User Specified)时使用。只有指定的 UV 范围被烘焙到光照贴图。

默认值:1。

-overrideUvSet <boolean> “-uvSetName”标志使用结合,可覆盖当前指定的 UV 集并改用指定的 UV 集。

设置为 1 可启用该选项并使用“-uvSetName”标志来指定 UV 集的名称。

默认值:0。

-uvSetName <string>

要使用的 UV 集的名称。