OpenColorIO色彩管理

了解如何使用OpenColorIO确保项目间的色彩一致性。

Windows
MacOS
Linux

OpenColorIOOCIO)是色彩管理系统,主要用于电影和虚拟制作。OCIO旨在保证整个电影制作管线捕获视频的色彩保持一致。该管线包括最初的摄像机捕获、需要与捕获媒体一起使用的所有合成应用程序以及最终渲染。

虚幻引擎(UE)提供内置支持,可使用OCIO以多种方式转换线性媒体的色彩:

  • 当你在项目中使用捕获剪辑或实时内容等媒体源时,你可以应用色彩转换,以便这些媒体源与UE中的计算机生成元素匹配。

  • 当你在虚幻编辑器中操作时,你可以将色彩转换应用于视口。此功能很有用,这样你在编辑器中操作时看到的参考框架,将与你选择的色彩空间保持一致。

  • 你可以将另一种色彩转换重新应用到从Composure输出的合成内容中。这有助于你的CG元素和实时帧更加有效地融合,同时如实保留原始镜头的色彩。

  • 最后,当你通过影片渲染队列导出视频时,你可以选择将色彩空间转换应用于输出视频。

OCIO的所有这些用途都依赖称为 OpenColor配置资产 的新型资产,你将使用该资产管理你要使用的色彩配置文件。当你准备开始入门时,请按照下面设置OCIO 中的说明进行操作。

设置OCIO

在此过程中,你将在UE中启用 OpenColorIO插件,并从 OCIO配置文件 创建 OpenColor配置资产

先决条件:此步骤你需要OCIO配置文件。该文件包含有关多个色彩配置文件以及如何在它们之间变换的详细规范。如果你已经在制作中使用OCIO,你可能已经设置带有你所需色彩配置文件的配置文件。如果没有,你可以在此处 下载示例文件。

步骤

  1. 将你的OCIO配置文件放在项目 内容(Content) 文件夹中的任何位置。

    当将配置文件直接复制到内容文件夹时,UE可能会显示警告(例如,它无法识别.ocio文件扩展名)。如果出现这种情况,只需在Windows资源管理器中将OCIO配置文件复制到项目的内容文件夹。

  2. 在虚幻编辑器中,从主菜单选择 编辑(Edit)> 插件(Plugins)

    OCIO_EditPlugins.png

  3. 插件(Plugins) 窗口中,找到 OpenColorIO 插件,然后点击 启用(Enable)

    OCIO_PluginSearchOpen.png

    注意:基于你的UE版本,OpenColorIO插件可能默认启用。

  4. 系统提示时,点击 是(Yes)

    OCIO_PluginBetaOptIn.png

  5. 点击 立即重启(Restart Now) 以关闭编辑器并在激活新插件的情况下重启。

    OCIO_PluginReset_RAW.PNG

  6. 返回编辑器,在 内容浏览器 中导航到你要在其中创建配置资产的文件夹。在 内容浏览器 中点击右键,然后选择 杂项(Miscellaneous)> 打开色彩IO配置(Open Color IO Configuration)

    OCIO_CreateConfigFile_RAW.PNG

  7. 使用待使用配置文件的描述性名称重命名新资产。

    OCIO_NamedAsset_RAW.PNG

  8. 双击新资产编辑其设置。

    点击查看大图。

  9. 配置文件(Configuration File) 设置中,点击按钮浏览,并选择你放置在项目内容文件夹中的OCIO配置文件。

    点击查看大图。

  10. 所需色彩空间(Desired Color Spaces) 设置中,点击 + 按钮将新条目添加到列表。

    OCIO_AddColorSpaceToAsset.png

  11. 在新条目中,打开下拉列表,然后选择你要在UE中使用的此配置中定义的色彩空间之一。

    点击查看大图。

  12. 对你要使用的每个色彩配置文件重复最后两个步骤,然后 保存(Save) 你的资产。

    OCIO_SaveOCIOAsset_RAW.png

    仅设置你实际需要在UE中使用的色彩配置文件,以尽可能减少你配置资产的开支。

