对于游戏场景的制作,完成模型和贴图的制作是一步,之后合理的使用光照,后处理,可以使游戏场景产生高级感。
光照影响有多大看看下面渲染对比图。
酒吧外部
素颜照
酒吧内部
素颜照
光照的使用
室外,开放的空间
在开阔的地方,光线在一次放射之后就会向周围逸散开,在附近的物体上产生的光照效果很弱,而且这种效果很均匀的光,这种效果很像环境光,另一方面,因为一般外部的场景面积都比较的大,产生贴图的话会消耗很多内存,综合这两点考虑,我在开阔的场景中使用,无影区域光,点光源,锥光源。
在场景中打光的时候,可分为两类,有光源的光(后称有源光),无光源的光(后称无源光)。
有源光很好处理,比如路灯的光,是一束直接的光,这是应该使用带有阴影的实时光,因为玩家会觉得如果路灯下没有阴影会很奇怪,但是阴影计算开销很大,不要使用大量的阴影光,可以使用一个主方向光带阴影,使用有赢点光源,锥光源是一定要限制他的照亮范围。
无源光用于烘托气氛,比如你想表示某个区域很诡异,你可以在在空气中加入一点紫色的光,或者你想创造一个魔法森林,你会加上许多无法解释的光线。
室外用到BakeGI的地方也是有的,比如大量的霓虹灯照射在周围建筑物体的光,这一类光的特点:照亮静态物体,数量多。所以使用了BakeGI。
对一个网格使用Emission贴图,它就变成了一个自定义形状的光源,但是注意,它不是像点光源,锥光源那样的光源,而是一个只用于照亮RealtimeGI或者BakeGI的lightmap光源,在不烘焙情况下他不会照亮任何物体。
室内,封闭的空间
与开阔的空间不同,光线在封闭的空间内,无法向四周逃逸,会在封闭的面之间反弹碰撞,产生丰富的效果。所以非常推荐在室内等封闭的空间内使用RealtimeGI,或者BakeGI,有大量的动态光源的时候使用RealtimeGI,有大量静态光源的时候使用BakeGI,BakeGI非常经济,再多的光源都不会产生更多额外的开销,所以尽可能使用静态的光。
酒吧内部的光线全部是BakeGI没有实时光,如果要照亮动态物体就需要光照探针。酒吧内光的来源有三个都是有源光,一,舞台上方的粉色照明(区域光),二,柜台蓝色的发光墙壁(区域光),三,墙壁贴纸上的发光条纹,之前提到五个贴上发光材质可以当自定义光源,不一定一整个物体发光,只要这个贴图有一部分发光,都可以当成光源,墙壁上黄色的灯光渐变就是贴图中发黄光的地方照亮的。
墙壁上的黄色发光贴图,可以充当光源
后处理
在一个赛博朋克的场景里,昏暗的巷道和霓虹Neon是必不可少的,亮处与暗处的对比强烈。
为了增强这种对比,有几种特效可以使用
Bloom
晕影,发光物体的光扩散。
Flare
光的芒刺,因为人眼和相机快门都不是完美圆形,而是类圆多边形,直视光源的时候产生衍射,就会看到光芒。现实世界的光芒都是向四周放射的星星形状,这种贯穿屏幕的芒刺只存在于虚拟世界,效果炫酷夸张,但是并不真实的特效
注意那个车灯是通过屏幕特效产生的芒刺
战地三这夸张的Flare,初看炫酷极了,很像迈克尔贝特别喜欢在自己的电影里加入这种晃瞎眼的莫名其妙的蓝光,那个年代镜头特效在游戏里边还是新鲜玩意,或许是战地三为了追求大片里边的视觉效果,也可能是为了遮掩寒霜引擎表现的寡淡色彩,加入大量的夸张的贯穿屏幕的芒刺,但是现在没有游戏会加入这么夸张的特效了,就像以前人们觉得网络游戏里边的金色闪光梦幻大翅膀炫酷极了,现在看就LOW爆了。
画面上的亮点就是DirtLens
Dirt Lens