迷途卡盟-DNF卡盟行业排名第一!
当前位置:首页 > 新闻资讯 > 正文

卡盟游戏最新新闻:《荒野大镖客2》的大气云雾技术

发布时间:2020-03-28 17:30:55访问量:所属栏目:新闻资讯




技术继续领先业界,但洛基·洛克斯塔最终在SIGGRAPH 2019上取得了巨大的规模,创造了《荒野大镖客2》(大表亲2,Red Dead: Redemption II)的大气云技术共享。


近年来最上瘾的一方,高点:


一套完整而系统的技术,在销售游戏中实际使用


表示当前最强大的备用系统


技术探索与整合nice,深度积累,熟练使用


理论、实际开发已经在性能优化方面取得了很好的平衡,可以说是RD的典范


motivation overview


这也是许多优秀工作室工作的一种方法,在处理创造性时列出一些依据,进行“合理突破”。


在这里,作者深有共鸣是一种非常系统的处理方式。


Rockstar包括:




已经在《荒野大镖客1》建立了良好的备用系统,这真的很重要。当然,你要从2开始进一步。


受一些名画启发的作者还看到一些画,去一个风景好的地方,创作冲动很强(虽然我在写节目)。


Atmosphere scattering系统当然还有很多要补充的地方。


全部分为三部分:数据模型、渲染器和场景集成。


data model




这部分是易于理解的模块,因此直接列出了特性和做法。


云的分布


这类似于Horizon Zero Dawn。


https://blog . csdn . net/tough bro/article/details/48844649




使用分布图表定义云的总体分布:




[效果是这样的,可能会有多层云]


雾的分布


与云的分布一样,雾也有分布。




[没有fog贴图版本]




[带有fog贴图的版本]


云的形状定义


这是持续了15年的Horizon Zero Dawn。


https://blog . csdn . net/tough bro/article/details/48844649


基本原理几乎相似,有一些独特的特点。




下面定义云的形状。


一个Lut定义云的厚度


1x3d噪波,2x2d置换


结果比Horizon Zero Dawn好。


render


接下来,让我们看一下主要涉及渲染部分的第二部分,包括scattering和lighting的渲染。这部分是比较多的内容。


这部分可以说是这篇文章的重点。




voxel+ray marching




处理大气效果时,使用混合方案来考虑近处的准确度和场景的宏伟性:


近距离使用视觉化的高精度渲染结果,请参阅关于刺客信条的文章:


https://blog . csdn . net/tough bro/article/details/46706837


远处利用雷利润的方式,效果与效率的平衡


光照模型




这个最终照明模型使用与您熟悉的PhysicallyBasedLighting的macrofacet公式类似的公式列出:


P: phase的缩写,表示光线通过媒体时的scattering


v:可见性,我们可以理解为类似于沙道


L: lighting,即灯光、直接灯光、环境光等


phase项




这里有两个等级:


1、基础阶段模型以Henyey-Greenstein phase function(HG)为基础,在single forward scattering中处理得更好。


2、多种scattering组合以HG(heney-greenstein)模型为基础,HG模型在上面很好地介绍了single forward scattering。


3,=使用多级HG模型模拟多散射


4,=使用一个clamp操作模拟back scattering


稍微贴上helder模型的样子:




其中g条目介于[-1,1]之间,表示从back scattering到forward scattering的情况,表示media的属性。


θ是角度,相位函数是角度的函数吗?


helder函数的部分仍然比较物理,但multi scattering部分更加灵活。多级辅助对象(HG)是由艺术定义的,用于模拟多个scattering。


然后指定可以预先计算theta并放入lookup tab able(lut)映射中的g。




最后放入的效果:


只有1级HG function时:




2级HG function模拟multi scattering back scattering:




“physically based“的度和变通


这里有“基于物理的”的程度问题。原则上,我们想尽可能地使物理基础成为现实。现在PBR提出了很好的主张。


但是,在实际开发中会遇到很多折衷点,可能是物理模型不足或计算过多。


这时需要none-physically-based,建议您在尽可能高的级别执行hack,调整变量以保持基本原子部分的“physically based”。“与phase function一样,底层是HG function,高水位是指定为艺术的函数。


visibility项




这就是照明信息的中间被遮挡的情况,与直接照明有点不同。因为是scattering的过程,所以整体上是光线进入的每个阶段的可见性情况的重叠。




实际计算中实现的是ray margin中间每个阶段可见性情况的重叠。


其中可见性是围绕两个影响较大的案例:terrain和cloud计算的。


Terrain使用ray marching构建shadowmap信息。


在云中,可以使用独立阴影贴图通过encode shadow map信息获取非常柔和的阴影信息,ESM包含在刺客的信条文章中。


lighting项




环境光部分:


远处的ray ma ching部分sky ambient将天空扫描存储在精度较低的paraboloid贴图中


附近的frustum voxel虚拟化部分,sky light light probe lighting*AO




直接从Local light部分读取light cluster volume。




froxel


Froxel也是技术创造的名词:frustum voxel;




它还存储低精度场景体积信息,然后scattering这也是用于低频信息渲染的voxel的形式。


《荒野大镖客2》存储了三条信息:


阴影


材料


