PSINext对PS3有一些比较技术化的,比较让普通玩家望而却步的文章,这是其中之一。另外两篇我也希望有机会能翻出来。希望更多的玩家可以看看这样的东西。会很有收获的。
PSINext对PS3有一些比较技术化的,比较让普通玩家望而却步的文章,这是其中之一。另外两篇我也希望有机会能翻出来。希望更多的玩家可以看看这样的东西。会很有收获的。
PSINext:高动态范围光照-或HDR(译者按:HDRL和HDR是两个相关,但完全不同的概念,前者建立在后者的基础上,但复杂得多)-是一个我们最近越来越经常听到的名词。你能解释一下HDR到底是什么东西,还有它到底对游戏玩家有什么意义么?
Marco:是的,这是一个现在十分常见并且经常被错用的名词。
当我们渲染一张HDR画面的时候,画面上每个像素的几乎所有信息都被保存了下来,所以我们可以用最完整的明暗和色彩信息来捕捉一个场景。糟糕的是,目前的低成本显示技术(常见的LCD,CRT等)无法正确的显示HDR画面,因此我们要通过一个名叫“色调映射”的过程来把我们的画面映射成一张LDR(低动态范围)画面,才能在屏幕上显示。
色调映射还可以模仿人眼对不同光照环境的适应过程。对于玩家来说,总而言之就是它可以带来更好的视觉体验,尽管游戏开发者还需要一段时间来学习它。
PSINext:你能举几个游戏中的场景的例子,来说明HDR的好处么?
Marco:相比LDR,任何很高和很低的亮度的场景,包括对比度很高的场景,都能从HDR获益。
HDR可以改善那种所有东西都显得太亮或太暗的的画面,从而保留画面所有的亮度和色彩信息。这是让画面显得生动和华丽的重要元素。
此外,特别的色调映射操作还能够给开发者一个额外的叙事工具,因为它可以模拟一些人眼的视觉行为。重要是,要知道HDR绝不仅仅是一些眩目的光晕效果-它要比这多得多。在我们的真实生活中,根本是没有LDR画面这么一回事的。
PSINext:现在人们一提到HDR的时候,就会想到GPU硬件上的FP16或FP32的HDR渲染支持。Ninja Theory为什么采用了NAO32,这能算得上是“真正的”HDR么?
Marco:FP16和FP32渲染格式让开发者可以去收集每个像素更多的信息(分别是每个像素8和16字节);所以我们可以很简单的实现渲染和储存HDR画面。糟糕的是,这些帧缓存格式速度太慢了,因为它们需要更多的内存带宽和更多内存:一张FP16的4x反锯齿的720p图像要将近30MB的内存!
重要的一点是,只要我们能找到一种不损失太多信息的编码方式,那么怎么存储HDR图像并没有什么关系。
RGB色彩空间用来编码HDR图像并不很有效,所以在做了一些研究之后,我们找到了另外一种有效得多的色彩空间。这个色彩空间叫CIE Luv,它用三个数值来表示色彩:一个是非标准化的用来表示色彩烈度的数值(亮度),另外两个则是0-1之间的标准化值。
这个色彩空间的发明者Gregory Ward是HDR图像的开拓者之一,他在很多年前就发明了用这种色彩空间来存储HDR图像的格式LogLuv。我们为了满足自己的要求,在这个基础上做了一些改进。
PSINext:这么说NAO32就是一种在保持图像质量的前提下节省内存的方法,是么?
Marco:没错。使用NAO32的基本目的就是用shader计算能力来换取内存空间和带宽(这些资源在主机上非常宝贵)。所以我们没有直接用FP16或FP32来存储HDR图像,而是利用了RSX的像素shader单元来把RGB色彩转换成CIE Luv色彩,后者只需要一个普通的RGB8的内存空间(每个像素4个字节,是FP16的一半)。
这种格式的质量相当出色。尽管它只用了普通HDR方法的一半内存空间和带宽,但它其实并没有在图像质量上做出任何牺牲。
不过这也没什么神奇的:我们只是把HDR的渲染代价从内存转移到了shaders上,所以我们的shaders变长了一点(3到5个周期)。我们觉得这是一个很好的交易。此外,它还能让我们在不能硬件支持FP16或FP32的反锯齿的GPU上实现HDR的反锯齿。
我们还开发了一种更快的3字节的格式,叫NAO24。它支持的HDR更窄,精确度更低。尽管它的质量在大多数时候足够好了,但是我们还是不愿意妥协,所以最后并没有采用它。
我最后的回答就是:NAO32绝对称得上是真正的HDR。
PSINext:NAO32在内存上的优势和无损的质量似乎很有推广的价值。你认为这种格式是不是可能进入桌面,甚至是微软或任天堂的主机?
Marco:任天堂的主机我不知道,不过在微软的主机上,NAO32可能一定优势,如果开发者想要一个比FP10质量高得多,但内存消耗差不多的格式的话。但是他们要付出一些shader能力,而且还会失去用eDRAM做混合的功能。所以目前来说,我觉得NAO32在RSX上要比在Xenos上更合适。
PSINext:我们已经谈了不少NAO32的优点了。那么缺点呢?
Marco:它也有缺点。GPU一般用硬件来做RGB空间的混合,所以对于NAO32的帧缓存,硬件混合就没法用了-会产生出错误的结果。
克服这个问题有几种办法,比如说在一个像素shader里模拟混合操作,或者就在RGBA8帧缓存里用LDR来做混合。最好的当然就是GPU能硬件支持CIE Luv帧缓存。
PSINExt:在E3上玩了这个游戏之后,我们发现了大量的特殊效果,包括HDR和软阴影。你能告诉我们Ninja Theory为这个游戏选定的AA和AF设定么?
Marco:好。阴影是完全动态的,所有物体都能投射/接受阴影。软阴影是每个像素12个抖动取样。反锯齿是4X(多采样),但效果并不如我们想象的那么好;我们还会继续对其加以改进,希望在今后几个月里会有进步。
PSINext:分辨率和帧频的目标如何呢?
Marco:我们的分辨率目标是720p和4X AA,并且已经实现了。帧频的目标还没有确定。虽然E3上的demo是在30帧以上,但我想最后的游戏将会是30fps。这会让我们能加入更多的效果。
PSINext:NAO32的一大好处就是节省带宽。你觉不觉得RSX的128位内存带宽和缺少eDRAM会使其不如Xenos?
Marco:完全不是;事实上对于很多帧缓存效果,我觉得RSX要比Xenos更好一点。我不想谈论细节,只是想指出RSX其实连接了两条总线,而非一条。
PSINext:在和你的同时Dean和Mike在E3上谈过之后,我知道Ninja Theory现在在使用SPE来实现诸如音效,物理,动画之类的东西。那么你觉得现在Cell的潜力还有多少呢?
Marco:我现在没法给你任何准确的数字,但是我可以肯定的一点是,现在开发者们用到的还是Cell的冰山一角。
我们都需要学习Cell的工作方式和如何得到最好的性能。这不是一朝一夕的事情,但玩家们一定会得到一些真正的惊喜。
网友评论