最终结果

现在,你已启用OCIO插件并创建了配置资产,你可以在视口、Composure、蓝图或影片渲染队列中转换色彩。详情请参阅以下各个部分。

在Composure中转换媒体元素

此过程旨在说明如何为Composure元素创建新的变换通道,并设置该变换通道,以便将元素媒体源的色彩空间从一种颜色配置文件转换为另一种。

先决条件:你需要使用有效的媒体源(如视频文件或实时SDI内容)设置Composure元素。有关更多信息,请查看实时合成快速入门 页面。

步骤

  1. 选择Composure元素,然后为你的Composure元素添加新的TransformPass。在其 变换/合成通道(Transform/Compositing Passes) 设置中,点击 + 按钮将新的通道添加到列表的末尾。

    OCIO_AddTransformPass.png

  2. 在新的变换通道设置中,从下拉列表中选择 合成开放色彩IOPass(Compositing Open Color IOPass)

    OCIO_SelectTransformPassType.png

  3. 展开你的变换通道设置,然后展开其 色彩转换设置(Color Conversion Settings)

    OCIO_ExpandConversionSettings.png

  4. 设置 配置源(Configuration Source) 设置,指向你通过OCIO配置文件创建的OCIO配置资产。

    OCIO_ColorConversionSelectOCIO.png

  5. 源色彩空间(Source Color Space) 设置为你要转换的色彩配置文件。这通常是最初捕获媒体源的色彩空间。

    OCIO_SetSourceColorSpace.png

  6. 目标色彩空间(Destination color Space) 设置为你要转换的色彩配置文件。你通常会在此处使用 线性(Linear),使你的媒体与UE中的线性色彩空间匹配。

    OCIO_SetDestinationSolorSpace.png

最终结果

为变换通道设置了源和目标色彩空间后,你应该立即在Composure元素预览和关卡视口中看到媒体源更改的色彩。

在Composure中转换媒体输出

在此过程中,你将使用新的色彩校正通道设置Composure的输出,该通道将合成媒体的色彩从一个OCIO色彩配置文件转换为另一个。

先决条件:你应该已经为Composure设置输出?

步骤

  1. 世界大纲视图(World Outliner) 中,选择 复合元素(Compositing Element)

    OCIO_SelectLayerElement_RAW.PNG

  2. 细节(Details) 分段中,展开 Composure 下的 输出(Output) 类别。

    OCIO_ExpandOutput.png

  3. 输出(Outputs) 旁边,点击 + 按钮添加新元素。

    OCIO_NewOutput.png

  4. 展开新元素,然后在 捕获输出(Capture Output) 旁边,展开下拉列表,选择所需输出。

    OCIO_SelectOutput.png

    此时,你可能要点击新输出元素旁边的 预览(Preview)。这将打开预览窗口,使你可以在保存之前预览输出。

    OCIO_OpenPreview.png

  5. 展开 色彩转换(Color Conversion),然后从下拉列表中选择 合成开放色彩IOPass

    OCIO_SelectColorConversion.png

  6. 展开 色彩转换设置(Color Conversion Settings),然后在 配置源(Configuration Source) 下拉列表中选择你的OCIO资产。

    OCIO_SelectOCIOAssetinOutput.png

  7. 源色彩空间(Source Color Space) 设置为你要转换的色彩配置文件。你通常会在此处使用 线性(Linear),使你的媒体与UE中的线性色彩空间匹配。

    OCIO_OutputSelectSourceColorSpace.png

  8. 目标色彩空间(Destination color Space) 设置为你要转换的色彩配置文件。通常将其设置为匹配用于显示结果的监视器或你所需的其他目标色彩空间。

    OCIO_OutputSelectDestinationColorSpace.png

