Unity Shader入门精要学习笔记——15章 15.2 水波效果(一)

写在前面

两年前第一次阅读的时候就没有做什么笔记,阅读效果不太好。而现在回看大串大串的文字会很乏力。有时侯可能只需要看几个高亮关键字就能回想起来整个流程。便想通过博文来记忆各元素,刨析、理解原理,再试图举一反三扩展。如有认为有错误的地方,热烈欢迎指出!

目标效果

  1. 水不断流动的效果
  2. 水面波动效果(反射、折射)
  3. 菲涅尔效应

准备

  1. 立方体纹理(立方体纹理)作为环境纹理,模拟反射颜色
  2. GrabPass获取一张当前屏幕的渲染纹理,模拟折射颜色
  3. 法线纹理(由噪声纹理生成)
  4. 水面波纹材质纹理(模拟基础颜色)

过程

水不断流动的效果

为了模拟两层交叉的水面效果,用x,y两个偏移速度乘以时间(_Time),来对法线纹理进行采样

反射颜色

采样法线纹理,得到切线空间法线向量。再通过乘以世界坐标下的切线坐标轴向量形成的矩阵,得到世界坐标下的法线向量。
与世界坐标下的视线方向,得到反射向量。用来采样环境纹理,得到反射颜色。

折射颜色

用切线空间下的法线来进行偏移,再乘以屏幕空间下的z(即深度值)来采样渲

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值