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有文章,有时候运气也是实力的一部分呢。
相关阅读
SPSS(十一)SPSS信息浓缩技术--主成分分析、因子分析(图文
SPSS(十一)信息浓缩技术--主成分分析、因子分析(图文+数据集) 当我们的自变量存在多重共线性,表现为进行回归时候方程系数估计不正常
LinkedME|Android移动开发者不得不知道的技术 Deep Lin
1.概述 Deep Linking(译:深度链接)作为移动开发者可能对这个概念有点陌生,但是对于它的实现原理,说出来大家肯定都知道。不过我们先说
阿里妹导读:本文主要为大家介绍飞猪 Weex 技术体系从无到有的过程,包括 Weex Ui 组件库的开发和发展,重点分享在 Weex Ui 层建设的一
直播火了。连麦直播在火的路上。那么,这些连麦技术方案,真的能连吗?本文将常见的,不常见的直播技术方案进行了比较,各位同学自己甄别。
前段时间在极客时间上购买了杨晓峰老师的《Java核心技术36讲》,趁着这段时间有空,对相关知识点做了一个整体的大纲,也对自己所掌握的