转换蓝图中的色彩

你不必仅在Composure中转换颜色:你可以使用蓝图节点在任何输入纹理(包括播放视频源的MediaTexture)中转换色彩,并在RenderTarget中获取转换后的结果。

步骤

  1. 内容浏览器 中创建新的蓝图类。

    OCIO_NewBlueprintClass_RAW.PNG

  2. 展开 所有类别(All Classes) 菜单,然后使用搜索栏找到并选择 EditorUtilityActor Actor类。

    OCIO_BlueprintClassSelection.png

    对于此过程,你可以使用任何更新函数的BP Actor。在此示例中,我们决定使用 EditorUtilityActor

  3. 相应地重命名新的蓝图类。

    OCIO_BlueprintRename_RAW.png

  4. 右键点击蓝图类打开它,然后导航到 事件图表(Event Graph)

    点击查看大图。

  5. 在我的蓝图下,导航至 变量(Variables)> 组件(Components)

    OCIO_MyBlueprintVariables_RAW.PNG

  6. 点击 变量 旁边的 +变量(+Variable) 按钮,创建新变量,并将其重命名为 InputTexture

    OCIO_RenameVariableInputTexture.png

  7. 重命名后,点击新变量右侧的"眼睛"按钮,使其在所有空间可见。

    OCIO_InputTexture_MakePublic.png

  8. 细节(Details) 面板中,将新变量的变量类型设置为 对象类型(Object Types) > 纹理(Texture) > 对象引用(Object Reference)

    OCIO_ChangeVariableType.png

  9. 创建两个变量 OutputTexture(变量类型:纹理渲染目标2D(Texture Render Target 2D) > 对象引用(Object Reference))和 ColorConversionSettings(变量类型:开放色彩IOColor转换设置(Open Color IOColor Conversion Settings))。创建它们之后,请确保将它们标记为公共(点击"眼睛"图标)。完成后,变量列表应如下所示:

    OCIO_VariablesRecap.png

  10. 将InputTexture变量拖到事件图表中,然后选择 获取InputTexture(Get InputTexture)(这将创建新的InputTexture节点)。

    OCIO_GetInputTexture.png

  11. 对OutputTexture和ColorConversionSettings节点重复该过程。事件图表应如下所示:

    OCIO_VariablesInEventGraph_RAW.PNG

  12. 在事件图表中点击右键,然后添加新的 Apply Color Space Transform 节点。

    OCIO_AddApplyColorSpaceNode_RAW.PNG

  13. 将输出引脚从预先提供的 Event Tick 节点连接到Apply Color Space Transform节点的输入引脚。

    OCIO_ConnectEventTickToApplyColor_RAW.png

  14. 将Input Texture节点连接到Apply Color Space Transform节点上的输入纹理引脚。将Output Texture节点连接到输出渲染目标引脚。最后,将Color Conversion Settings节点连接到转换设置引脚。你完成操作后,事件图表应如下所示:

    OCIO_ConnectedNodesRecap_RAW.png

  15. 编译并保存蓝图。

  16. 返回主编辑器视图后,将蓝图类资产拖到你的关卡中。

    点击查看大图。

  17. 在世界大纲视图中选择你的蓝图类资产。在细节(Details)面板中,展开默认分段,然后从输入纹理(Input Texture)下拉列表中选择所需的输入文件。

    OCIO_SelectInputTexture.png

  18. 在内容浏览器中创建新的 渲染目标 资产。

    OCIO_NewRenderTarget_RAW.PNG

  19. 打开新的渲染目标资产,然后使用纹理渲染目标2D(Texture Render Target 2D)下的大小X(Size X)和大小Y(Size Y)滑块,相应地调整资产的大小(此处我们采用512x389)。保存并关闭资产。

    点击查看大图。

  20. 将新的渲染纹理资产应用到蓝图类资产的 输出纹理(Output Texture) 字段。你可以通过使用 使用来自内容浏览器的选定资产(Use Selected Asset from Content Browser) 按钮或从下拉菜单中选择它完成此操作。

    OCIO_SelectingOutputTexture.png

  21. 然后在 细节(Details) 面板中,展开 色彩转换设置(Color Conversion Settings) 分段。从配置源(Configuration Source)旁边的下拉列表中选择你的OCIO配置文件。

    OCIO_SelectingOCIOConfig.png

  22. 调整 源色彩空间(Source Color Space*)目标色彩空间(Destination Color Space),匹配你想要的结果。

    OCIO_SetColorSpaceAndDestinationColor.png

  23. 这里你可以将渲染目标资产拖放到关卡中,并将其应用于Actor(例如平面)以便预览媒体。你可以继续调整源色彩空间(Source Color Space)和目标色彩空间(Destination Color Space)设置以便预览不同的输出。

在视口中转换色彩

启用OCIO插件后,你可以直接在 视口 中应用OCIO配置。启用插件后,你会在 视口视图模式(Viewport View Modes) 下看到一个新的 色彩管理(Color Management) 分段。

OCIO_OCIOViewportSettings_RAW.PNG

展开 OCIO显示 分段后,你会注意到你可以调整四个设置。

设置名称

用途

启用显示(Enable Display)

切换显示色彩转换。

选择OCIO资产(Select an OCIO Asset)

选择UE将用于获取色彩空间的资产。

无效(源色彩配置文件)(Invalid(Source color profile))

你要转换的源色彩配置文件。

无效(输出色彩配置文件)(Invalid(Output color profile))

你要转换的目标色彩配置文件。

调整完这些设置后,视口将禁用 色调曲线(Tone Curve),并将色彩转换插入到渲染的后期处理阶段。此操作会在UE应用色调映射之后且在其他所有操作之前立即执行。

带nDisplay的OCIO

为了在nDisplay中启用对OCIO色彩空间的支持,用户需要为每组共享给定OCIO配置的nDisplay视口创建OCIO场景视图扩展(SVE)。创建后,你需要为这些SVE提供激活函数,该函数指定应将这些SVE应用于哪些nDisplay视口。nDisplayCluster API可以通过为给定的视口ID数组提供激活函数来帮助解决此问题。如果你为API提供视口ID/名称的空数组,它将应用到所有内容。

有关nDisplay的更多信息,请查看nDisplay概述

如果每个nDisplay视口需要不同的OCIO配置,则每个视口ID都需要一个OCIO SVE。示例可能如下所示:

OCIO_nDisplayExample_RAW.png

你必须将"创建OpenColorIO显示扩展(Create OpenColorIO Display Extension)"创建的OCIO SVE对象升级为变量,避免垃圾回收。

在影片渲染队列中使用OCIO

影片渲染队列(MRQ)是一款功能强大的工具,用于创建可离线查看的高质量渲染。在如此注重高质量视觉效果的情况下,你很自然会想使用OCIO配置确保与你的MRQ项目保持一致。

有关MRQ的更多信息,请查看我们的如何使用用于高质量渲染的影片渲染队列 文档。

通过展开 设置(Settings) 菜单并选择 色彩输出(Color Output),你可以在MRQ中允许OCIO功能。

点击查看大图。

调整渲染设置后,你将能够调整色彩输出。

点击查看大图。

启用OCIO配置后,你可以按需调整设置。请参考下表,获取有关MRQ中OCIO设置的更多信息。

设置名称

用途

IsEnabled

启用OCIO色彩转换。色调曲线将被禁用,下面的选项将显示为灰色。

配置源(Configuration Source)

通过内容浏览器创建的OCIO配置杂项蓝图。

源色彩空间(Source Color Space)

你要转换的源色彩配置文件。

目标色彩空间(Destination Color Space)

你要转换的目标色彩配置文件。

标签
Select Skin
Light
Dark
欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见