Unity海面效果——1、原理和元素构成分析

Unity引擎制作海面效果

  大家好,我是阿赵。

  某天晚上临睡觉前,突然很想做点什么,于是我做了个海面的效果。发现也用到了不少知识,所以就拿出来分享一下。不过这个效果的构成元素有点多,所以只能拆分成多篇文章来说明。

这一篇是一个总体的介绍,分析一下一个海面的效果用了多少元素去构成。

一、 环境的搭建

  海面如果只是单纯的一个面片,效果会很单调,为了给海面有一个丰富的环境效果,我给它找了一个海岛的模型,然后找了一个天空盒,把它们放在一起:

  小岛和天空盒只是一个陪衬,真正要处理的,还是中间的那个大面片

二、 菲涅尔水面反射

  菲涅尔水是一个经常听到的名称,具体的意义是什么呢?

  现实中水有反射和折射的现象。从不同的角度看水面,会看到不同的反射率,比如图中的水体,靠近的可以看到水底的砂石,远处的只能看到水面反射。

三、 水面的基本颜色和波纹

  如果是清澈的水,按道理是没有颜色的。但我们看海水还是会呈现出颜色,主要的颜色来源是天空的蓝色的反射、海底的砂石颜色、海中的杂质的颜色。然后海水不是一片纯色的,因为海里面一般会有波浪,所以会有波浪的白色纹理。

四、 发线和高光

五、 深度相关的效果

  这里我加了海平线的效果,还有岸边的水沫的效果,这些都是通过深度来计算的

六、 反射和折射

  在我的这个例子里面,我是没有做反射和折射的。反射一般是用CubeMap模拟,比如我比较常用的Matcap算法。折射一般是需要用到GrabTexture,这个东西的消耗有点大。

七、 后处理

  为了让整体更有氛围,加了一个bloom后处理效果,这样太阳和海岸线看起来就好看一些

相关推荐
寂寞的船17 小时前
【Unity知识速递】第5期 Unity 6.2 深度解析:AI Assistant 登场,World Space UI 与 Sentis 全面升级
人工智能·ui·unity
寂寞的船19 小时前
【Unity知识速递】第4期 MCP for Unity:用 AI 自然语言控制编辑器
人工智能·unity·编辑器
淡海水20 小时前
09-04-内存-Unity原生对象生命周期
unity·c#·游戏引擎·gc
寂寞的船1 天前
【Unity知识速递】第6期 URP性能优化完全指南:从内存到GPU的三维调优
unity·性能优化·编辑器
寂寞的船1 天前
【Unity Bug挑战】第10期 SerializeReference 内存泄漏之谜
unity·c#·游戏引擎·bug
tealcwu3 天前
【Unity基础】为什么游戏需要物理按键映射?从 Unity Input Manager 到跨引擎输入设计
java·游戏·unity
tealcwu4 天前
【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南
3d·unity·游戏引擎
淡海水4 天前
10-01-互操作-C#与C++边界的内存管理
unity·c#·游戏引擎·.netcore·gc
小小数媒成员4 天前
UGUI原理(一)
开发语言·游戏·unity·游戏引擎
暴走约伯4 天前
【VFX工具链源码拆解 04】拯救丢失的绑定:Timeline 一键克隆与层级相对路径重映射算法
unity·c#·游戏引擎·硬件工程