发布时间:2016-04-22 12:10 我来说说 我要投稿
R星沙盒神作《GTA5》的成功并不是偶然,它不仅给玩家带来了无与伦比的次世代游戏体验,而且在旧世代平台PS3和XBOX 360上也非常成功。PS3仅有256M RAM以及256M显存,竟然能够运行如此出色的画面而不奔溃,这不得不让人感叹R星技术的强大。
当然,今天我们要谈论的是游戏PC(DirectX 11)版本,就是占用了几个GB内存和显存的那个版本,让我们一起来揭秘游戏图像的秘密吧,看看一帧3D游戏画面是如何诞生的。
第一部分:解剖帧数框架
我们用麦克的这张图作为例子,他站在一辆Rapid GT前,身后是美丽的洛圣都。
《GTA5》使用的是延迟性管道渲染,通过大量的HDR缓冲区运行,当然这些缓冲区无法在同一个显示器中全部呈现,因此我们将其分解,将画面调用至Reinhard模型,通过这样将画面回归到每条线路8-Bit。
环境块图:
第一步,截取图像的环境块图,这个块图每一帧都是事实运算,连续执行后就得到了后期逼真的环境效果,这也是Nvidia的3D画面实现技术——Forward-Rendered。
那么如何实现这些块图的呈现,对于不熟悉游戏技术的人,你可以想象你在拍摄一副全景图片,设定自己站在一个立方体中间,六面环绕,每转过90度进行拍摄,一面连接一面。
游戏中图像就是这么呈现的,每一面换算到128X128 HDR图像,第一面的元素就包括以下内容:
同样的内容使用到剩下的五个面,最终获得完整的块图:
每一面差不多呈现出30次画面调用,基地的多边形网格呈现的内容仅仅是环境(天空、山脉、主题建筑),角色以及车辆不予以呈现。
这也是为何在游戏中你的车辆和环境互相反应非常好而其他的车辆却没有造成反应,角色也是如此。
块图到抛物面图的转换:
完成了环境块图的设计之后就需要把它转化为双边抛物面图。
方块图展开后显示了不同区域,而转化之后就类似于半球形状的图片(包含俯视和仰视双视角)。
原块图拆解
形成双边抛物面图
为何要进行这一步转换,很关键的一点在于优化!通过块图着色器需要捕捉到6个面上128X128的图像,而转换为双边抛物面图之后,着色器需要捕捉的仅仅是2个全面的128X128图像,更重要的是,一般情况下,玩家的视角都是从上方往下看,因此完善俯视视角就能够进一步地达到优化目的。
此外,块图6个面的边缘都是独立链接,如果说两个边缘上存在统一图案对于老一代的显卡来说将无法识别,就算是新一代的显卡也需要耗费更多性能去过滤,而转换为双边抛物面图将大大减轻显卡处理的压力。
修缮细节等级(LOD):
这一步需要计算着色器来完成,根据物体距离镜头的远近,用不同精细的网格进行着色,有的物体甚至不需要着色过程,例如一些超过可见距离的花和草是不会呈现在屏幕上的,就不需要进行修缮。
这一方面PS3和PS4/PC版本之间存在着很大的差异(PS3版本没有计算着色器支持),因此在PS3版本中,这些内容都通过Cell多核处理器或是SPU解决。
《涨姿势!《GTA5》为何这么牛逼?一帧画面告诉你答案》由河南新闻网-豫都网提供,转载请注明出处:http://game.yuduxx.com/djyx/380138.html,谢谢合作!
豫都网版权与免责声明
1、未经豫都网(以下简称本网)许可,任何人不得非法使用本网自有版权作品。
2、本网转载其他媒体之稿件,以及由用户发表上传的作品,不代表本网赞同其观点和对其真实性负责。
3、如因作品版权和其它问题可联系本网,本网确认后将在24小时内移除相关争议内容。