萌猴达达 发表于 2010-11-18 22:24:00

游戏特效全解析

【IT168 应用】当我们被一部部游戏大作的无比绚丽画面征服时,我们有想到这里面繁多的效果叫什么吗?当我们听显卡大湿和OC大湿高谈阔论HDR ,动态模糊的时候,我们想到了为什么这些效果这么重要吗?我想还有不少玩家朋友对这些视觉效果名词还不大了解,但又想有个初步的认识,所以本文就是为此而生的。
MENU:
    1.动态模糊(Motion Blur)
    2.景深(Depth Of Field)
    3.软阴影(Soft Shadow)
    4.高动态光照(High Dynamic Range)
    5.次表面散射(SubSurface Scattering)
    6.体积云/雾(Volumetric Clouds/Fog)
    7.体积光(Volumetric Light)


动态模糊(Motion Blur)
    动态模糊的概念,也叫“动态模糊技术”,或者“运动模糊技术”, 来源于电影摄影,后来发展到游戏CG动画和部分游戏实际画面的计算上。 运用的最多的游戏一般都是动作游戏,或者ARPG游戏,或者赛车游戏。比如,极品飞车的开头CG动画中就有动态模糊技术的运用。运动模糊是景物图象中的移动效果。它比较明显地出现在长时间暴光或场景内的物体快速移动的情形里。
       摄影机的工作原理是在很短的时间里把场景在胶片上暴光。场景中的光线投射在胶片上,引起化学反应,最终产生图片。这就是暴光。如果在暴光的过程中,场景发生变化,则就会产生模糊的画面。不难发现,在电影或电视中,运动模糊是经常出现的,甚至于你不会注意到它。另一方面,在计算机图形中,你就会发现缺少运动模糊,由此也带来了失真。
       看一下没有采用运动模糊的计算机动画,你会发现物体快速移动时,缺乏连贯性和真实感。你在电视的体育报道中,也能看到类似的效果。因为普通电视节目使用25帧/秒的摄象机,而体育节目则使用1000帧/秒的摄象机,从而提供清晰的慢镜头回放。但实际中,只回放小部分的帧,失去了运动模糊,使移动的物体看起来有跳跃感。
       我们对电视或电影中的运动模糊都习以为常,所以在运动图象中看不到它就会觉得不真实。所以,缺乏运动模糊是计算机动画不真实的原因之一,因为计算机产生的图象“棱角分明”,很注目,以致削弱了运动效果。

    简单来说:摄像机在工作的时候并非一帧一帧绝对静止地拍摄,它所摄下的每一帧图像已经包含了1/24秒以内的所有视觉信息,包括物体在这1/24秒内的位移。如果在看电影的时候按下暂停键,我们得所到的并不是一幅清晰的静止画面,而是一张模糊的图像。传统的电脑3D图像做不到这一点,游戏里的每一帧就是一幅静止画面,如果你在运动的过程中抓一张图片下来,得到的肯定是一幅清晰的静态图。所以,动态模糊技术的目的就在于增强快速移动场景的真实感,这一技术并不是在两帧之间插入更多的位移信息,而是将当前帧同前一帧混合在一起所获得的一种效果。

                              电影中的模糊动态效果

下面就是动态模糊在游戏中的表现:


                           游戏中的模糊动态效果


                           游戏中的模糊动态效果

萌猴达达 发表于 2010-11-18 22:26:00

景深(Depth Of Field)     景深是指在摄影机镜头或其他成像器前沿着能够取得清晰图像的成像器轴线所测定的物体距离范围。
光轴平行的光线射入凸透镜时,理想的镜头应该是所有的光线聚集在一点后,再以锥状的扩散开来,这个聚集所有光线的一点,就叫做焦点。
   
    在焦点前后,光线开始聚集和扩散,点的影像变成模糊的,形成一个扩大的圆,这个圆就叫做弥散圆。
在现实当中,观赏拍摄的影像是以某种方式(比如投影、放大成照片等等)来观察的,人的肉眼所感受到的影像与放大倍率、投影距离及观看距离有很大的关系,如果弥散圆的直径小于人眼的鉴别能力,在一定范围内实际影象产生的模糊是不能辨认的。这个不能辨认的弥散圆就称为容许弥散圆(permissible circle of confusion)。
   
    在焦点前后各有一个容许弥散圆,这两个弥散圆之间的距离就叫景深,即:在被摄主体(对焦点)前后,其影像仍然有一段清晰范围的,就是景深。换言之,被摄体的前后纵深,呈现在底片面的影象模糊度,都在容许弥散圆的限定范围内。
    说得再简单一些,就是距离不同的景物,呈现出有些地方清楚有些地方模糊的效果。这种效果能够更加突出需要反应的焦点,让画面的主题更加鲜明。
    我们观察下面的图片,就能非常明显的看出景深的效果。在第一张图片中,人和酒瓶子是清楚的,后面的背景模糊了。而在第二张图片中,孤岛危机对景深的展现更是惊艳啊!

                           孤岛危机中的景深效果

                  孤岛危机中的景深效果



萌猴达达 发表于 2010-11-18 22:34:00

