做为一个横版无缝加载的游戏, 线性关卡无疑会做得非常长.

像UE4的ExponentialHeightFog就是一个全局生效的Actor, 我们无法针对每个区域放置不同参数的ExponentialHeightFog, 这对于关卡美术来说是一个不可接受的事实. 所以我们参考PostProcessVolume, 实现了ExponentialHeightFogVolume和AtmosphericFogVolume, 可以在不同区域之间进行无缝插值过渡:

知乎视频​www.zhihu.com

对于距离雾, 也同样实现了分段颜色的距离雾, 比较容易调节远景氛围:

知乎视频​www.zhihu.com

PostProcessMaterial的Fog有个坑, 就是如果全局PPV没有这个Material的话, 插值时候的的默认值是材质的默认值, 当时美术一直奇怪为什么插值过程中会出现红色的雾...

当然中间也参考和评估过商城里的一个基于ColorCurve的后期距离雾实现

https://www.unrealengine.com/marketplace/en-US/slug/fog-gradients​www.unrealengine.com

知乎视频​www.zhihu.com

虽然这个做法可以实现更加丰富的颜色过渡, 但是调节起来并不方便, 所以最终美术还是选了自己做的那个几个参数的简单实现.

除了全局雾效, 还有一些区域性的氛围雾, 典型的是这种一束光打下来的效果:

使用体积雾很容易实现, 但是yaoyao想要那中雾里看起来是动态的效果, 类似Fornite这种:

于是参考Ryan Brucks大神的文章

https://shaderbits.com/blog/ue4-volumetric-fog-techniques​shaderbits.com

实现出来了类似的体积雾材质:

知乎视频​www.zhihu.com

体积雾配合光照能够大大提升场景氛围的品质, 我觉得是场景间接光之外最重要的一个特性了, 我们甚至可以拿它来做云:

知乎视频​www.zhihu.com

后来在做优化时发现特效美术为了模拟烟雾缭绕的效果, 在场景中平铺了大片的粒子:

然后Overdraw就变成了这样:

于是想到了使用体积雾材质来进行优化:

反正体积雾是一直开着的, 不用白不用, 使用一些VolumeMaterial进行局部的点缀性价比很高, 还没有OverDraw的困扰:

知乎视频​www.zhihu.com

另外还尝试过一些流体雾的模拟, 只是性能和效果没有调出令人满意的结果, 所以很遗憾没有用进游戏里. 不过这里也发两个心目中做得比较好的效果来做结尾吧, 后面有机会还会继续尝试的.

一个是Fortnite中用于Trailer的流体雾模拟:

知乎视频​www.zhihu.com

尝试过RayMarching的实现, 对于游戏来说还是开销太高.

另一个觉得不错的是NvFlex在UE4中的应用, 可交互雾具备足够的视觉冲击力, 最近在《黑神话:悟空》中看到的云的模拟应该是类似的做法:

https://www.youtube.com/watch?v=0ZkcZjyXq0w​www.youtube.com

最后来个题外话: 为什么游戏的雾那么浓? 还是不是因为穷, 美术资源细节有限, 需要靠雾来遮遮丑...

unity2018设置雾在哪_《Babel》项目技术整理:雾相关推荐

  1. ng2-admin项目技术整理

    一.项目中使用的技术和第三方库 lodash github地址: https://github.com/lodash/lodash ngx-translate github地址: https://gi ...

  2. unity2018设置雾在哪_unity如何创建雾的效果

    [www.520z-2.com - 观后感作文] 篇一:<[深圳龙图教育]如何在unity 3d中做出水效.雾效.音效> [深圳龙图教育]如何在unity 3d中做出水效.雾效.音效 开启 ...

  3. 旅行者 问题_门槛项目:没有旅行者回到他的原籍城市。

    旅行者 问题 Sohini Mukherjee| MFA| Spring 2020 Sohini Mukherjee | 外交部| 2020年Spring Artivive app to see th ...

  4. 基于Kaldi下babel项目的语音关键词检索(KWS)

    前言 一般来说,一个kws系统包括两个部分:lvcsr 模块解码检索集合并且产生相应的网格,一个kws模块生成网格索引并从索引中查找关键词. 在Kaldi中,关键词识别(KWS)和大词汇量连续识别(L ...

  5. 现代软件工程_团队项目_阿尔法阶段_前端知识共享_2017.11.21

    现代软件工程_团队项目_阿尔法阶段_前端知识分享 更加舒适浏览格式 http://blog.csdn.net/bowean HTML基础(一) 本文参考了[http://www.w3school.co ...

  6. frame中src怎么设置成一个变量_自动格式化打印变量HMLog介绍

    作者 | mao2020 来源 | 掘金,点击阅读原文查看作者更多文章 前言 在我初学iOS的时候,经常需要NSLog打印用于调试,有时候还需要打印多个变量: NSLog(@"xxxx fr ...

  7. jsp项目放入宝塔windows环境_商业裂变,之项目技术实战(第八节:宝塔面板介绍)...

    一.宝塔简介: 宝塔面板是一款服务器管理软件,支持windows和linux系统,可以通过Web端轻松管理服务器,提升运维效率.例如:创建管理网站.FTP.数据库,拥有可视化文件管理器,可视化软件管理 ...

  8. python基础-PyCharm设置作者信息模板_修改解释器_设置软件UTF-8编码

    python基础-PyCharm设置作者信息模板_修改解释器_设置软件UTF-8编码 一.PyCharm 设置作者信息模板 1.File---Settings---在搜索框中搜索:File and C ...

  9. 软件项目技术路线图_创建基本的项目路线图

    软件项目技术路线图 Continuing from my previous article, at this checkpoint, I have two things with me: 上一篇文章的 ...

最新文章

  1. 利用Event和MapFile进程共享信息
  2. easyUi创建临时Dialog
  3. 工信部副部长刘利华:推动5G全球统一标准 加强国际合作
  4. 2013年最值得我们学习的网页作品示例【系列六】
  5. ABP入门系列(4)——创建应用服务
  6. html图片分四面切割播,CSS3切割轮播图
  7. 【Python】表白程序
  8. 机器学习- 吴恩达Andrew Ng Week11 知识总结 Photo OCR
  9. php laravel 中文手册,Laravel 5.6 中文离线手册文档(兼容5.5)(PDF版)
  10. 列联表相关测量--c相关系数
  11. SEM竞价推广如何提升流量精准度,增加展现、排名、线索量?
  12. 计算机七进制乘法,编程达人
  13. c++/c/java数据结构--队列
  14. 电商数据监测全过程——采集、清洗、分析
  15. Ubuntu16.04笔记本 安装R RStudio
  16. spring实战学习(四)AOP及其实现方式
  17. 【51单片机】计时器/计数器中断
  18. vue2使用wangEditor
  19. iphone4s 降级6.1.3
  20. java计算机毕业设计基于Ssm学生信息管理系统源码+数据库+系统+lw文档+mybatis+运行部署

热门文章

  1. 高等数学二python实现导数与微分
  2. 只用一行代码,就导入Python所有库
  3. Windows Azure VM Role (2) 创建VHDVHD
  4. 学习日记2、easyui treeGrid属性及时间
  5. 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
  6. DisJSet:Wireless Network(POJ 2236)
  7. 1.4信息系统基础-软件构件技术知识
  8. [NDK 佳佳的魔法药水]
  9. Err:ClassNotFoundException: org.apache.tomcat.util.log.SystemLogHandler
  10. 《 Linux的安装和入门 》