Unity学习shader笔记[一百]简单焦散Caustic效果

焦散是模仿光透过水底的一个投影景象

有两个版本,改版最后效果如下
请添加图片描述
请添加图片描述
这里是简单的基于物体的焦散,基于水体的焦散思路是水面物体的shader中拿到ColorBuffer,然后用水体的屏幕空间坐标取采集ColorBuffer,然后用这个基于物体的焦散对采集到的颜色进行处理,这是不够的,因为这样做会使得焦散效果映射到水下就是一个平面一样,没有水下物体的纵深立体感。

解决办法是还要获取深度图,再根据深度图转世界坐标,原理不多说,玩的不能再烂了,忘记就参考Unity学习shader笔记[三十四]深度图采样和重建世界坐标的四种方式

然后根据世界坐标的xz值来进行焦散颜色的纹理映射,但是这种方法会有弊端,就是高低落差大的地方的焦散效果会比较拉长,比较扯,这时参考三向贴图的方式再进行一次处理,参考Unity学习shader笔记[六十]三向贴图 ,但是三向贴图需要片源的法线信息,那么这时就还需要后处理的法线贴图,再用屏幕坐标去采样, 关于如何获得,参考

猜你喜欢

转载自blog.csdn.net/weixin_43149049/article/details/126423846