注:本文全文翻译Geoff Richards的文章《Half Life 2: Lost Coast HDR overview》
[什么是HDR?]
在目前众多3D新技术中,HDR是人们谈论的最多的,现在就让我们一起来探索一下这种新的光照技术,特别是它在即将到来的《半条命2》附加关卡“Lost Coast”(以下简称LC)中是如何实现的。
3D图形语言真是一门奇妙而深奥的语言。回想起3D游戏刚刚诞生的时候,我们谈论的只是简单的多边形和材质;而数年后的今天,3D图形技术的发展突飞猛进,现在我们谈论的是立方体环境凹凸贴图和通过统一shader架构渲染的体积光照之类的复杂技术。
在目前众多3D新技术中,HDR是人们谈论的最多的,现在就让我们一起来探索一下这种新的光照技术,特别是它在即将到来的《半条命2》附加关卡“Lost Coast”(以下简称LC)中是如何实现的。
什么是HDR?
HDR的全称是High Dynamic Range,即高动态范围,比如所谓的高动态范围图象(HDRI)或者高动态范围渲染(HDRR)。动态范围是指信号最高和最低值的相对比值。目前的16位整型格式使用从“0”(黑)到“1”(白)的颜色值,但是不允许所谓的“过范围”值,比如说金属表面比白色还要白的高光处的颜色值。
在HDR的帮助下,我们可以使用超出普通范围的颜色值,因而能渲染出更加真实的3D场景。也许我们都有过这样的体验:开车经过一条黑暗的隧道,而出口是耀眼的阳光,由于亮度的巨大反差,我们可能会突然眼前一片白光看不清周围的东西了,HDR在这样的场景就能大展身手了。
下面是由OpenEXR网站提供的HDR的一个简单例子。OpenEXR是由工业光魔(Industrial Light & Magic)开发的一种HDR标准。工业光魔则是一家世界闻名的加州工作室,该工作室创造过许多惊人的CG和视觉效果,比如1977年版的电影《星球大战》中的总多特效。
最左边的是原始图片,树木非常暗因为整体曝光受到远处高亮光的影响;中间图片的亮度提高了3级;而右边图片的亮度提高了7级,树木的细节很容易辨别,而背景极度明亮。
总之简单来说,HDR可以用3句话来概括:
1.亮的地方可以非常亮
2.暗的地方可以非常暗
3.亮暗部的细节都很明显
Crytek已经在其FPS游戏《Far Cry》的1.3补丁中提供了HDR支持,EPIC的Unreal Engine 3.0也将支持HDR特效,Valve也透露正在开发《半条命2》附加关卡“Lost Coast”来展示HDR技术。形成鲜明对比的是,《Farcry》通过只有nVIDIA GF6系列显卡支持的Shader Model 3.0来实现HDR,而“Lost Coast”则将通过Shader Model 2.0实现,也就是说ATI目前的X系列显卡也能实现Valve的HDR。
接下来就让我们和Valve市场总监Doug Lombardi来谈谈Valve如何在Source引擎及《半条命2》中实现HDR。
[Lost Coast / Source引擎HDR特效集]
HDR渲染包含多种不同的技术,而Lombardi详细透露了Valve对于LC的计划,他们将努力在这一前沿领域再次远远领先其他开发者/公司。
比如,Lombardi提到了Bloom特效:“这一特效已经在许多其他游戏中得以应用并且往往被误认为是HDR的完全实现。”
有趣的是,以下的特效集被Valve描述为“我们在Lost Coast中对HDR的定义”,以及“在Source引擎开发中HDR的初步实现”,这暗示着我们不但可以期待着在其他基于Source引擎的游戏中看到HDR,而且未来这些HDR特效将会更多更好。
以下是目前Valve实现的HDR特效:
Bloom:
用于生成在场景亮处边缘的“模糊效果”,模仿相机的曝光过度。
HDR Skybox:
渲染天空的多次曝光,允许实时曝光调整。对于LC来说有16种的HDR Skybox变化。
HDR Cube Map(HDR立方体贴图):
由引擎生成,使用HDR skybox和HDR light source及HDR light map合力产生。HDR Cube Map让一个物体的反射光线更符合光源的亮度。
HDR Water Reflection/Refraction(HDR水反射/折射):
无论光源的反射有多亮,水面的 “白热”点总是和Bloom效果一起出现。当在水底看着太阳时可能会出现类似的效果。
HDR Refraction Effect(HDR折射效果):
HDR光照穿过可折射材料传输时产生的符合这些材料性质的效果(比如阳光照射在LC中修道院的彩色玻璃时产生绚丽的五彩光芒)。
HDR Light Map(HDR光照贴图):
通过radiosity(计算光线形态及阴影来生成3D图象)过程产生,将光弹跳/全局照明也考虑在内。我们可以在LC的修道院内正对着窗户的墙上看到这种特效。
HDR Light Source(HDR光源):
未经压缩的光线数据值令设计人员能够从任何给定的场景中使用更大范围的光线数据值。
Exposure Control(曝光控制):
运用“眼睛调整”令我们在暗部场景看到比在过亮场景中更多的不同程度的细节。
在下一页中,我们将更深入地探讨HDR,并看看曝光控制和动态孔径(Dynamic Aperture)对于游戏视觉效果的影响……
[曝光不足及过曝光]
正如摄影师可以通过调整曝光度控制相机捕捉到的光线量,HDR渲染同样可以让开发人员控制在场景中出现的光线量。先看看以下3张LC中的图片。
第二张图片是HDR渲染的正常曝光;第一张图片曝光不足导致图象偏暗,近处地面细节大量损失,长廊右边的窗户完全看不见;而第三张的图片曝光过度,注意到大量Bloom效果充斥着远处建筑物的周围,近处地面纹理清晰可辨。
在标准动态范围(SDR)渲染中,孔径是固定的,意味着进入我们眼中的光线量是不变的。曝光控制和动态孔径的工作原理和人眼类似,即根据光线的变化不断调整曝光度。
在Valve展示该特效的一个场景中,游戏主角Gordon在一个黑暗的楼梯中走向一扇正对太阳的门。由于采用了HDR渲染,楼梯旁边的墙壁因为过度明亮的太阳而显得非常暗。为了演示曝光控制,Gordon转向右边面对墙壁,一旦充满阳光的门离开我们的视野,我们的眼睛瞳孔变大,也适应了黑暗,因此能看到地板和墙壁上的丰富细节。再次转向那扇门,你再次觉得阳光非常刺眼难以忍受,并且希望Gordon拥有一副墨镜,多么奇妙的真实啊。
当然,如果Gordon穿过门走到外面,他的眼睛就会再次因强光的刺激而导致瞳孔变小,刚才的一幕将再次重现。一旦所有的游戏都采用HDR我们就不会想回到过去了,因为相比之下SDR是那样的平淡而没有生命力。
以下两张图片中可以明显地看出高动态范围渲染的优势之处。
那就注意两张图片的这些地方:水面反射的阳光,村庄房屋旁阳光的衍射光辉,手枪顶端的高光处。
更自己看图我们会看到启用HDR后,潮湿的沙地显得更加真实,远处的景色在强烈阳光的衬托下变得较暗。相比HDR场景,固定孔径渲染显得非常阴暗,光照没有变化,高光缺失,画面没有生气。
HDR和SDR的区别在海港的老渔人身上显得尤为突出。
上边为标准渲染,下边为HDR渲染。其实左边的图只是Valve的概念草稿,但是从纸面到HDR渲染的实现着实令人惊讶。
[Lost Coast:HDR视觉盛宴]
以上两张图片来自LC中的修道院,应用了大多数之前我们提到的HDR特效:明亮阳光的衍射,阳光通过彩色玻璃窗时的折射,照在墙壁上的光线运用了HDR Light Map,而从地板反射到屋顶油灯表面的光线则运用了HDR Cube Map。
再来看看上面这两张截图,如果不是中心的准星,一般人一定不会想到这是一幅游戏截图,肯定会误以为是高品质的绘画作品甚至于实景照片。
当然,要想让眼睛得到享受是要付出代价的,Valve也已经给出了LC的建议配置。Lombardi透露CPU的要求相对而言还比较低:2.0-3.0GHz,内存的要求可能就比较过分了,需要1-2GB,不过他强调这些配置要求都还未最后确定。
显卡的建议要求是6800GT / X800 PRO级别,Lombardi指出:“更高级的显卡总是更好。”不过他没有指出究竟能有多好呢:“我们还没有机会在业界领先厂商提供的最高端产品上进行完整测试,”他这样说道,“但是我们希望很快能够放出更多的详情和该关卡的最终发布日期。”
目前LC的最新发布日期是7月份。另外,正如我们已经报道过的,LC无需Shader Model 3.0就可以实现HDR,因此目前的X800系列级别显卡就可以得到很好的效果,而且Valve不会等待ATi的新一代GPU R520。因此如果发布日期有变,唯一的原因将来自内部开发方面,而不会是外部因素。