这篇博客介绍了禅意花园项目中的水的效果实现方法。


禅意花园

禅意花园是Epic Games的官方项目,现在已经开放在Market Place中自由下载。这个项目中使用了特别的方法来实现水池,效果如下:

水面表现

整体的水池效果分成水面与池底两块,针对于水面来说使用了Cubemap + noise,原本不是十分特别的地方,但是针对于Cubemap反射这一块有个黑魔法,值得一看:

这个函数写的很复杂而且不好阅读,应该是美术写的。但是如果把它翻译成代码其实不难理解——它处理的是以场景设计师在关卡中放置的一个点为反射点,通过这个反射点、水面像素和相机位置的计算来获得一个反射向量。这个反射向量在对应的CubeMap中采样,从而获得水面的反射效果,效果如下:

目前这个材质的实现似乎还有点小问题,可以进行修复。这里不方便将修复后的材质放出,读者可以自己进行实现。

总体来讲这个想法很新颖,可以在仅仅使用Emissive Color与Opacity通道的情况下来实现很好的水面的效果,尤其在反射效果上的效果很不错。

因此,这个水面效果可以在移动平台上兼顾性能和效果。

水底

禅意花园中水池的水底效果的脑洞也开的很大。在正常情况下想要表现水底的效果通常是使用Refraction通道。但是Refraction通道在某些设备上表现的不太正常,性能也是一个必须考虑的问题。

因此水底的模型是让水底本身使用World Position Offset通道来对顶点进行位移操作,这种操作主动让池底的网格模型进行浮动,这样一来也就会比较好适配大部分的设备。

这种做法是很新颖的,另一方面效果也很不错。

后记

看到了Epic Games提出的一些解决问题的方法,感觉到提出这些方法的人似乎已经到了另一种境界。《孙子兵法》说“以正合,以奇胜。”大部分人似乎花了太多的功夫在“正”上,例如不停地去钻底层,硬碰硬的提高效率和表现。但是是否能够在“奇”这一块来解决实际的问题,这种“奇”的能力又该怎么去培养?是值得我们深思的……

Unreal Engine 4 —— 禅意花园项目中的水池相关推荐

  1. 读《CSS禅意花园》中学习到的

    昨晚看完了网上名气很大的<CSS禅意花园>,其实整本书的内容都只是从web设计人员的角度出发,这本书对于网页制作人员而言,可以这么形容它的价值:饭后小甜点.     这是一本小品式的书.一 ...

  2. 在《css禅意花园》中所学到的

    浮动和定位的区别: 对元素使用浮动,那么这个元素依然存在于文档流中,周围的元素也会感受到他的存在: 定位的话,能够实现精准定位于某一个位置上,定位的元素将不占据空间,就像消失了一样 被定位过的容器(无 ...

  3. 旋转根组件 Learn Unreal Engine (with C++)

    旋转根组件 Learn Unreal Engine (with C++) 在UE4中,根组件是无法旋转定位的,只能够缩放,在一些情况下,我们有旋转根组件的需求 SpaceshipBattle · fa ...

  4. Unreal Engine(虚幻引擎)渲染 – 正确使用方法

    我们已经讨论过 Unreal Engine(虚幻引擎)中可用的很多神奇工具,包括最近抢先体验的 Unreal Engine 5.多亏了 Epic,世界各地的开发人员和团队都可以轻松进行游戏开发.Epi ...

  5. Unreal Engine 4 —— 冷却UI的制作

    这篇博客介绍了如何使用Unreal Engine 4的材质编辑器中制作通常游戏中的技能冷却的UI. 该UI材质通常用于直接蒙在对应的技能图标之上,接收一个浮点参数Percentage,用于表现其冷却情 ...

  6. 在UE4中创建CG动画 How to create a movie in Unreal Engine 4 using Metahuman

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:1.55 GB |时长:1h 16m 你会学到什么 如何在 ...

  7. Unreal Engine 4 中的 UI 优化技巧

    http://mp.weixin.qq.com/s/bybEHM9tF-jBPxxqXfrPOQ## 2017-05-09 虚幻引擎 Unreal Open Day 2017 活动上 Epic Gam ...

  8. Unreal Engine 4添加自定义Settings到项目设置

    http://blog.csdn.net/shangguanwaner/article/details/50300349 Unreal Engine 4添加自定义Settings到项目设置 在开发的过 ...

  9. EPIC《禅意花园》项目开放下载

    EPIC<禅意花园>项目开放下载 Chance Ivey 在 July 26, 2016 | 新闻社区 Share on Facebook Share on Twitter Share o ...

最新文章

  1. DeepMind科学家:AI对战《星际争霸》胜算几何?
  2. plus flink add.php,不想要dede5.7织梦链只要修改模板里几行代码
  3. SpringCloud Consul自定义服务注册
  4. recaptcha_与reCAPTCHA的Spring集成
  5. a href='?out=login'是什么意思
  6. Docker快速搭建TeamSpeak多人语音聊天服务器
  7. python 全中文匹配字符_Python教程:进程和线程amp;正则表达式
  8. LuaForUnity2:Lua基本数据类型与符号
  9. 百度云搜索引擎森林战士_纯干货:网盘搜索引擎整理
  10. PHP TCPDF导出订单合同并且每页加一个印章
  11. PPT画四分之一圆或扇形
  12. idea项目名称重命名
  13. Android中导航栏之溢出菜单OverflowMenu
  14. Elasticsearch Ingest-Attachment
  15. 【python】Algorithm
  16. 客快物流大数据项目(六十七):客户主题
  17. 上云安全指南:横亘在企业数字化面前的风险
  18. 前端使用谷歌打开钉钉的H5页面开发地址
  19. 中国PaaS市场群雄逐鹿,究竟谁能笑傲江湖?
  20. 多款可视化表单、流程开源设计器

热门文章

  1. 基于Gpio的Linux字符型驱动设计--…
  2. 模式也能开盲盒,”盲返“模式带动电商平台共享经济
  3. win10 系统中 网易 MuMu 模拟器调试钉钉微应用
  4. char字符对应的ASCII码值
  5. 噗浪(Plurk)创办人 -- 云惟彬:低薪陷阱 廉价的薪水 等待的成本
  6. 微博数据库设计 _转
  7. 薄荷英语10月26(心理学百科)
  8. 【春秋云境】 CVE-2022-24663复现
  9. emoji昵称php,php过滤微信用户昵称emoji表情方法汇总 - 旗云号
  10. Oracle数据库wm_concat()函数的使用方法