Arnold for 3ds Max 5.9.0

Arnold for 3ds Max (MAXtoA) 5.9.0 使用 Arnold 7.5.0.0 并包含新的推理成像器、全局灯光采样和 GPU 体积的性能改进以及其他增强功能和错误修复。

亮点

  • 性能得到了改进,包括轻量级 USD 实例化、改进的全局灯光采样、经过 Mipmap 处理的 CPU 体积、更快的 GPU 体积渲染以及更快的 TX 文件处理。
  • 新的头发散射模式;新的线和 nearest_points 着色器;改进了 OpenPBR Surface 薄膜。
  • 更灵活的灯光采样;具有负密度的挡光对象。
  • 光晕光圈模式和颜色散射。
  • GPU 增强功能包括 NVIDIA Blackwell 支持、更高效的实例化和运动向量着色器支持。
  • Arnold for 3ds Max 现在在 Arnold 渲染视图中包含实时渲染报告。

性能改进

轻量级 USD 实例化

Arnold 现在通过创建更少 Arnold 节点的轻量级实例化系统渲染 USD 实例。实例化现在提高了内存效率,并且生成第一个像素的时间更快,因为场景初始化速度更快。例如,在 Intel Jungle Ruins 场景中,呈现第一个像素的时间缩短了 85%,内存使用情况降低了 42%。usd#2459

支持 CPU 上经过 Mipmap 处理的 OpenVDB 文件

体积节点现在接受具有经过 mipmap 处理的栅格的 OpenVDB 文件。不同的 Mipmap 级别由“_level_N”后缀区分,其中 N 是 Mipmap 级别。然后,Arnold 会在渲染过程中自动选择适当的 Mipmap 级别,这可以在处理大量散射的场景(例如云)时显著提高速度,而视觉上的差异大多很小。Mipmap 级别越高的体积在外观上可能存在更大的差异。用户还可以在体积节点或其实例上指定 mipmap_bias(通过声明相同名称的用户数据),这将按该量调整自动 Mipmap 选择。(ARNOLD-14453、ARNOLD-15056)

您可以使用 Arnold API 或 kick 生成经过 Mipmap 处理的体积。Arnold API 包含新的 AiVolumeFileMakeLODs 函数。kick 具有新的 -makevolumelods 命令行标志。API 和 kick 标志都带有三个参数:输入文件、输出文件和要生成的最大层数。生成的实际层数可能小于请求的数量。(ARNOLD-16921)

wdascloud byc-cloud 合成 1 合成 2 日落云
原始体积
经过 Mipmap 处理的体积(3 个级别)
加速 1.5x 1.9x 2.6x 2.1x 1.8x
经过 Mipmap 处理的体积(6 个级别)
加速 2.0x 2.8x 5.2x 3.2x 2.7x

改进了 GPU 体积渲染性能

体积的 GPU 渲染速度提高了多达 3.5 倍。(ARNOLD-8936)

wdascloud byc-cloud 合成 1 合成 2 日落云
加速 2x 1.12x 3.7x 3.5x 1.31x

提高了全局灯光采样 (GLS) 的稳定性,并增加了对灯光传播的支持

GLS 现在更加强大,GLS 将四边形灯光和圆盘灯光的扩散参数考虑在内。当灯光扩散较窄或扩散接近光源边缘时,这通常会减少噪波。我们发现,在一些具有特别棘手照明的测试场景中,渲染速度提高了多达 6 倍。在下面的后巷场景中,有一个比较常见的照明设置,其中的一些灯光呈扩散,这样渲染速度提高了 1.4 倍。(ARNOLD-13684、ARNOLD-16610 和 ARNOLD-16551)

比 7.4.3 快 1.4 倍
7.4.3.2 7.4.4.0(与 7.4.3.2 的采样数相同)

提高了自动生成或使用现有 TX 文件时的性能

检查现有 TX 文件和自动生成缺少的文件的速度现在明显加快,从而缩短了使用 texture_use_existing_tx 或 texture_auto_generate_tx 时呈现第一个像素的时间。如下表所示,速度提升在多核计算机上最为明显,尤其是在 Windows 上。(ARNOLD-13116)

