Unity海面效果——3、漫反射颜色和水波

Unity引擎制作海面效果


  大家好,我是阿赵。
  之前介绍了菲涅尔水的反射区域区分做法,上一次最后是做到了这个效果,接下来做一下漫反射的颜色和水波。
在这里插入图片描述

一、 漫反射颜色

  关于漫反射的光照模型,之前分享过,一般比较常用的是Lambert和HalfLambert。
在这里插入图片描述

  这里我采用的是HalfLambert,这样海水会稍微亮一点。其实在没有用法线贴图的情况下,水面又是一片平整的情况下,其实这个漫反射的光照模型是基本上看不出有什么效果的。不过无所谓,因为后面几篇会用到法线和高光,所以这里也先写了。
在这里插入图片描述

  加上一个baseCol作为颜色调节,可以控制水面的基本颜色
在这里插入图片描述

  可以根据需要调节各种基本色,这个其实很有用,因为每天不同的时间点,由于阳光和天空的变化,水面的颜色也会跟着变化
在这里插入图片描述

二、 水波动画

在这里插入图片描述

  为了做一个水波的效果,我从Unity的assetStore里面下载了一个免费的水资源贴图。
  接下来,用一个简单的UV动画,做水波纹的流动效果:
  先拿到UV,然后给他一个平铺次数

在这里插入图片描述

  然后很自然的用UV乘以x轴和y轴的速度,再乘以时间,做出自动滚动的UV动画
在这里插入图片描述

  中间有一个噪声图的处理
在这里插入图片描述

  这是因为,如果单纯的UV移动,会感觉波纹是直来直往不会拐弯的,加上了噪声图之后,波纹会产生一定的扭曲效果,比较真实一些。
接下来就是对水纹贴图采样了
在这里插入图片描述

  现在水面上出现了波纹,也会沿着一个方向流动了。
在这里插入图片描述

  不过,这个效果还是有点单调,于是对波纹的采样进行一下修改,给波纹进行2次采样,两次的UV的移动速度是不一样的:
在这里插入图片描述

在这里插入图片描述

  这样就有了2层的纹理流动效果,不过由于现在是用add加起来的,所以叠加的部分会曝光:
在这里插入图片描述

  所以给两个方向的采样都乘以0.5,再加起来
在这里插入图片描述

  现在水面就有了2个方向的波纹流动,而且两个方向的波纹是可以分别调节速度的
在这里插入图片描述

  不过由于我们之前做了漫反射颜色,所以其实不用乘以0.5再相加,把漫反射的水面颜色和水波纹的颜色相乘,也能得到正确的效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值