草庐IT

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

焦散是模仿光透过水底的一个投影景象有两个版本,改版最后效果如下这里是简单的基于物体的焦散,基于水体的焦散思路是水面物体的shader中拿到ColorBuffer,然后用水体的屏幕空间坐标取采集ColorBuffer,然后用这个基于物体的焦散对采集到的颜色进行处理,这是不够的,因为这样做会使得焦散效果映射到水下就是一个平面一样,没有水下物体的纵深立体感。解决办法是还要获取深度图,再根据深度图转世界坐标,原理不多说,玩的不能再烂了,忘记就参考Unity学习shader笔记[三十四]深度图采样和重建世界坐标的四种方式然后根据世界坐标的xz值来进行焦散颜色的纹理映射,但是这种方法会有弊端,就是高低落差