【Unity3d Shader】毛玻璃效果
毛玻璃也叫磨砂玻璃:是用物理或化学方法处理过的一种表面粗糙不平整的半透明玻璃。
毛玻璃成像原理:毛玻璃表面不平整,光线通过毛玻璃被反射后向四面八方射出去(因为毛玻璃表面不是光滑的平面,使光产生了漫反射),折射到视网膜上已经是不完整的像,于是就看不清楚(很模糊)玻璃背后的东西了。
游戏开发中的毛玻璃效果展示与实现原理:
然而正常在游戏引擎或者PhotoShop中的半透明面片,只会叠加颜色并不能产生模糊的效果。那么如何实现毛玻璃效果呢?
实现如上效果,的原理如下。
1.先渲染除毛玻璃外的物体(不透明和半透明),然后做高斯模糊,将结果保存到RenderTexture。
2.再渲染毛玻璃,算出屏幕坐标,去高斯模糊过的RenderTexture上面采样。将玻璃贴图和高斯模糊过的贴图做混合处理。
3.最后渲染压在毛玻璃上面的贴纸。
下面我们以UnityURP管线实现下如上的效果
首先实现一个BlurGlassRenderPass在渲染半透明物体后把颜色缓冲区中的图像做高斯模糊,并存保存在一个RT上。
管线配置如下图: