创建透视颜色 LUT
更新时间: 2026年4月15日
可以通过将颜色查找表 (LUT) 的一个维度展平成 2D 图像,以将其存储在普通图像中。以下是颜色 LUT 外观的示例:
您可以使用常规 2D 纹理作为透视层颜色 LUT,但为保证正常工作并产生所需的效果,该纹理必须满足以下要求:
- LUT 分辨率(R,即每个维度的值数量)必须是 2 的幂。常见的值有16、32 和 64。
- 图像必须包含 R 个图块,其中每个图块代表一个特定蓝色值的所有红色和绿色值。每个图块包含 R x R 个像素,其中 x 轴对应红色,y 轴对应绿色。
- 图块可以水平堆叠,也可以排列成方形(示例)。只有当 R 的平方根是整数时,才可以使用方形布局,例如 16 或 64。
可以通过利用图像编辑软件(如 Adobe Photoshop 或 GIMP)提供的颜色调整工具来生成颜色 LUT。本教程将介绍如何使用 Photoshop 进行调整,而其他图像编辑器的操作步骤与之类似。
要创建您自己的颜色 LUT 纹理,请执行以下操作:
- 在 Adobe Photoshop 中,打开一个代表预期用户环境的图像(例如,一个客厅)。为了尽可能接近最终体验,此图像应该是使用目标头戴设备拍摄的透视截图。您可以使用本文档末尾提供的参考截图。
- 打开调整选项卡(窗口 > 调整)。
- 添加任何所需的调整图层,如下例中的曲线或颜色平衡。
- 点击添加的调整图层以显示其属性选项卡。调整属性以创建所需的颜色变化。
- 在取得满意的结果后,请在 Photoshop 中打开中性色 LUT 上的一张中性色 LUT 图像。
- LUT 越大越能准确反映颜色变化,但对性能的影响也更大。请尝试不同的分辨率,并使用满足您所需质量的最小分辨率。
- 转到窗口 > 排列 > 双联垂直以并排查看两张图像。
- 将您的所有调整图层从透视截图拖到中性色 LUT 图像上。
- 转到文件 > 另存为...,然后保存修改后的 LUT 图像。请使用无损图像格式,如 PNG。
保存这些图像,并在图像编辑器中加载,以便在应用到中性色 LUT 图像之前预览颜色分级效果。
冷色调/自然光照:
暖色调/人造光照:
创建颜色 LUT 图像后,可以在 Unreal Engine 中将其应用到透视图层。
如要将颜色 LUT 应用到透视图层,需创建 UOculusXRPassthroughColorLut 素材,为其指定 LUT 纹理,然后配置透视图层以使用该素材。提供两种 LUT 模式:
- 颜色 LUT:使用权重值将单个 LUT 与原始透视图像混合。计算公式为:
Result = ColorLUTSource * LutWeight + Passthrough * (1 - LutWeight)。 - 插值颜色 LUT:在两个 LUT 之间混合。计算公式为:
Result = ColorLUTSource * (1 - LutWeight) + ColorLUTTarget * LutWeight。
一般工作流程:
- 将 LUT 图像作为 LUT 纹理导入 Unreal Engine。请按照 Epic Games 关于使用查找表进行颜色分级的文档来完成此设置。
- 创建
UOculusXRPassthroughColorLut 素材(在内容浏览器的 杂项 > 透视颜色 LUT 下),并分配已导入的纹理。 - 在透视图层上,启用颜色映射并将颜色映射类型设置为颜色 LUT或插值颜色 LUT。
- 将 LUT 素材分配给颜色 LUT 来源。对于插值模式,还需分配一个颜色 LUT 目标。
- 调整 LUT 权重以控制混合强度(范围 0.0 到 1.0)。
Meta Quest 上的最大 LUT 分辨率为 64。较低的分辨率(如 16 或 32)可降低内存占用与 GPU 开销,因此请在满足画质需求的前提下使用最低分辨率。
UOculusXRPassthroughColorLut 上的 IgnoreAlphaChannel 属性用于控制是否使用 LUT 纹理中的 Alpha 通道。启用后,仅应用 RGB 通道。禁用(默认值)时,使用 RGBA 通道。
如要在运行时不依赖纹理素材创建 LUT(例如,用于生成程序化的色彩效果),可使用 SetLutFromArray(),通过 TArray<FColor> 构建 LUT 数据。
如需通过检查器和 Blueprint 应用颜色 LUT 的完整实操步骤,请参阅
颜色映射技术。