texture_auto_generate_tx speedup texture_use_existing_tx speedup

更快地处理中断的网格预处理

在 IPR 期间中断网格预处理(例如,通过在加载场景时移动摄影机)不再导致速度减慢和工作浪费。随着核心数和网格尺寸的增加,预计速度提升也会相应提高。我们观察到以分钟计的时间节省。(ARNOLD-16978)

着色器增强功能

标准头发的散射模式

散射选项 scattering_mode 已添加到标准头发着色器。使用近似模式获得以前的行为。精确模式可能会产生更多噪波,因此渲染时间会多出约 10-30%,但通过将每根头发模拟为圆柱体而不是平面,可以提供更逼真的效果,尤其是在特写镜头中。自适应模式对近距离头发使用精确模式,对远处的头发使用近似模式,从而自动平衡质量和性能。(ARNOLD-16726、ARNOLD-16852)

近似 精确 近似(特写) 精确(特写)
自适应

最近点着色器

新的 nearest_points 着色器从 OpenVDB 点文件对点云进行采样,或者从点、曲线和多边形网格节点对顶点进行采样。该着色器可以输出找到的点数、平均距离或这些点的自定义用户数据属性的平均值。(ARNOLD-15550)</p>

最近点距离 → RampRGB(自定义) 最近点距离 → 直线 → 标准体积透明

pointcloud_search 和 pointcloud_get OSL 支持

添加了对 pointcloud_search 和 pointcloud_get OSL 内置函数的支持。若要指定 points、curves 或 polymesh 节点,请使用节点名称作为点云名称。要指定 OpenVDB 文件,请使用格式 filename:grid 作为点云名称。注意:这些函数在 GPU 上尚不可用。(ARNOLD-15550)

线着色器

线 → UV 变换(屏幕空间) 线 → UV 变换(屏幕空间) 线 → 三切面

线着色器可渲染各种样式的线,在与噪波和纹理结合使用时创建几何图案或类似画笔笔迹的纹理。通过将线着色器连接在一起,可以生成复杂的层次图案。我们建议将线着色器与 uv_transform 一起使用。(ARNOLD-14976)

uv_transform 中的“空间”选项

uv_transform 节点现在包括具有纹理(默认值)和屏幕选项的空间参数。纹理模式如之前一样,将变换应用于标准纹理 UV,而屏幕模式使用屏幕 UV 坐标。(ARNOLD-14976)

纹理(默认值) 屏幕

compare_string 着色器

Arnold 现在有一个 compare_string 着色器,支持两个字符串之间的等于和非等于比较。(ARNOLD-12978)

改进了 OpenPBR Surface 薄膜

薄膜现在在物理上更加正确,节能效果也得到了改进。请注意,这可能会在现有资源中产生显著的色调更改。另请注意,为了向后兼容,此更改尚未应用于标准曲面着色器。(ARNOLD-15981)

7.4.3 7.4.4

照明增强功能

增加了“全局灯光采样”的最大采样数

全局灯光采样器使用的 GPU 和 CPU 最大采样数现在均为 1024。(ARNOLD-16552)

灯光的采样模式

灯光具有新的 sampling_mode 枚举参数,用于控制用于该灯光的采样类型。在默认自动模式下,灯光将根据全局灯光采样渲染选项(如果已启用)或局部采样设置进行采样。在局部模式下,灯光根据灯光的采样和体积采样参数进行采样,并且与全局灯光采样覆盖的灯光分开采样。本地模式有助于确保重要的、难以采样的灯光接收到足够的采样。(ARNOLD-13467、ARNOLD-16746)

具有负密度的挡光对象

现在支持带渐变和负密度值的挡光对象。(ARNOLD-16338)

7.4.3 7.4.4

控制网格灯光是否投射阴影

现在,可以将网格灯光设置为对阴影光线不可见,以便它们不会投射阴影。这使得网格灯光的行为与其他灯光类型类似,它们也不会投射阴影。您可以使用多网格可见性标志来控制网格灯光阴影。(ARNOLD-15560、ARNOLD-16803)

