● Compute Shader技术处理景深
景深是人眼视觉系统中成像的重要特征。人眼对现实世界成像时,自动调节焦距以适应不同的取景距离,眼睛注视的物体便处于聚焦平面(focus plane)上,因此清晰成像于视网膜;而处于聚焦平面之外的物体,成像便模糊不清。透镜(瞳孔)的焦距、直径,以及物距共同决定了物体成像时的模糊程度。从Shader Model 2.0标准开始,景深处理已经能够被GPU硬件执行了,而进入DirectX 11时代这种执行效率在Compute Shader技术支持下得到了迅猛提升。
以往的虚拟现实系统中,几乎都未引入景深效果,整个场景成像后都是清晰的,这样,整个场景则显得不够真实、自然,并且缺少景深所带的深度暗示。加人景深效果,有助于立体照片的合成以及缓解虚拟现实系统中常有的眼睛疲劳,增强场景的真实感、沉浸感。
使命召唤4游戏封面
CS技术原则上可以处理一切效果。不过现在用得最多的,大体上是DOF(Depth of Field),也就是景深效果。HDR(High-Dynamic Range)高动态光照渲染目前已经不需要CS技术来实现,但是用CS技术来实现这些效果还是非常划算的。景深主要适合于第一人称视角游戏(First-person games)如使命召唤等游戏,景深效果可以让玩家沉浸在富于电影级别特效体验的游戏中,高效处理景深将成为实现真实游戏特效的重要环节。
Compute Shader可发挥的地方很多,游戏中可以使用GPU进行光线追踪、A-Buffer采样抗锯齿、物理特效、人工智能AI等游戏特效运算。在游戏之外,程序员也可以利用CS架构进行图像处理、后处理(Post Process)等。
发布DX11显卡之后不久AMD放出了一个名为ladybug的DX11 Demo,其中就有Depth of Field效果的演示。
在硬件支持Compute Shader之后,相应的硬件必须要比当代硬件更加灵活,因为在运行CS代码的时候,硬件必须支持随机读写、不规则列阵(而不是简单的流体或者固定大小的2D列阵)、多重输出、可根据程序员的需要直接调用个别或多个线程、32k大小的共享寄存空间和线程组管理系统、粒数据指令集、同步建构以及可执行无序IO运算的能力。