Grand Theft Auto V 图形研究(3)

原文链接 http://www.adriancourreges.com/blog/2015/11/02/gta-v-graphics-study-part-3/

Post Processing Effects 后处理特效

一旦场景被渲染完成,便是执行后处理特效来增强画面效果,修复缺陷,改变整体气氛等等...
我们在第一部分也了解到一些使用到后处理特效,像 bloom, anti-aliasing 和 tone-mapping. 但GTA V里还使用了一些其他的特效。

Lens Flares & Light Streaks   镜头光斑和光源条纹

光源射入真实世界的镜头时,散射和内部的反射有时会产生“失真(artifacts )”。
这里所说的“ lens flares ”,是沿着屏幕中心的明亮光源所定义的轴向分布的明亮光点的集合。
也有“light streaks”这种从光源处放射的效果。这种失真效果在电影中很常见,把这种效果加入到游戏中可以给人一种“电影”的感觉。
 
 
这里有两种方法来渲染这种失真效果
image-based:抽出最亮的区域,对这个区域做复制和变形,适用于任意数量的光源。
sprite-based:手动的添加 textured-sprites并管理位置,每个光源都需要分别处理,但美术师对效果的形状,颜色,强度有更多的控制权。
 
实际上 GTA V  同时使用了这两种技术: image-based的方法用来在画面的左下角增加微秒的蓝色光晕效果,是 bright-pass buffer的对称。但场景中最明显的效果还是使用 sprite-based的方法,它只适用于太阳。 light streaks  是在太阳周围12个旋转的四边形来加入的,而 lens flares是沿着“太阳到屏幕中心”的轴绘制的70个sprite。相机方向越接近太阳,这些效果之间距离也越接近。
 
 
引擎使用了几种sprite来模拟不同的镜头效果:
 
                                                                                                                                                
 
GTA V 关注一切的细节,   lens flares  也不例外: 它的大小和相机的光圈成比例。如果你突然朝向太阳, lens flares起初很大,然后随着光圈缩小来降低曝光, lens flares也会变小。下面的动画演示了这个现象。
另外一个不错的细节是:如果你切换到第一人称视角,你几乎看不到任何的 lens-flares,因为这时我们是通过人眼来观看,而不是通过相机。
 
 

Anamorphic Lenses 变形镜头

特别是夜晚的黑色区域,游戏模拟了变形镜头的失真效果:水平或垂直的长条纹,通常是蓝色。变形镜头生成的   Light streaks是最近流行的,也在好莱坞最近的科幻电影中使用了。
游戏中的效果是通过 sprites作出,就像前面看的太阳光的效果,只在类似直接朝向相机的车前灯的非常明亮的光源上使用。
 

Depth of Field 景深

下面这个场景看起来比电影稍微“失真”一些,所有事物都显示的非常的清晰和干爽,你可能会期待像电影里那样背景的风景失去焦点( out-of-focus )并变的模糊。
 
 
 
 Depth of Field effect (DoF) ,就是通过把图像中非聚焦的部分进行模糊,来解决这个问题的。
 
它是如何应用的?首先通过   depth buffer生成Circle of Confusion(模糊圈) map。通过这张贴图告诉我们每个pixle的“失焦”程度,换句话说就是每个pixel的模糊程度。一个pixel的CoC值,取决于它与相机的距离(也就是像素深度)和相机的镜头参数。
 
需要注意的是 GTA V保存的CoC是有符号值,即是在-1到1的范围内。符号肯方便告诉我们这个pixel是在聚焦区域的前面还是后面。如果一个很远和失焦的pixel,它的CoC值是1,如果pixel非常接近相机且失焦,它的值是-1。任何值接近0的pixel几乎不做模糊。
 
为什么需要有符号数值?
这是由于创建一个高品质的DoF是很复杂的,当你“模糊”场景时,需要考虑很多情况。
例如,你不想让背景的失焦pixel影响到它前面聚焦部分的pixel。如果要考虑前景的失焦pixel,那么情况就相反了: 你需要让它可以渗透它后面的聚焦区域pixel。所以当要模糊pixel时,并不是简单的“模糊多少”的问题,你也需要知道,周围的pixel是在前面还是后面,是聚焦还是失焦区域,因此,有符号的值可以区分不同的情况。
在下面的CoC map里,用green通道表示CoC > 0的部分,而red通道表示   CoC < 0  以方便观看。
 

                                                                 
 
所以,通过CoC Map我们可以得知莱斯特(游戏中的角色)的黑色部分是焦点,而前面的富兰克林(游戏主角)和后面的背景则是失焦的部分。
 

 
然后,引擎只抽取"前面的失焦区域":所有CoC < 0的 texel ,然后把这个CoC map通过 一个水平pass和一个垂直pass用 compute shader来做模糊。
 