光晕增强功能

改进了光晕镜头效果

镜头效果成像器改进了光晕模式,可以在几分之一秒内运行并产生更有趣的光晕效果。新的光圈光晕模式是默认模式,它在程序上模拟由物理摄影机定义的光晕,您可以使用 bloom_strength 控制大小,使用 aperture_blades 和 aperture_curvature 控制钉形图案的形状和数量。另一个新模式 shape_file 允许您从磁盘加载光晕内核。(ARNOLD-10882、ARNOLD-16614)

简单光晕模式及其 bloom_radius 参数现已弃用。相反,使用曲率为 1 的新光圈模式可获得圆形光晕,并使用 bloom_strength(而不是 bloom_radius)来调整光晕大小。

光晕颜色色散

imager_lens_effect 节点具有新的 aperture_dispersion 参数,该参数控制在 bloom_mode 光圈中时的颜色色散量。增加色散值会使较暖的颜色进一步分开;减小该值使颜色逐渐变冷。默认值 1 可提供真实的色散。(ARNOLD-16912)

-4 -1 0 1 4

USD 增强功能

统一 GPU 上的高斯过滤器

GPU 相机代码现在使用与 CPU 相同的高斯过滤器实现。这样可以在 CPU 和 GPU 之间提供更接近的匹配和一致的结果。(ARNOLD-17059)

增强了对 GPU 渲染的参数覆盖支持

参数覆盖现在在 CPU 和 GPU 上以一致的方式运行,从而显著提高了稳定性,尤其是在覆盖实例化程序的复杂场景图形中。(ARNOLD-8663)

OIDN NVIDIA Blackwell 支持

2.3.3 OIDN 升级引入了对 NVIDIA Blackwell GPU 的支持,例如 RTX 50x 系列显卡和 AMD RDNA4 GPU。(ARNOLD-15745、ARNOLD-16201)

减少了实例的 GPU 内存使用情况

现在,为了节省 GPU 内存,实例的 GPU 加速结构已压缩。例如,在具有 100 万个实例的场景中,这会将 GPU 内存使用情况从 195 MB 减少到 167 MB。(ARNOLD-16556)

GPU 支持运动向量着色器

GPU 渲染现在支持运动向量着色器。(ARNOLD-15172)

Arnold for 3ds Max 增强功能

其他增强功能

更好的背面法线

背离摄影机的插值法线可能会在低多边形网格上产生变暗的瑕疵。此类法线现在向视图方向弯曲,以防止出现这种情况。(ARNOLD-6993)

视口实例

  • 实例化器节点实例在视口中可见:实例化器节点创建的实例现在可以显示在视口中,从而在场景设置和交互式渲染期间更轻松地可视化和使用实例化几何体。(ARNOLD-16778)

Cryptomatte

  • 实例的 Cryptomatte 选项:Cryptomatte 着色器中添加了一个新参数 object_split_instances。它确定不同的实例应该具有不同的遮罩还是相同的遮罩。(ARNOLD-16997)
  • 支持 crypto_object_offset 以及 crypto_object 用户数据:用户数据现在可以一起用于形状。现在,Cryptomatte 密钥包含两个用户数据值,它们彼此附加。(ARNOLD-16825)
  • 具有实例的 Cryptomatte:Cryptomatte 属性 object_split_instancesis 现在默认被禁用,以便 Cryptomatte 为实例生成较小的清单,并为同一对象的所有实例返回相同的哈希值。(ARNOLD-17320)

