色彩管理

    同一张渲染图像的不同曝光情况。

    Blender的色彩管理基于 OpenColorIO 库。通过在多个应用程序中使用相同的OpenColorIO配置,可以使用相同的色彩空间和变换来获得一致的结果。

    为了获得正确的结果, 需要不同的 ,显示和存储图像。渲染和合成最好在场景线性色彩空间中完成,它更接近于自然,并使计算更加物理准确。

    ../_images/render_color-management_linear-workflow.svg

    线性工作流程的一个示例。

    如果颜色是线性的,则意味着如果实际上我们将光子数加倍,则颜色值也会加倍。换句话说,如果我们有两张照片/渲染器,每张照片/渲染器都有两个灯光中的一个,并将这些图像添加到一起,结果将与两个灯光都打开的渲染/照片相同。由此得出,这种辐射测量线性空间最适合照片级渲染和合成。

    然而,这些值并不直接对应于人类感知或显示设备的工作方式。和图像文件通常存储在不同的色彩空间中。所以我们必须小心地进行这种场景线性色彩空间的正确转换。

    显示变换

    将场景线性颜色转换为显示涉及技术和艺术选择。

    正确显示渲染需要转换到显示设备色彩空间。计算机显示器与数字电影放映机或HDTV的工作方式不同,因此需要不同的转换。

    还有艺术选择。部分原因是显示设备无法显示全部色彩,只有有限的亮度,因此我们可以挤出颜色以适应设备的色域。除此之外,给渲染器一个特定的外观也是有用的,例如好像它们已经印在真实的相机胶片上。默认的电影转换执行此操作。

    从线性空间到显示设备空间的转换。

    在加载和保存媒体格式时,记住色彩管理非常重要。诸如PNG或JPEG之类的文件格式通常将颜色存储在准备显示的色彩空间中,而不是存储在线性空间中。当它们在渲染中用作纹理时,它们需要首先转换为线性,当保存渲染以在Web上显示时,它们也需要转换为显示空间。

    对于生产中的中间文件,建议使用OpenEXR文件。它们始终存储在场景线性色彩空间中,不会丢失任何数据。这使它们适合存储以后可以合成,颜色分级并转换为不同输出格式的渲染。

    图像还可以包含实际上不是颜色的数据。例如,法线图或位移图仅包含矢量和偏移。此类图像应标记为非彩色数据,以便不会在其上进行色彩空间转换。

    参考

    面板

    属性编辑器 ‣ 渲染 ‣ 色彩管理

    ../_images/render_color-management_panel.png

    色彩管理渲染设置。

    显示

    显示设备

    正在查看的图像的设备。

    大多数计算机显示器都配置为sRGB色彩空间,因此在计算机上工作时,通常应将此选项保留为默认值。当在连接到计算机的另一个显示设备上查看图像时,或者当写出要在另一个设备上显示的图像文件时,通常会改变它。

    通过将设备设置为无,可以禁用颜色管理。

    视图

    这些是在同一显示设备上查看图像的不同方式。

    • 标准

      除了显示设备的转换之外,没有额外的转换。通常用于非照片级真实结果或视频编辑,其中特定外观已经烘焙到输入视频中。

      电影

      用于逼真的结果和更好地处理高动态范围的颜色。可以通过更改电影视图变换的Look选项来调整对比度。

      电影日志

      转换为电影日志色彩空间。这可用于导出到颜色分级应用程序,或通过展平非常黑暗和明亮的区域来检查图像。

      Raw

      用于检查图像,但不用于最终输出。Raw在没有任何色彩空间转换的情况下提供图像。

      假色彩

      显示图像强度的热图,以显示动态范围。

    曝光

    用于控制在色彩空间转换之前应用的图像亮度(停止)。计算方法为: \(output\_value = render\_value × 2^{(exposure)}\)

    伽玛

    在色彩空间转换后应用额外的伽马校正。请注意,默认显示变换已经执行了适当的转换,因此这主要作为艺术调整的附加效果。

    效果

    从一组测量的胶片响应数据中选择艺术效果,这些数据大致模拟某些胶片类型的外观。在色彩空间转换之前应用。

    使用曲线

    调整RGB曲线以在色彩空间转换之前控制图像颜色。阅读有关使用 曲线部件 小组件的更多信息。

    序列编辑器

    色彩空间

    序列器操作的色彩空间。默认情况下,序列器在sRGB空间中运行,但也可以设置为在线性空间中工作,如合成节点或其他色彩空间。不同的色彩空间将为颜色校正,交叉渐变和其他操作提供不同的结果。

    使用图像文件时,默认色彩空间通常是正确的色彩空间。如果不是这种情况,可以在图像设置中配置图像文件的色彩空间。例如,需要手动更改的常见情况是使用或烘焙法线贴图或置换贴图。这样的地图实际上不存储颜色,只是编码为颜色的数据。这些图像应标记为非彩色数据。

    色彩空间

    驱动器上图像文件的色彩空间。这取决于文件格式,例如,PNG或JPEG图像通常存储在sRGB中,而OpenEXR图像存储在线性色彩空间中。某些图像(例如法线,凹凸或模板贴图)不严格包含“颜色”,并且在此类值上,不应应用任何色彩空间转换。对于此类图像,色彩空间应设置为“ 无”。

    默认情况下,仅显示渲染并使用应用渲染视图转换保存渲染。这些是渲染结果和查看器图像数据块,以及使用“渲染动画”操作符直接保存到驱动器的文件。但是,当加载保存到中间OpenEXR文件的渲染时,Blender无法自动检测到这是渲染(它可能是例如图像纹理或置换贴图)。我们需要指定这是一个渲染,并且我们希望应用这两个设置的变换:

    预览渲染结果

    使用视图变换,曝光,伽马,RGB曲线显示图像数据块(不仅仅是渲染)。用于查看线性OpenEXR文件中的渲染帧与直接渲染时相同。

    另存为渲染图

    图像保存操作符中的选项可应用视图变换,曝光,伽玛,RGB曲线。这对于将线性OpenEXR保存为显示空间中的PNG或JPEG文件非常有用。

    Blender附带标准的OpenColorIO配置,其中包含许多有用的显示设备和视图转换。使用的参考线性色彩空间是具有Rec的线性 。709色度和D65白点。

    但是,OpenColorIO还旨在为 多个应用程序,提供一致的用户体验 ,为此,可以使用单个共享配置文件。Blender将使用标准OCIO环境变量来读取除默认Blender之外的OpenColorIO配置。有关如何设置此类工作流的更多信息,请访问 。

    Blender目前使用以下色彩空间规则:

    用于在内存中渲染,合成和存储所有浮点精度图像的色彩空间。

    data

    非颜色数据的色彩空间。

    标准线性XYZ色彩空间。用于将黑体发射等效果从物理单位转换为 scene_linear 色彩空间。

    color_picking

    定义颜色选择器中的颜色分布。预期它在近似上是线性的,具有与场景线性色彩空间相同的色域,在场景线性色彩空间中将0..1值映射到0..1值,以便可预测地编辑材料反照率。

    序列编辑中使用默认的色彩显示空间。如未指定,则为 scene_linear

    default_byte

    字节精度图像和文件的默认色彩空间,如果未指定,则为 texture_paint

    浮点精度图像和文件的默认色彩空间,如未指定,则为 scene_linear