Lighting(将前两者结合计算)




阴影体积块,不是阴影算法,而是阴影体积块,是阴影和云阴影;存储“阴影卷”(shadow volume)信息,如。


中间使用了临时筛选来处理稳定的问题。




我带来了材质卷、各种材质信息、风力交互等(提醒我们电报风力在卷上)。


还有一个临时过滤器。


ray marching




有些读者可能不熟悉雷·马奇。ray marching特别常用于体积类渲染,考虑到一些计算硬件和数据的限制,在某些情况下,使用ray trace很难找到交点,例如在本地反射中找到深度缓冲器的交点。然后用步进找到交点。这个方法是射线裕度;此处步骤的选择是应用ray marching时需要特别考虑的事项。




回到《荒野大镖客2》,ray marr ching的步骤战略选择也相当辛苦:


请考虑场景深度、ground plane和cloud dome


另外,云的厚度信息也要仔细考虑


即便如此,更薄的云也很容易跳过。


ray marching优化


从最终性能开始




您可以知道ray标记是占据了性能的很大一部分,还是优化后的结果。


优化基于两个大策略:低解析度。也就是说,以低分辨率计算ray March,然后通过多帧重建。


这部分很好,我们再打开吧。




这里,雷马什的起点是在普鲁克正端点偏移蓝色噪声(可以理解为更频繁的噪声)。


半分辨率大小,然后除以4帧计算。


ray march reconstruct




由于它由四个帧组成,因此每个帧只能使用一个ray March 2x2像素,其馀三个可以从history buffer导入。


与临床有很多相关的做法。在TAA中相当常见。


1,3x3像素颜色AABB clamp的使用方法


2、大深度破裂的地方,不考虑临床像素


3、把更多的射线放在深深断裂的地方


在这里,准确地确定深度差异仍然是一项艰巨的任务,需要做的是从6x6(2x2 ray,3x3 neighbouhood,全部6x6)像素到深度的最小/最大;是正确地认识。


尝试1,uniform分布




在Frame2中,您可以看到min/max是错误的。这会引起误判。


尝试2,checker board方式


能处理的案件要好得多:




但是在这种情况下还不行:




简而言之,局部分布战略总是不可复盖的情况,或者需要引进总体信息。


尝试3:checker board+depth neighborhood analysis


首先接收3x3tile(每个tile为2x2像素)的depth min/max,然后使用每个tile与其馀8个点之间的8个比率,如果其馀8个是min,则使用max depth的点。


up scaling






上缩放这里是4taps抖动。深度是连续的“平均”(average),如果不连续,则最近导入


效率




长雷马歇尔部分是最消费的。




scene integration


第三部分,集成,即计算良好的照明等,与场景集成。




这里是整合的完整示意图。下一步你可以看一个步骤。


sky scattering


Sky scattering算法有三个特征:预计算机化散热:


考虑了Earth shadow


逐帧实时更新


在32x16x32的LUT中存档




[sample sky scatter的深度信息]


在示例sky scattering消息中,ray标记不是所有步骤。否则更加准确,但成本太高。


最终,根据depth信息,根据depth一次sample。




[可见性信息]


这将分离可见性信息(类似于shadow)信息。


放在一起的效果:




光照组成


把前面列出的东西放在这里:


Frustum volume lookup


雷·马奇结果


Sky scattering/transmittance


sky irradiance probe




地图中用作sky irraidance探测的32x32上的3rd order spherical harmonitors探测贴图,每个探测复盖范围(256mx256m)。


总结


Ppt本身的摘要如下:


Volumetric效应是“一等公民”


这是一个单一的、基于物理学支持多种材质的scattering/transimitance系统


近距离是frustum align的基于卷的技术


远处是雷·马奇·基德的技术


个人阅读摘要:除了第一个高点之外,还有几点令人印象深刻


许多渲染技术可以如此熟练灵活地使用,非常有力量


能够在这样复杂的系统中生活是非常有力量的


开发的本来面貌


一系列笔记大概是读过技术文章以来最多的。笔记部分基本上是大家看完原文后一般能记住的部分。实际上原文所涉及的内容是更杂的,然后背后还有更多的探索和尝试。因为没有写出篇幅的原因。


读书的时候完全不能像一些论文。尤其是项目少,理论和演示所向往的内容可以简单地抽象和概括,并且可以“一言以蔽之”。


像《荒野大镖客2》这样的项目是一个妥协和适应性混合在一起、复杂性极高的研发问题。


实际上,宏观视野是?是的;坚实的理论?是的;坚实的工程?是的;足够的耐心?是的;灵活的灵活性?是的;


当我个人分享与《天涯明月刀》 《无限法则》相关的技术时,PPT还写了两个笑话:“强调”、“易于聆听”。


事实上,在项目开发中,这是一个复杂而复杂的过程,但由于使用PPT会让观众听到云雾,因此最终结果仍然是“一言以蔽之”。


《荒野大镖客2》,共享者也很有耐心,能够列举所有方面,包括在雷马清最佳化的几个失败案例。


资料来源:腾讯游戏机


版权保护: 本文由 迷途卡盟 原创,转载请保留链接: http://www.mitukam.com/info/11030.html

'); })(); '); })();