渲染报告

  • 选项节点包含在 JSON 统计信息中:选项节点参数现在将写入 JSON 统计信息文件,以便在分析性能数据时更容易了解所使用的渲染设置。(ARNOLD-8558)
  • 渲染报告中的一致单位舍入:“Arnold 渲染报告”现在将值舍入为一致的单位,从而提高了可读性和可比性。以前,不同的统计信息可能以混合单位显示(例如,有时以毫秒为单位,有时以秒为单位),这使得比较变得困难。(ARNOLD-17036)
  • 帧和会话数据的单独统计信息:在交互式渲染期间,Arnold 现在跟踪两种类型的统计信息:每个帧的单个帧渲染的统计信息,以及每个会话的统计信息(针对整个渲染会话中规格化的累积值)。除了会话统计信息外,日志还输出每个帧的统计信息,而统计信息 JSON 文件包含最终帧统计信息和会话统计信息。这种分离有助于用户分析单个帧的性能和整体渲染会话。(ARNOLD-16735)
  • 渲染报告:增强了统计信息可视化:在交互式渲染期间,Arnold 渲染报告现在同时显示每帧统计信息和会话统计信息。其他改进包括堆叠条形图,以便更好地可视化这些统计信息,以及其他用户体验增强功能。(ARNOLD-16736)

EXR 元数据

  • EXR 元数据中的总渲染时间:附加到上一个渲染时,总渲染时间累计并在 EXR 元数据中更新。(ARNOLD-15565)

kick

  • 分布式 Kick 有两个新的命令行参数:--tile y x,用于将渲染拆分到多个进程中。--tile y x 采用两个整数参数指定 x 总分片中的分片 y(例如,--tile 0 4 渲染分片 1/4,'--tile 1 4' 渲染分片 2/4,依此类推)。每个分片都与分片编号一起保存,作为文件名的一部分(例如 example.0002_0_4.exr)。渲染所有分片后,使用同一命令行运行 kick --merge,将分片合并到最终图像中。(ARNOLD-16921)
  • 使用场景格式插件 kick 自定义参数:可以使用新的 kick 参数 -sceneload_arg %s %s 将选项传递给场景格式插件。-sceneload_arg 采用两个字符串:选项名称和其值。这允许您在启动 USD 文件时指定自定义渲染设置基本体。例如,使用名为“/Render/settings2”的渲染设置基本体 kick scene.usd -sceneload_arg render_settings /Render/settings2renders (ARNOLD-9865)
  • kick 的默认降噪器选项:kick -default_nodesflag 具有一个新的降噪器选项,如果不存在降噪器,该选项会添加 OIDN 降噪器。(ARNOLD-16641)

成像器

  • 叠加成像器跨平台支持:如果指定的字体不可用,叠加成像器现在使用等效的系统字体进行渲染。(ARNOLD-16892)

改进了 maketx 错误消息

TX 转化错误消息现在包含目标 TX 文件名,这样可以更轻松地确定错误原因。(ARNOLD-17044)

组件

  • 更新 CER:客户错误报告 (CER) 库已更新到 v7.2.4。(ARNOLD-16796)
  • OpenColorIO 2.5.1:Arnold 现在包括 OpenColorIO 2.5.1。此更新包括自 2.5.0 版本以来的所有修复和小的改进。有关更多详细信息,请参见完整发行说明。(ARNOLD-17324)
  • 升级 Autodesk 分析计划:Arnold 包含较新版本的 Autodesk 分析计划 (ADP),可提高稳定性和性能。(ARNOLD-16814)

USD 增强功能