软阴影(Soft Shadow)    这段太复杂了,我就直接借用作者原话,请原谅...
    从字面上直译过来就是“软阴影”,不过叫“柔和阴影”似乎更合适。我们知道生活中很多阴影的过渡都是有渐变,而软阴影的作用就是要模拟这种效果,在阴影周边制造虚化的效果。软阴影本身并不是指一种技术,而是指通过采用某种技术达到的效果。
    在说软阴影前先说说阴影的生成方法。一般在游戏中采用的阴影生成方法有两种:Shadow Mapping(阴影映射)和Shadow Volumes(体积阴影)。
    Shadow Mapping(阴影映射)是一种图像空间的技术,它是在以光源位置作为视点的情况下渲染整个场景的深度信息,然后再使用这些深度信息去决定场景的哪一部分是处于阴影之中。它有锯齿并且依赖z-缓冲技术。由于可以在不减少帧率的情况下达到真实感光照和阴影效果,编辑器允许在场景中放置任意数目的静态光源,它会为每个面预计算光流量(light flow)和静态阴影,因此现代商业3D游戏中多数都会使用到阴影映射。阴影映射效果的一个影响因素是Shadow Map Size,如果size(尺寸)小,会导致阴影边缘模糊不清、闪烁、出现大型锯齿。增大size能提高阴影质量,但帧速会受到影响。

                  尺寸大小的阴影效果
Shadow Map Size太小(上图),增大Size之后(下图)
    对于在阴影映射下实现软阴影,通常是在阴影边界进行高精度超级采样的方法,如虚幻3引擎就是进行16X的超级采样,这就是软阴影消耗系统资源大的原因。

                                          游戏中的体积阴影特效
Shadow Volumes(体积阴影)是一种基于几何形体的技术,它需要几何体在一定方向的灯光下的轮廓去产生一个封闭的容积,然后通过光线的投射就可以决定场景的阴影部分(常常使用模板缓冲去模拟光线的投射)。这项技术是像素精确的,不会产生任何的锯齿现象,但是与其他的技术一样,它也有缺点。最主要的两个问题一是极度依赖几何形体,二是需要非常高的填充率。同时,体积阴影也相当依赖CPU,视觉效果方面是产生的阴影比较“硬”。
    目前使用体积阴影的游戏不多,《DOOM3》和《F.E.A.R.》就是典型,在游戏中仔细观察你会发现它们的阴影和其他游戏的明显不同。

                                 体积阴影特效
《F.E.A.R.》是第一个采用了软阴影的游戏,它的软阴影实现方法是在光源在自身附近进行自我复制,产生多个不同亮度的阴影再混合起来,这种软阴影效果似乎不怎么理想,边缘看起来有层状感,系统资源开销也大。

                                    软阴影特效

萌猴达达 发表于 2010-11-18 22:37:00

高动态光照(High Dynamic Range)
    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.亮暗部的细节都很明显

    HDR是分种类的,一般按可精度分为:Int16(整数)、FP16(浮点)、FP32等等,数字越大精度越高,运算量当然也越大。其中Int格式的HDR在SM2.0下即可实现(如半条命2:失落的海岸线、第一章、第二章),FP格式要SM3.0或以上才能实现(目前有HDR的游戏基本都是FP格式),在DX10中HDR的精度已经提升到FP128。

                                    HDR特效


                                     HDR不同精度对比
说到HDR不得不提另外一个特效:BLOOM。BLOOM也能实现和HDR类似的效果,但BLOOM的是静态的,HDR是动态渐变的,BLOOM在细节表现、明暗对比不如HDR,这是BLOOM与HDR的重要区别。实现HDR效果的系统资源开销也比BLOOM大。

萌猴达达 发表于 2010-11-18 22:46:00

目前使用次表面散射效果的游戏极少,似乎就只有《孤岛危机》。它主要用于模拟不完全透明材质内部表现出的一种真实光影特效。当灯光照射到玻璃或清澈的液体表面时,灯光会穿透这些介质,3S效果可用来模拟灯光进入介质内部后发生的散射。在DX10效果下的孤岛树木的透光性就是最好的体现。

                              孤岛危机中的次表面散射特效

                                       缺乏次表面散射的人物


                                 孤岛危机中人物面部特效出色

                         逼真的人物面部特效

萌猴达达 发表于 2010-11-18 22:50:00

体积云/体积雾
      简单地说,在游戏中的体积云就是使用图像引擎来模拟真实云雾半透明和模糊感,有过度性的的自然扩张。不象CS中投一个烟雾弹,那些烟是“一片一片”的。

                                  CS的烟雾特效
下面就是体积云在DX10下的表现,是不是比CS好很多?

                                 DX10特效下的体积云/雾特效

                                 DX10特效下的体积云/雾特效

                               DX10特效下的体积云/雾特效

萌猴达达 发表于 2010-11-18 22:54:00

体积光(Volumetric Light)
    最简单说法就是在游戏中实现光的质感。什么叫质感?就是如光束光柱之类的表现,并且会随视点变化而变化。用3DMAX的人都应该有所了解。这种高级特效直到DX10才实现,自然孤岛危机又是这种特效的代表之作。

                                 孤岛危机下的体积光特效

                           孤岛危机下的体积光特效


                               孤岛危机下的体积光特效
       而在早期的游戏我们也可以看到这种光束效果,但其实那不是真正的体积光,只是一简单的光影贴图。它不会随我们站得位置不同而改变。孤岛惊魂里的光束就是这种道理。

                           早期孤岛惊魂中的早期体积光特效

chengpu 发表于 2010-11-19 13:12:00

dingdingdingding

lirong1111 发表于 2010-11-19 17:03:00

普及知识了

ROOFCAT 发表于 2010-11-20 14:38:00

非常好~default0
页: [1] 2 3
查看完整版本: 游戏特效全解析