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 浪费。
推荐延伸阅读
- Display EXR Part 算子节点 — 将特定 Part 映射为监视图像
- Display EXR Channel 算子节点 — 自由拼装任意单通道并监视
- Save EXR 算子节点 — 将通道数据写回 EXR 资产