跳转至

Load EXR 算子节点

加载 EXR 图像文件,并将其全貌结构——多层 Parts、通道 Channels 以及文件头元数据属性——解构暴露为强类型输出端口;出厂默认采用免读像素机制。

算子所属分类:EXR


核心速查 (TL;DR)

  • 出厂默认采用纯文件头扫描模式(由全局设置 openexr.header_only 控制),因此即便是体积庞大、包含几十个图层的多层电影级渲染帧,也能在毫秒内完成结构剖析;
  • 扫描完成后,节点会自动在属性面板中动态构建 Parts (图层分块) 与 Channels (通道列表) 专属分组:每个分层映射为一个 EXRPartArtifact,每个物理通道映射为一个 EXRChannelArtifact;
  • 可将图层输出端口接入 Display EXR Part,或将原生物理通道连接至 Display EXR Channel 乃至 Save EXR;
  • 面板内置 Open in external viewer 按钮,可直接调起本机绑定的专业 HDR 播放器对原文件进行实况监视。

典型工作流编排拓扑

[Load EXR 节点] → [Display EXR Part 节点] → (标准图像输出端口)
                ↘ [Display EXR Channel 节点] / [Save EXR 节点]

输入端口规范 (Inputs)

端口名称 数据类型 是否必填 详细功能与业务规范说明
file_path str 是 指向本地磁盘中 .exr 实体文件的物理绝对路径(支持波浪号展开与宏插值)。

输出端口矩阵 (Outputs)

端口名称 数据类型 详细功能与业务规范说明
image_width / image_height int 根据 Data Window (数据视窗) 计算出的有效像素分辨率宽度与高度。
part_count / channel_count int 文件中包含的总分层数 (Parts) 与总物理通道数 (Channels)。
compression str 压缩算法标识,例如 ZIP_COMPRESSION、PIZ_COMPRESSION、DWAA_COMPRESSION、DWAB_COMPRESSION 等。
storage_type str 底层像素瓦片存储架构:scanlineimage (扫描线)、tiledimage (分块)、deepscanline (深度扫描线)、deeptiled (深度瓦片)。
pixel_aspect_ratio float 像素宽高比(用于非正方形像素变形宽银幕画幅还原)。
data_window / display_window str 视窗坐标边界字符串:"xmin,ymin - xmax,ymax"。
time_code str 影视时间码字符串,格式为 HH:MM:SS:FF(若未编码则输出空)。
software str 创建该资产的源软件签名(例如 Nuke 15.0、Houdini、Blender 等)。
owner str 资产所有者或制作人员签名。
chromaticities str 色度坐标 JSON 字典,包含红绿蓝三原色与白平衡坐标:red_x/y, green_x/y, blue_x/y, white_x/y。
custom_attributes str 文件头中包含的所有非标专有元数据的 JSON 序列化字符串。
parts list[EXRPartArtifact] 当前文件所包含的所有分层结构的完整描述符清单。

此外,根据 EXR 文件的图层复杂度,前端会自动生成对应的动态分组: - Parts 动态组:为每一个独立分层生成一个 EXRPartArtifact 端口,并在其子集下列出该 Part 所包含的具体通道(在传统的单层单分块文件中会自动隐形,通道直接扁平呈现在 Channels 组中); - Channels 动态组:为单层文件中的每一个物理通道生成一个 EXRChannelArtifact 端口,暴露通道名称、像素采样与位深度精度。


避坑技巧与最佳实践 (Tips & pitfalls)

  • Header-only 模式下的像素精度判断:在纯文件头模式下,部分通道的像素类型(HALF / FLOAT)可能会显示为推算近似值。若下游对通道位深度有绝对精确的类型断言要求,可将全局设置 openexr.header_only 切换为 false,代价是扫描时会将像素载入内存。
  • 多层文件的层级组织规律:面对包含数十个 Render Passes(漫反射、高光、深度、法线等)的工业级 Multi-part EXR,通道不会杂乱混杂在扁平列表中,而是规整收纳在各自对应的 Part 分组下方。
  • 下游节点的延迟惰性加载 (Lazy Loading):下游的预览监视与转存节点在真正被执行计算之前,并不会强行将全部通道解包进内存。这保障了即便只挑选其中一个通道进行分析,也不会产生不必要的全图 IO 浪费。

推荐延伸阅读