使用 DaVinci Resolve 创作查找纹理
以下过程使用 DaVinci Resolve,但也可以采用其他数字内容创作工具,例如 Photoshop 或 Nuke。
步骤 1:设置 HDRP 资源
确定要用于项目的查找纹理 (LUT) 大小,并在项目的 HDRP 资源中设置该大小。要设置 LUT 大小,请使用 HDRP 资源的 Grading LUT Size 属性。
Resolve 仅导出大小为 33 的 LUT,因此请将 Grading LUT Size 设置为 33,以确保正常工作。
步骤 2:将摄像机视图渲染到 EXR 文件
将当前摄像机的视图导出到日志编码的 EXR 文件。为此需要执行以下操作:
- 在 Scene 视图或 Hierarchy 中,选择一个包含 Camera 组件的游戏对象。
- 选择 Edit > Render Pipeline > Render Selected Camera to Log EXR(或按 Ctrl+Shift+Alt+E)。
- 保存 EXR 文件。
导出 EXR 文件后,将数据从 Unity 使用的格式 (Alexa LogC El.1000) 转换为线性 RGB 空间,以便可供外部软件使用。为此,HDRP 提供了一组即用型转换 LUT。要获取它们,请执行以下操作:
- 打开 Package Manager 窗口(菜单:Window > Package Manager)。
- 从左侧的包列表中选择 High Definition RP。
- 在 Samples 部分中,选择 Additional Post-processing Data 旁边的 Import into Project。
- 这样会将 LUT 导入到 Assets/HDRP Sample Content/Post-processing/Cube LUTs/ 中。
步骤 3:设置 Resolve
在开始使用 Resolve 进行颜色分级之前,您需要设置 Resolve 以便能够处理 Unity 中的 EXR 文件。为此需要执行以下操作:
- 在 Resolve 中创建一个空项目。
- 打开 File > Project Settings,然后找到 Color Management 面板。
- 在 Lookup Table 部分中,单击 Open Lut Folder 按钮。此时会在存储用于 Resolve 的 LUT 的位置打开平台的文件资源管理器。
- 在文件资源管理器中,创建一个新的 Unity 文件夹,并将所有先前导入的 LUT(从 Unity 导出,请参阅步骤 2)复制到该文件夹中。
- 返回到 Resolve 中,单击 Update Lists 按钮。
- 将 3D Video Monitor Lookup Table 设置为 Linear to sRGB r1。
注意:通常只需对 Resolve 执行一次步骤 1-5,然后对每个项目执行步骤 6。
现在将 EXR 导入到 Resolve 中,然后为其应用 Unity Log To Linear r1 LUT。要应用 LUT,请执行以下操作:
- 在 Resolve 中右键单击 EXR 文件。
- 在上下文菜单中,选择 3D Lut。
- 选择 Unity Log To Linear r1 LUT。
步骤 4:应用颜色分级
您现在可以开始对图像进行分级。确保仅进行全局颜色操作,因为 LUT 无法存储本地运算符或任何会影响相邻像素的滤镜(例如模糊或锐化)。
步骤 5:将工作导出为 CUBE 文件
完成分级后,请将工作导出为 CUBE 文件。要在 Resolve 中执行此操作,请右键单击分级的片段,然后在菜单中选择 Generate 3D LUT (CUBE)。
将 CUBE 文件保存在 Unity 项目的 Assets 文件夹中。
步骤 6:在场景中导入和使用 CUBE 文件
Unity 会自动将 CUBE 文件解释为可用的 Texture3D 资源。您可以在体积内的 Tonemapping 覆盖中使用此 CUBE 文件。为此需要执行以下操作:
- 在 Scene 视图或 Hierarchy 视图中,选择一个包含 Volume 组件的游戏对象并在 Inspector 中查看该游戏对象。
- 在 Inspector 中,选择 Add Override > Post-processing,然后选择 Tonemapping。
- 在 Tonemapping 的 Inspector 中,启用 Mode 并将其设置为 External。
- 将 CUBE 纹理分配给 Lookup Texture 属性。
- 更改 Contribution 来设置 Lookup Texture 对场景的影响。
您可以继续在 Resolve 中进行颜色分级并覆盖以前保存的 CUBE 文件。Unity 会根据您的更改自动更新场景中的分级。