unity中实现毛玻璃模糊效果 | 您所在的位置:网站首页 › unity设置全屏 › unity中实现毛玻璃模糊效果 |
全屏毛玻璃模糊效果
原理
全屏毛玻璃模糊效果的原理是使用RenderTexture来捕捉当前屏幕的画面,然后使用模糊算法对RenderTexture图像进行模糊处理,最后将处理后的图像显示在屏幕上。这种方法可以实现全屏的毛玻璃效果,但是需要较高的性能。 部分对象毛玻璃模糊的原理是使用两个摄像机,一个摄像机只渲染需要模糊的物体,另一个摄像机渲染其他物体和背景。然后使用RenderTexture来捕捉第二个摄像机渲染的画面,对RenderTexture图像进行模糊处理,最后将处理后的图像作为材质贴在第一个摄像机渲染的物体上。这种方法可以实现部分物体的毛玻璃效果,但是需要较高的性能。 完整代码// 创建一个RenderTexture作为中间渲染目标private RenderTexture rt;// 获取需要模糊的物体private GameObject targetObj;// 获取需要模糊的摄像机private Camera blurCamera;void Start(){ // 创建RenderTexture,分辨率可以根据需要调整 rt = new RenderTexture(Screen.width, Screen.height, 0); // 获取需要模糊的物体 targetObj = GameObject.Find("TargetObject"); // 获取需要模糊的摄像机 blurCamera = GameObject.Find("BlurCamera").GetComponent(); // 将RenderTexture作为BlurCamera的渲染目标 blurCamera.targetTexture = rt; // 将渲染后的图像作为材质贴在TargetObject上 targetObj.GetComponent().material.SetTexture("_BlurTex", rt);}void OnRenderImage(RenderTexture src, RenderTexture dest){ // 对RenderTexture图像进行模糊处理 Graphics.Blit(src, rt, blurMaterial); // 将处理后的图像显示在屏幕上 Graphics.Blit(rt, dest);} 部份对象毛玻璃模糊, 主体不模糊 原理部分对象毛玻璃模糊的原理是使用两个摄像机,一个摄像机只渲染需要模糊的物体,另一个摄像机渲染其他物体和背景。然后使用RenderTexture来捕捉第二个摄像机渲染的画面,对RenderTexture图像进行模糊处理,最后将处理后的图像作为材质贴在第一个摄像机渲染的物体上。这种方法可以实现部分物体的毛玻璃效果,但是需要较高的性能。 完整代码// 创建一个RenderTexture作为中间渲染目标private RenderTexture rt;// 获取需要模糊的物体private GameObject targetObj;// 获取需要模糊的摄像机private Camera blurCamera;void Start(){ // 创建RenderTexture,分辨率可以根据需要调整 rt = new RenderTexture(Screen.width, Screen.height, 0); // 获取需要模糊的物体 targetObj = GameObject.Find("TargetObject"); // 获取需要模糊的摄像机 blurCamera = GameObject.Find("BlurCamera").GetComponent(); // 将RenderTexture作为BlurCamera的渲染目标 blurCamera.targetTexture = rt; // 将渲染后的图像作为材质贴在TargetObject上 targetObj.GetComponent().material.SetTexture("_BlurTex", rt);}void OnRenderImage(RenderTexture src, RenderTexture dest){ // 对RenderTexture图像进行模糊处理 Graphics.Blit(src, rt, blurMaterial); // 将处理后的图像显示在屏幕上 Graphics.Blit(rt, dest);} 利用URP特性实现 |
CopyRight 2018-2019 实验室设备网 版权所有 |