这么做的原因是?富兰克林的pixel值比较高,大约是0.7,而他右后方的长椅在焦点范围,CoC的值为0。当执行模糊时,富兰克林看起来很模糊,而长椅仍然非常的清晰,而接近富兰克林右臂的区域看起来会很奇怪:从强烈模糊的手臂Pixel到突然清晰的长椅的pixel会有突变。这种很明显的生硬轮廓是不应该产生的,轮廓应该平滑,富兰克林的pixel要渗入到周围的pixel里。
这也就是模糊 CoC map的目的:修正 CoC map的不连续性,使"前面失焦的区域"可以渗透到后面。
 
然后我们需要计算景深了。在较低的分辨率上通过   pixel shader来计算传统方法blur,分为水平和垂直两个pass来优化计算。 GTA V  也是沿用了这种两个pass的方法,但是在原始分辨率上进行的,为了避免影响性能,用 compute shader来替代pixel shader。这是因为  compute shader更加适合计算 large-kernel的模糊效果。计算pixel最后的"模糊"值时,pixel的颜色会或多或少受到邻接pixel的影响(取决于pixel的CoC),而一些可能会导致错误渗入的邻接pixel则会被排除掉。
 
使用  compute shader 计算 水平和垂直两个pass的模糊
                                                                                                                                                
 
这个效果会给予画面完整的层次感,就像电影中,导演会聚焦在一个角色以引起注意。
 

Conclusion 总结

我们还有许多后处理特效可以讨论,不过这个 GTA V的 系列文章的长度已经超出计划了。
 
例如heat haze, god rays  (通过屏幕空间使用亮度溢出,或者在场景里手动的增加mesh), motion blur  (似乎是一种混合的方法,通过一个特殊的pass在相机的旋转方向上做定向模糊,并使用stencil buffer作为mask来剔除玩家角色的pixel )。
 
你的角色死亡时的 " Wasted "屏幕是纯粹的后处理,把渲染的场景模糊后,转为灰度图,加入vignetting(图像四周的暗角)和胶片的颗粒感后再把"wasted"的文字绘制在上面。
 
 
希望这些可以揭露一些 Rockstar创造出 被认为是在视频游戏历史上有里程碑意义游戏的秘密。
广阔的场景,沉浸感和对细节的关注,以及 Rockstar设法在老世代的家用机上运行,使得GTA V成为了一款非常伟大的游戏。
 

链接

The tech that built an empire: how Rockstar created the world of GTA 5 featuring an interview of Aaron Garbut.
 
GTA V NVIDIA Performance Guide with details about the different graphics settings.

Renderdoc which made picking into GTA V internals a breeze.
 
 
 
 

转载于:https://www.cnblogs.com/TracePlus/p/5123302.html

说明书更新日期:2020\05\25 首先,若网络是移动铁通,优化基本无效,毕竟是大型局域网。 ■■■■■■■■■■■■■ 使用必看 ■■■■■■■■■■■■■ ■1.“dynamic.mcgc”和“MCGC線上優化器2.1.1.19.exe”放在同一文件夹内。 ■2.退出大量占用网络资源的软件(迅雷等),各种“加”速器,GTA5线下即可。 ■3.运行优化器,点击“优化本地网络”,提示确定,不建议使用【高峰期模式】。(PS: win10系统上有小BUG,若优化完毕前两项没有降低到250ms以下请务必点击【重新优化】。) ■4.运行完成后,关闭优化器,先进线上单人战局最快。 ■6.前两项数据不大于300ms即可,无异常不需要再优化。战局切换延迟数据现在仅做参考,无影响。 ■7.如有不能上线的情况,可以执行卸载恢复到未优化状态。 ■■■■■■■■■■■■■ 线上多人注意 ■■■■■■■■■■■■■ ■ 2.GTA内,HOME键-设置里面网络状态NAT是严格、UPnP禁用或者屏蔽的, 所用网络的路由器和光猫都要排查,有一个不开启都无效。 建议网路尽可能减少路由器叠加。 大部分运营商光猫的UPnp默认不开启,需要运营商的“超级管理员账户及密码”登录光猫才能看到高级NAT和UPnp设置,可以联系装网人员获取,或搜索对应光猫型号破解方法教程。 进高级设置里外网WAN设置看UPnP, 把UPnP打开,或关闭再打开一遍,此项目关系到战局组队稳定。 DMZ(隔离区)状态,建议小白不要设置和开启。 ■ 1.设置里面-图像-人口密集程度-最低。 这样设置能让路面NPC车辆更少,需要同步的数据也就更少, 不仅能避免任务撞车,还能减少自己以及队友的电脑负担。 更多详情可见包内说明书。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值