API 更改

  • 统一搜索路径:程序和纹理搜索路径现已统一到新的 asset_searchpath 中。色调映射成像器的 LUT 也使用此新搜索路径。(ARNOLD-16486)
  • 在 OSL 中可用的 Chiang hair BSDF:新的闭合量 chiang_hair_bsdf 现在可在 OSL 中使用。此闭合量对应于标准头发着色器中使用的 BSDF,且 scattering_modeset 设置为精确。(ARNOLD-16326)
  • interactive_target_fps:IPR 的 fps 目标现在仍可通过设置 interactive_target_fpsare 进行控制,但如果未提供值,将设置合理的默认值。(ARNOLD-16219)
  • AiLibraryPath:添加了新的 API 函数,可返回 Arnold 库所在目录的路径。(ARNOLD-16642)
  • 资源 API:新的 API 函数允许您查询 Arnold 领域 (AiUniverse) (AiUniverse (AiUniverse)、场景文件 (AiSceneGetAssetIterator) 或程序 (AiProceduralGetAssetIterator) 中定义的文件依存关系(资源)。(ARNOLD-16891)
    例如,查询 scene.ass 的资源
    AtAssetIterator* it =
    AiSceneGetAssetIterator("scene.ass"); while
    (!AiAssetIteratorFinished(it)) { const AtAsset* asset =
    AiAssetIteratorGetNext(it); // do something with the asset }
    AiAssetIteratorDestroy(it);
  • 自定义场景格式的资源:插件开发人员现在可以在其场景格式插件中实施 scene_get_assetsmethod,以返回特定于该格式的文件依存关系(资源)。此方法是可选的,如果未实施,Arnold 会加载场景并查询生成的 Arnold 领域中的资源。(ARNOLD-16891)
    例如,以下代码返回 2 个资源:
    scene_get_assets { AtAsset* asset1 =
    AiAsset("/path/to/mytexture.exr", AtFileType::Asset);
    AiAssetAddReference(asset1, "mytexture.exr"); AtAsset* asset2 =
    AiAsset("/path/to/myvolume.vdb", AtFileType::Asset);
    AiAssetAddReference(asset2, "myvolume.vdb"); AtArray* assets =
    AiArrayAllocate(2, 1, AI_TYPE_POINTER); AiArraySetPtr(assets, 0,
    asset1); AiArraySetPtr(assets, 1, asset2); return assets; }
  • 文件类型元数据:可以在文件路径参数上定义新 file_typemetadata,以告知需要如何解析路径。如果未定义,将根据参数支持的扩展名(扩展名元数据)或指定文件的扩展名(如果有)猜测文件类型。可用值为 custom 和 pluginEnum)。(ARNOLD-17289)
  • 点云 API:新的 API 函数允许 C++ 着色器执行点云查询,这些查询与其 pointcloud_searchfunctions 的 OSL 规范非常相似。典型的用法模式是调用 AiPointCloudSearch 以获取索引列表和最近点计数,然后调用函数的 AiPointCloudGet 以从这些点查询特定属性。若要指定 points、curves 或 polymesh 节点,请使用节点名称作为点云名称。要指定 OpenVDB 文件,请使用格式 filename:grid 作为点云名称。(ARNOLD-15550)
  • 经过 Mipmap 处理的体积生成:Arnold API 和 kick 现在可以生成经过 Mipmap 处理的体积。Arnold API 包含新的 AiVolumeFileMakeLODs,具有新的 -makevolumelods 命令行标志。API 和 kickflag 都带有三个参数:输入文件、输出文件和要生成的最大层数。(ARNOLD-17114)
  • 新的基于节点的 AOV 工作流:新的 render_outputnode 将替换旧的基于字符串的输出语句。全局 Arnold 选项节点具有链接到驱动程序节点的新驱动程序参数,并且每个驱动程序节点都有一个 render_outputnodes 列表。(ARNOLD-5774)
    render_outputnode 具有以下结构:
    Type Name Unlinkable Default Bounds 
    ------- ------------------- ------- ------ 
    Inputs 
      STRING aov_name RGBA 
      ENUM type rgba 
      NODE filter null 
      STRING layer_name 
      BOOL half_precision false 
      NODE camera null 
      STRING name
    例如,像这样的选项节点:
    options { outputs 2 1 STRING "RGBA RGBA my_filter driver_output"
    "diffuse RGBA my_filter driver_output" } driver_exr { name
    driver_output filename "render.exr" }
    将变为:
    options { drivers 1 1 NODE "driver_output" } driver_exr { name
    driver_output render_outputs 2 1 NODE "my_RGBA_output"
    "my_diffuse_output" filename "render.exr" } render_output { name
    my_RGBA_output aov_name "RGBA" type "rgba" filter "my_filter" }
    render_output { name my_diffuse_output aov_name "diffuse" type
    "rgba" filter "my_filter" }
    注: 默认情况下,API AiSceneWritefiles 不会与这些节点一起导出。为此,请在参数的 AtParamValueMap 中将布尔 convert_string_outputsset 添加到 true
  • AtMatrix API:现在支持通过 operator!= 进行不等式比较。(ARNOLD-17354)

不兼容的更改

错误修复

系统要求