刻画游戏氛围的“大气”,该如何实现? | GAMES104实录 - 现代游戏引擎:从入门到实践

本文介绍了游戏引擎中创建逼真天空和大气效果的技术,重点讲解了大气散射理论,包括瑞利散射和米氏散射。通过解释散射函数、通透度和散射项,阐述了体积渲染方程在模拟大气效果中的应用。文章还讨论了单次散射和多次散射在游戏引擎中的重要性,以及它们如何影响视觉效果。
摘要由CSDN通过智能技术生成

本期为GAMES104《现代游戏引擎:从入门到实践》视频公开课文字实录第21期。本课程由GAMES(图形学与混合现实研讨会)发起,游戏引擎技术专家王希携手游戏引擎一线开发者共同研发。

课程共计22个课时,将介绍现代游戏引擎所涉及的系统架构,技术点,引擎系统相关的知识。为配合学习实践,课程组在 GitHub 上开源了小引擎Piccolo,上线1个月即获得了2900+star, 累计下载量已超过20000+。

以下内容为公开课视频转文字版本,为阅读通顺,有删减

01「大气散射理论」

天空和云层对于营造一款游戏的氛围起到了很大的作用,比如下图中的《地平线:西之绝境》和《艾尔登法环》中的游戏画面。艺术家们特别喜欢利用天空和大气来刻画游戏氛围,以影响玩家的情绪。这当中存在着两个元素,一个是天空,一个是云层。天空和云不能混为一谈,因为天空是一个抽象的球,在游戏中,我们可以认为天空的边界位于大气层上限处,而大气层外属于太空。但云层离地面很近,大约只有几百米到上千米。当云层移动时,我们会感觉到云层巨大的体量感。因此,天空和云需要使用截然不同的表达方法。

还有一个效果是雾效,我们会在后处理效果中介绍雾效,因为雾效不只是天空中的大气现象的一种表达,也是一种非常重要的由艺术家控制的效果。对于游戏引擎开发者来说,天空和大气效果的实现十分麻烦。

我们先介绍大气效果的实现。下图是《刺客信条》中的截屏,画面十分壮丽。传统意义上的大气会随着日出日落而发生变化,当太阳位于不同角度时,大气会有各种各样的颜色变化。

 

当我们无法求解大气效果时,我们可以采用拟合方法进行处理。这类似于我们前面介绍材质时提到的,不管实际效果的具体物理意义是什么,我们可以不必知道。而是直接通过观察,使用一个模型进行拟合,Blinn-Phong就是这样的一个拟合公式。使用拟合方法实现大气效果有点类似于天空大气效果中的Blinn-Phong方法,我们不用关注底层的具体原理,直接套用公式即可。

拟合方法需要两个参数,一个参数是天顶角(Zenith),即太阳光与观察者天顶方向所形成的夹角。天顶角的取值范围为

。还有一个参数是观察高度和太阳的夹角,即下图公式中的。有了这两个参数之后,我们可以计算出一个解析解,从而得到天空中某点处的颜色。

图中给出了一个“Ground Truth”(编者注:Ground Truth一般指基准真相,即有已有的、可靠的测量方式得到的测量值,用来作为基准),即使用真正的摄影测量方法,记录了天空中的颜色。最后我们就得到了游戏中的结果,这种方法简单粗暴,而且效果不错。

对于一款中低品质的手游,这种方法也可以接受。这种方法的好处就是非常简单,但也存在一定的缺陷。首先,该方法只能实现观察者位于地表处的效果,而无法实现玩家从太空中飞到大气中的大气效果。其次,该方法的参数都是固定的,无法改变。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值