[gdc18] farcry5地形技术
ubi在地形技术上持续输出,gdc18上面这篇farcry5的地形,也很不错。
===overview===
这里我们可以看下过去几年,ubi在场景渲染上的演化:
- 15,刺客信条,gpu driven pipeline : 文章审核中,后面放链接
- 15, farcry4, adaptive virtual texture : https://blog.csdn.net/toughbro/article/details/52108491
- 17, ghost recon wildlands, pipeline : https://zhuanlan.zhihu.com/p/33887115
所以到了farcry5,可以说具备了之前产品的所有优点:高效的pipeline,制作出超逼真场景的能力,非常高的渲染效率;
并且在此基础上,运行效率进一步提升,细节处理更加到位。
积跬步以至千里!
细节版:图估计太小,各位手动放大了看吧
===gpu driven===
在terrain渲染上,可以说是非常适合gpu pipeline了。
可以看到,基本的渲染工作已经都在gpu上做了,cpu做一个streaming工作,然后就一边叫好去了。
然后gpu搞定这些额外的负担花了多少时间呢?0.1ms,班纳博士对绿巨人的感觉。
具体细节,可以看前面文章的gpu driven,这里不赘述。
===悬崖处理===
adaptive virtual texture在处理z方向投射的地形材质各种猛。
但是在处理xy方向的投射,就不行了,这里farcry5还是回到了传统的tri plane projection,这样三个方向投射,不同情况要blend,就会有48次texture sampling。
然后远距离terrain的tiling比较严重,farcry5要做不同距离不同tiling系数,直接sample数量翻倍:96个。。。
然后就使用了随机混合的技术来处理,最终可以将sampling数量降到12.
这里farcry5的技术,他们命名为”stochastic cliff shading”
随机混合,其实就是使用有噪点的alpha test来替代alpha blend,本质上是一个screen door effect。
这个最大的优势就是避免了alpha blend,每个pixel只需要shading一次,而不是多次来做blend,性能优势非常的好。
其实除了farcry5的地形,多向投射和变参tiling,这项优化还有这些地方可以使用:
- lod切换,fade进场景的时候
- cascaded shadow map不同cascade之间过渡
- 头发,草透明等等(不过质量略低)
由于farcry5使用的是deferred texturing的方式,还要处理stable和alias的问题,这个在i3d的“hashed alpha testing”被非常好的解决了。
所以最后得到了质量很好,效率非常高的3向投射的地形。
=cliff geometry=
在检测到是悬崖类地形的时候,会procedural的生成一些geometry,让悬崖看起来更给力了。
===deferred texturing===
farcry5的叫法是“screen space shading”。。。命名非常容易让人误解,这个做法一般叫做deferred texturing
具体就是在屏幕上渲染material id这种信息,然后统一的在screenspace把material data读出来用,可以shading可以填充gbuffer。
具体几个pass:
- 0, shader id渲染depth和shaderid,这样shaderid的事情就解决了
- 1, gbuffer, material data,利用了地形的特点,位置就可以索引sector,进一步在quadtree里可以找到material信息
然后uv的导数问题是deferred texturing的经典问题,这里uv导数正比于position的导数,所以确实各方面非常的巧。
===sum===
farcry5的这个文章,我是非常喜欢的,把大家提的很多的做法,在具体的地形模块上做了非常好的落地,也有了非常好的结果。
尤其是cliff stochastic shading差点这条路就走不通了,刚刚好17年的i3d有文章,有时候运气也是实力的一部分呢。
[gdc18] farcry5地形技术相关推荐
- GDC - 《幽灵行动:荒野》地形技术和工具(一)
文档翻译自GDC 2017的技术演讲文档:<Ghost Recon Wildlands Terrain Technology and tools>:网上也有类似的译文,但没有看见完整翻译的 ...
- GDC - 《幽灵行动:荒野》地形技术和工具(六)
文档翻译自GDC 2017的技术演讲文档:<Ghost Recon Wildlands Terrain Technology and tools>: 原文很长,因此翻译的文档也分为多篇: ...
- GDC - 《幽灵行动:荒野》地形技术和工具(七)
文档翻译自GDC 2017的技术演讲文档:<Ghost Recon Wildlands Terrain Technology and tools>: 原文很长,因此翻译的文档也分为多篇: ...
- GDC - 《幽灵行动:荒野》地形技术和工具(五)
文档翻译自GDC 2017的技术演讲文档:<Ghost Recon Wildlands Terrain Technology and tools>:原文很长,因此翻译的文档也分为多篇:此为 ...
- GDC - 《幽灵行动:荒野》地形技术和工具(八)
文档翻译自GDC 2017的技术演讲文档:<Ghost Recon Wildlands Terrain Technology and tools>: 原文很长,因此翻译的文档也分为多篇:此 ...
- GDC - 《幽灵行动:荒野》地形技术和工具(三)
文档翻译自GDC 2017的技术演讲文档:<Ghost Recon Wildlands Terrain Technology and tools>:原文很长,因此翻译的文档也分为多篇:此为 ...
- GDC - 《幽灵行动:荒野》地形技术和工具(四)
文档翻译自GDC 2017的技术演讲文档:<Ghost Recon Wildlands Terrain Technology and tools>:原文很长,因此翻译的文档也分为多篇:此为 ...
- GDC - 《幽灵行动:荒野》地形技术和工具(二)
文档翻译自GDC 2017的技术演讲文档:<Ghost Recon Wildlands Terrain Technology and tools>:原文很长,因此翻译的文档也分为多篇:此为 ...
- GDC翻译:Far Cry 5 的程序化世界生成(第二部分:6-崖壁工具)
下面来看崖壁工具. 这个工具的目的是在大型地形表面上生成崖壁几何体,它作为地表之上一个具有更多细节的"皮肤". 总览 这部分的演讲内容很大,所以我将给出这部分的总览: 以前的技术 ...
最新文章
- Google收购安全分析软件厂商Zynamics
- springboot学习笔记(三)
- 命令行参数实现10万行小字典程序并输出查找时间
- 焊接机器人应用现状及发展趋势
- Sql Server之旅——第十二站 对锁的初步认识
- C++实现双栈结构(一个顺序表中使用两个栈)
- https证书pfx 生成 pem,crt,key
- 【转】SharePoint开发中可能用到的各种Context(上下文)
- 百万年薪的腾讯员工买得起深圳房子吗?
- php-fpm配置文件的优化
- dinic算法 java_网络流问题(Dinic算法JAVA实现)
- 什么叫wipe,安卓用户如何去wipe?
- 经典的机器人入门资料
- 外研在线:如何用云技术优化教育服务
- Latex中IEEEtran中参考文献中斜体问题
- android中禁止输入表情符号,Android EdText编辑框禁止输入表情符号(使用正则表达式)...
- 格灵深瞳:人脸识别最新进展以及工业级大规模人脸识别实践探讨 | 公开课笔记...
- AutoLayout进阶篇
- 基于构件技术的流程银行,再造核心竞争力
- RGB颜色转HEX进制与单位换算