切换搜索
搜索
切换菜单
通知
切换个人菜单
查看“古墓丽影10中HDR的运用”的源代码
来自古墓丽影中文站
查看
阅读
查看源代码
查看历史
associated-pages
页面
讨论
更多操作
←
古墓丽影10中HDR的运用
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
《古墓丽影:崛起》PC版中的画面给玩家留下深刻印象。2016年6月,晶体动力的老搭档,也是负责《古墓丽影:崛起》PC版制作的 [[Nixxes]] 工作室和 NVIDIA 的制作人共同讲述了如何在《崛起》中贯彻 HDR。讲述者分别是来自 Nixxes 的 Jeroen Soethoudt 和 Jurjen Katsman ,以及来自 NVIDIA 的 Holger Gruen。原文发表于 [https://developer.nvidia.com/implementing-hdr-rise-tomb-raider NVIDIA 博客],下文为古墓丽影中文站根据博客内容编译而成。 [[File:0606.jpg|有框|center|《古墓丽影:崛起》中HDR的运用]] <blockquote></blockquote> 很多游戏都达到了 HDR,也就是高动态范围(higher dynamic range)渲染,但这些年来,色调映射都降到 SDR,也就是标准动态范围(standard dynamic range)。在对图像输出提出更高要求的今天,HDR 对于色调映射的要求也水涨船高,因为 SDR 已经无法满足需求。 NVIDIA 与 Nixxes 以及晶体动力共同协作,将真正的 HDR 运用到《古墓丽影:崛起》中,使画面细节达到史无前例的水准。 ==进入古墓== 《古墓丽影:崛起》将我们带进一个壮美而危险的环境中展开史诗般的探险,去解开永生的秘密。下面这张游戏动画截图,呈现了 HDR 所能发挥的潜能。 [[file:hdr1.jpg|有框|center|《古墓丽影:崛起》中HDR的运用]] 游戏的高质量动画,是吸引 NVIDIA 的一大魅力。此外,对游戏大量截图的分析发现,游戏早期的色调映射数据给 HDR 提供了非常理想的动态范围。游戏引擎能够达到真实和现实水平的照明,以及达到相对现实的亮度值,而不是用光源亮度或 SDR 光照效果投机取巧。此外,大幅度提升 HDR 真实性的一大关键要素,就是基于物理的内容和光照模型(PBR),而经过改进的 HDR 备用引擎技术,因为大量使用了 PBR,也为真正的 HDR 的支持提供了很大的便利。我们所发现的这一切,都让我们相信,《古墓丽影:崛起》能够以真正的 HDR 营造出更高质量的沉浸式游戏体验。 NVIDIA 能够为游戏开发者提供用于处理 HDR 显示的应用编程接口(API)以及集成电影化 ACES(Academy Color Encoding System,美国电影艺术和科学学院的学院颜色编码系统)色调映射的 C++/着色器源码,帮助开发者在游戏中实现 HDR,并节省开发成本。 要在游戏中实现最佳的 HDR,需要满足一些先决条件,例如确保引擎渲染支持 PBR,色调映射后从着色器中移除所有的饱和操作,在色调映射执行前最好移除所有后期特效等等。以《古墓丽影:崛起》为例,在满足先决条件后,我们通过以下步骤实现游戏中的 HDR: ==切换到 HDR 模式== 将游戏切换到 HDR 模式后,NvAPI 才能得以运行。它提供的功能包括: <ul> <li>查询一个画面中的 HDR 性能;</li> <li>激活 HDR 输出,并为 HDR 输出配置 HDR 显示效果。</li> </ul> [[晶体动力]]/Nixxes 的经验表明,查明你的显示是否真正切换到了 HDR 模式并那么不容易。为了确认 HDR 模式开启,需要在游戏的色调映射着色器中添加一个特殊的调试模式,下面的截图就是调试模式下的一个例子,整体颜色显示都不正确,因为调试模式将每隔一条水平带上全部的颜色要素设置为 1.0。此时,如果没有切换到 HDR 模式,这些水平带将是不可见的,因为所有高于 1.0 数值的颜色都将成为 SDR 模式下的白色。因此,如果你在屏幕上看到这些水平带,那就意味着 HDR 已经开启。否则,显示模式很可能仍然错误地停留在了 SDR 模式。 [[file:hdr2.jpg|有框|center|《古墓丽影:崛起》中HDR的运用]] 在 HDR 模式下显示一张不包含任何 HDR 内容的 SDR 图像时,HDR 往往倾向于加强 SDR 图像的亮度,使它看起来更为明亮,更引人注目。因此,在 HDR 模式下,如果你在显示器上并排对比一张 SDR 图像和一张 HDR 图像,SDR 图像看起来会非常晦暗。为了让对比更有意义,我们需要增强低动态范围(LDR)图像的亮度,以模拟 SDR 图像的显示。 一旦能够确保 HDR 模式开启,就轮到对色调映射着色器的优化,以确保在延伸的亮度范围中获得最佳的用户体验。通常,游戏开发者倾向于使用基于 Reinhard 模型的色调映射算法来处理 SDR 范围内的映射,而《古墓丽影:崛起》也是如此。 下面,我们来谈谈如何集成电影化 ACES 色调映射器。 ==集成电影化 ACES 色调映射器== NVIDIA 所提供的 C++/着色器源码能够用于设立 ACES 色调映射器着色器常数,这样就很容易增强游戏对一系列 ACES 色调映射曲线的支持。所要作的仅仅是运用现有的 C++ 类设置常量缓冲数据,然后导入 ACES 色调映射器着色器。下图呈现的就是色调映射函数,横轴为输入颜色/亮度,纵轴为输出亮度,以流明标示。 [[file:hdr3.jpg|有框|center|《古墓丽影:崛起》中HDR的运用]] 显而易见的是,在生成的图像中,相比游戏原先使用的 Reinhard 模型的色调映射器生成的图像,ACES 一千流明色调映射器带来很大的不同,它所产生的图像给画面暗处带来更生动的色彩。 然而画面仍然偏暗,无法展示游戏场景的亮度变化。这就要求将自动曝光数据引入游戏中初始的 Reinhard 色调映射器。下面就来谈谈如何做到这一点。 ==ACES 色调映射器中引入自动曝光数据== 实际上,所需要的工作并不多,只需将游戏运用的自动曝光关联后,再在 ACES 色调映射器中导入颜色数据。为此,ACES 着色器需要进行修改,在自动曝光上,让它能做到原始色调映射器所做的一切。 我们还希望比对 SDR 和 HDR,因此,我们在调式时使用了分屏模式。下面这组截图,展示的是 HDR(左)和 SDR(右)的对比,呈现了两种模式的显著不同。 [[file:hdr4.jpg|有框|center|《古墓丽影:崛起》中HDR的运用]] [[file:hdr5.jpg|有框|center|《古墓丽影:崛起》中HDR的运用]] [[file:hdr6.jpg|有框|center|《古墓丽影:崛起》中HDR的运用]] 就跟很多游戏一样,《崛起》使用了 3D LUT 调色法,用于在色调映射后执行颜色分级和校正。让我们来谈谈如何执行这一步。 ==颜色分级== 我们需要决定如何通过3D纹理寻址来处理游戏颜色分级,因为色彩通道能够创建1.0以上的 HDR 值,这样,初始插值表也就无法再继续使用。 我们首先尝试外推 SDR 颜色分级 LUT 所产生的,需转化入 HDR 空间的色彩和亮度变化。但很不幸,一些 HDR 的颜色产生大幅度的意料之外的变化,因此这个方案被废弃了。于是,我们结合了斜纹,强化对比度,饱和函数等,以实现希望的外观效果。 请注意,总体而言,LUT 仍然能够和 HDR 共同运作,但初始 LUT 是为色调映射后的 SDR 设计的。若在色调映射前使用这一功能,可以让你修正目标的独立颜色。 ==后记== 可以看到,在游戏中加入对 HDR 的支持并不困难,并且 NVIDIA 将会以 NvAPI 以及 ACES 色调映射器源码提供技术支持。 最后,感谢 Jurjen Katsman 和 Jeroen Soethoudt 的帮助,也向20年来的经典游戏人物劳拉致敬。 ACES(Academy Color Encoding System,学院颜色编码系统)由 2015 美国电影艺术和科学学院(Academy of Motion Picture Arts and Sciences,简称 A.M.P.A.S.)版权所有,所有权利保留。 {{开发幕后}} {{导航}} [[分类:古墓丽影10]][[分类:开发幕后]]
本页使用的模板:
模板:Navbox
(
查看源代码
)
模板:Top
(
查看源代码
)
模板:八卦导航
(
查看源代码
)
模板:周边产品导航
(
查看源代码
)
模板:导航
(
查看源代码
)
模板:开发幕后
(
查看源代码
)
模板:游戏导航
(
查看源代码
)
模板:玩家作品导航
(
查看源代码
)
模板:资源库导航
(
查看源代码
)
模块:Arguments
(
查看源代码
)
模块:Navbar
(
查看源代码
)
模块:Navbar/styles.css
(
查看源代码
)
模块:Navbox
(
查看源代码
)
模块:Navbox/styles.css
(
查看源代码
)
返回
古墓丽影10中HDR的运用
。