共计 5328 个字符,预计需要花费 14 分钟才能阅读完成。
随同着 Games 103 的推出,十分欣慰地看到越来越多的学生群体和沉闷在前沿的业内人士开始器重“基于物理的计算机动画”技术在游戏开发中的利用,开发者也不再局限于通过序列帧或者 Flowmap 的形式去模仿流体景象,而是基于实在的流体力学还原其静止法则。另一方面体积渲染,无论是云,还是雾,做为游戏美术添彩的重要一笔,亦或是彰显技术实力的重要载体,也越来越高频地呈现在大家视线中。计划优良,成果上乘,运行高效,编辑器敌对的体积解决方案是任何一款古代游戏引擎中十分重要的组成部分。当然,对于游戏开发者而言,咱们时刻面临着“可交互速率运行”的考验。这间接导致了简直每一个落地的体积渲染或者流体模仿计划都有其必须做出的割舍与就义,也都有其善于应答的情景和无意躲避的难题。然而,尽管曾经有一些剖析“体积渲染”或“流体模仿”的文章,但大多唯此一篇,不足针对不同计划的纵向深刻与横向比照;或受限于特定引擎平台,不足底层通用性实践的零碎阐述。事实是,截止到 SIGGRAPH 2022,咱们仍旧没有找到一套适应于任意场景需要的体积云雾计划【仅限游戏畛域】。而实时背景下将“体积渲染”与“流体模仿”联合起来,仍旧是一个十分小众的话题。至于体积的焚烧过程与爆炸模仿依然是影视“一家合唱”。但无论如何,实时、体积、流体三个词融在一起都是令人无比神往的,因为很多时候并不是我的项目须要推动了技术提高,而是技术提高带来了新的玩法与新的艺术表现形式。
鉴于此,笔者决定保护一个专栏用于系统性的剖析以后与潜在的“体积流体”计划,它们中的一些惊艳于 SIGGRAPH 与 GDC,并在游戏开发史上留下了浓墨重彩的一笔,另外一些尽管小众,但切入点与思考方向十分有价值。如果读者之前有接触过这些工作,就会意识到这是一个波及数据的生成,存储与转换,算法的设计与优化,视觉表白与内容治理,以及引擎和工具链开发的宏大内容,当咱们站在产品项目管理周期的视角去思考,会发现大家最常常探讨的 3D 噪声纹理与 Ray marching 其实只是整个零碎的一小部分。除了传统的伎俩,随同着机器学习 MLP 对数据、信号的解构与重建的钻研,利用神经网络压缩数据,减速拜访与碰撞检测的尝试也逐步受到了工程界与学术界的器重,这仿佛为解决一些传统窘境提供了可能。除了已被落地证实的持重计划,这些潜在的钻研价值也会被纳入探讨范畴。
在流体计划层面,咱们可能更着重探讨欧拉视角,或以 Stable Fluid 为代表的半拉格朗日办法,以及 MLS-MPM 等混合办法。这全然是因为咱们须要面对的是云、雾、烟、火焰这类的介质,而非液体。更为简单的多相流问题,仿佛在游戏中利用的可能性不大,但如果有工夫,追加这部分的钻研也是十分让人兴奋的。一旦咱们将视角放开到影视畛域,对物理法则的还原将变得更加刻薄,虚拟世界也更加实在!
作者 Angelou.lv:技术美术
当初国内某头部游戏厂商做 TA,主攻图形渲染与物理模仿。
目录
1|实在云景象的钻研
2|《Horizon Zero Dawn》的体积云景实现
3|《西部禁域》中的体积云渲染
4|Unreal 中的体积云景实现剖析
本篇转载自《游戏中的体积流体技术》的第 1 节。
鉴于平台编辑限度,以下色彩信息无奈体现,欢送有趣味的小伙伴致原文浏览。
文中会对一些名词进行色彩标注:绿色是计划中比拟重要的专有术语,蓝色是维基百科上能够检索到的术语,橙色示意目录。
注:蓝色文字且加下划线示意加了超链接。
一、云族谱
1.1 云属
依照国内气象组织的分类 [1],云一共有 10 个属:
云的 10 个属
每属均有本人的简称和察看特色,这 10 个云属依照高度散布如下:
云层散布(全称)
云层散布(简称)
上图内容大抵是云的品种由低到高别离为【低云族】“积云(Cumulus),积雨云(Cumulonimbus),层云(Stratus),层积云(Stratocumulus)”;【中云族】“高积云(Altocumulus),高层云(Altostratus),雨层云(Nimostrartus)”;【高云族】“卷云(Cirrus),卷积云(Cirrocumulus),卷层云(Cirrostratus)”。
大多数云都仅存在于它们的层面内,但通常界线比拟含糊。比方高层云通常属于中间层,但它的顶部往往可延长至更高的层面,而雨层云尽管位于中层云最高层但也可延长至另外两个层面,积云和积雨云通常在低层,但积雨云的垂直范畴又很大。
云层的大略散布范畴在 600~8000 米,而渲染上影响云的视觉体现次要有“形态,构造,灰度,透光水平”这四个次要因素。
每个层面的近似高度 & 每个层面中呈现的属
1.2 云种
依据云的形态和其内部结构,大多数的云属可被细分为云种,如毛状云(Ci),钩状云(Ci),密云(Ci)都是卷云,但形态又有不同:
又如堡状云(Ac),絮状云(Ac),层状云(Ac)都属于高积云:
再如扁平云(Cu),中云(Cu),浓云(Cu)都属于积云:
1.3 云类
除了依照形态与内部结构分,也能够依照云的另外两种重要属性——灰度与透光水平去分,被称为不同的云类:
另外除了“形态,构造,灰度,透光水平”这四个次要特色,云还有附加特色与附属性,前者是指附着在云上或者局部主体合并的特色,后者则侧重于随同云主体呈现在左近的小云团,它们被称为从属云。云是在一直变动的,母云会演化出不同的衍生云,随着主体逐步变动,母云本来的特色可能齐全隐没不见,此时的云被称为“转化云”。
除了天然演变,人类流动也会影响上空的云变换,比方核电站冷却塔,大坝上空,飞机航线上,这些非凡因素产生的云被别称为“非凡”:
二、低云族
2.1 积云(Cu)
积云是间隔地表最近的,因而也是密度最大的,依照第一局部云的四个次要个性的维度去剖析:积云具备最清晰的轮廓,上局部相似花椰菜或山丘,底部则绝对较平,这些云被阳光照耀局部多为红色,底部绝对较暗,这能够用 Beer-Lambert 定律解释。典型的状态如下:
图为:浓积云正在蒙特勒前面的瑞士阿尔卑斯山脉和瑞士日内瓦湖沿岸倒退
当然这是最典型的,这种厚重的积云往往呈现在沿海城市,因为更容易有水蒸气升腾,它们被细分为一个云种——浓积云(Cu con)。对于浓积云来说顶部通常以”塔“的模式垂直倒退,塔太高被风吹过期会瓦解,从而造成丰盛的衍生云,浓积云会产生诸多模式的降水:降雨,降雪,极其天气下还会产生冰雹。
图为:西班牙巴塞罗那 Vallvidrera
但积云不肯定会产生降水,在内陆地区,水蒸发量会少很多,这个时候它们的密度绝对较低,垂直范畴变窄,导致看起来绝对扁平,这是积云属的一个非凡云种——淡积云或扁平云:
图为:淡积云
随着含水量逐步升高,积云变得越来越重,越来越厚。逐渐变为中积云(Cu med):中积云也具备一系列清晰的轮廓,云底绝对较暗,云层只体现出适当的垂直倒退,顶部个别有“小突起”或者“云芽”,也没有降水。
图为:德国爱尔福特地区上空的中积云
但中积云有肯定水平会倒退为浓积云。另外还有一种积云种叫“碎积云(Cu fra)”:云底同样是程度的,变动十分迅速,垂直范畴很小,外观扁平:
图为:蒙古赛音山达的碎积云
2.2 积雨云(Cb)
积雨云一个十分典型的特色是:有相当大的垂直范畴,出现高塔或平地状,且其上部至多有一部分通常是润滑平缓的,而在下部通常则较暗且毛糙,整体通常为“砧状”,具备显著的纤维状构造。
图为:西班牙昆卡的积雨云
2.3 层云(St)
图:留神左下角山峦间的云
层云仿佛没什么显著的视觉特色,状态上绝对平均,色彩为灰色,透过云看太阳时会产生清晰的轮廓,在诸多的层云种里最显著的是“波状层云(St un)”:一层层的鳞片状,每层云片具备波浪状构造。
图为:德国巴特克罗伊茨纳赫县的波状层云
2.4 层积云(Sc)
图:貌似有些图文不符
图为:澳大利亚,维多利亚州,布罗德梅多斯
层积云灰色偏白一些,卷状或大型圆形物质以延长的片状或层状排列。
三、中云族
3.1 高积云(Ac)
高积云个别成絮状,有时呈纤维状,通常带有暗影。上图与下图别离展现了层状,絮状高积云两个云种。
图为:日本,京都,右京区,嵯峨天龍寺造路町
另外一类非凡的高积云种——“卷滚高积云(Ac vol)”,这是一种“较长,程度,拆散,管状”的云团,因为看起来像绕程度轴迟缓滚动,所以被称为“卷滚高积云”。
还有一类高积云种比拟非凡,因为它们形态上呈荚状或杏仁状,修长且有明确的轮廓,构造上像多层云片严密叠加在一起,层与层之间有显著的暗影,被称为“荚状高积云”。
图为:英国,西约克郡,沃夫河谷山脉背风面上空造成的荚状高积云
堡状高积云是指由独特底部相接的云元素垂直回升的积云状云堡,具备如下特点:
- 仿佛是依照线型排列
- 让云呈现出锯齿状(城堡城垛)外观
- 其高度有时候比宽度要大
- 从侧面看云时尤其显著
图为:大不列颠及北爱尔兰联合王国德文郡埃克塞特的堡状高积云
3.2 高层云(As)
高层云的典型特色是全副或局部笼罩天空,云的状态自身而言个别为片状,构造较为平均且有十分薄的局部,高层云不会产生光晕。这种云属因为外观与内部结构十分统一,所以没有非凡的云种。
3.3 雨层云(Ns)
色彩上雨层云个别为彩色,偶然为灰色,云层始终十分厚。
四、高云族
4.1 卷云(Ci)
卷云有非常明显的结构特征——红色细腻的蜿蜒丝线状并排在一起造成窄带,厚度上十分的轻薄。
图为:大不列颠及北爱尔兰联合王国伯克郡凑近雷丁的 Stratfield Mortimer
卷云属有很多的云种,例如毛卷云(Ci fib),钩状卷云(Ci unc),密卷云(Ci spi),堡状卷云(Ci cas),絮状卷云(Ci flo):
图为:澳大利亚,维多利亚,莫迪亚勒克的毛卷云
钩状卷云形态像逗号,最初以钩子或簇绒的模式停留在顶部:
密卷云是块状的,单一块内散布较为密集,面向太阳的方向为灰色,通常在积雨云的上部造成。
图为:泽西岛圣布雷拉德的密卷云
对于密度较大的卷云,从独特云底生成圆形和纤维状的堡状云或云团,有时具备圆孔状外观,或带有小圆塔或齿状物,整体是红色的,没有底部暗影。这种卷云被称为“堡状卷云”。
图为:西班牙马德里
4.2 卷积云(Cc)
卷积云的形态与构造也十分好识别,它们看起来是一片轻薄,涣散的,由有数颗粒或波纹式小型元素组成的集合体。
卷积云也分为很多云种,包含:“成层卷积云(Cc str),荚状卷积云(Cc len),堡状卷积云(Cc cas),絮状卷积云(Cc flo)”。
成层卷积云绝对较大的片或层模式的卷积云,有时存在断层。
图为:澳大利亚,维多利亚州,阿斯彭代尔花园的成层卷积云
荚状卷积云形态为荚状或杏仁形的卷积云片,通常较为修长且有清晰的轮廓,大多十分润滑,色彩很白。
图为:西班牙瓦伦西亚塞拉的荚状卷积云
在卷积云里,其中一些元素以小型堡状的模式垂直倒退,从独特的程度底部升起,造成堡状卷积云。当从高于地平线 30°以上的角度观测时,这些堡状云的表观宽度始终小于 1°。堡状云因该高度的不稳定性而倒退。
图为:德国巴特克罗伊茨纳赫县
十分小的积云状的云簇,其下部或多或少是不规则的。当从高于地平线 30°以上的角度观测时,每个云簇的表观宽度始终小于 1°。絮状云因该高度的不稳定性而倒退。絮状卷积云有时是由堡状卷积云倒退而来:
4.3 卷层云(Cs)
通明、红色的、纤维状(头发状)或润滑外观的云巾,全副或局部笼罩天空,常常产生光晕景象。个别可细分为“毛卷层云(Cs fib),雾状卷层云(Cs neb)”。
五、地形与气象对云的影响剖析
地形气候因素影响了云的生成,状态,这些互相关联的机理在构建巨大天气零碎,特地是谋求物理的天气变换时尤为重要。Andrew Schneider 在 SIG 2015 与 2017 中给出了他们的解决方案,介绍了地形气候,工夫以及剧情体现如何影响云景的生成与调度,咱们会在下一节进行介绍。
总结性的法则是,当气流穿过山谷,丘陵或山脊时会受到阻碍影响而被迫抬升——“地形抬升”,至于抬升的气流是否能造成云还与空气稳定性,水汽含量与温度散布无关,白天温度较高空气也会升腾,如果含水量较高且空气绝对稳固,则升腾的水汽会在低空冷凝造成云。因而云的造成受地形抬升与热抬升的独特影响。
常见的地形云的云属是积云 [中积云,碎积云,淡积云,特地显著的浓积云个别不好间接通过算法实现],层云和高积云,因而这三类云也是重点模仿的。
Reference:
[1] 国内气象组织对云的分类 : https://cloudatlas.wmo.int/zh-hans/principles-of-cloud-classi…
[2] Jack Miller 对云和天气现场的延时摄影作品《海风》:https://vimeo.com/user44638407
以上就是《游戏中的体积流体技术》的第 1 节,此篇文章比拟适宜对体积渲染与流体计划的实现有须要的引擎、TA、对相干内容感兴趣的学生以及其余畛域的开发人员与教育工作者。
读完全篇后你会取得:
1、零碎的体渲染常识,游戏畛域可用的流体动力学实现;
2、PC 端与挪动端的体积云、雾实现;成果与性能的把控,各类优化伎俩与挪动端平替计划;
3、硬件常识,图形剖析工具的应用,引擎渲染管线的定制;
4、学科穿插的机器学习理论知识与在游戏引擎中进行机器学习训练的办法。