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<Camera>();

// 将RenderTexture作为BlurCamera的渲染目标
blurCamera.targetTexture = rt;

// 将渲染后的图像作为材质贴在TargetObject上
targetObj.GetComponent<Renderer>().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<Camera>();

// 将RenderTexture作为BlurCamera的渲染目标
blurCamera.targetTexture = rt;

// 将渲染后的图像作为材质贴在TargetObject上
targetObj.GetComponent<Renderer>().material.SetTexture("_BlurTex", rt);
}

void OnRenderImage(RenderTexture src, RenderTexture dest)
{
// 对RenderTexture图像进行模糊处理
Graphics.Blit(src, rt, blurMaterial);

// 将处理后的图像显示在屏幕上
Graphics.Blit(rt, dest);
}


利用URP特性实现

6db35c17efd6b9e7d8968df425aad0a8.jpeg

66dc3f0aa2becd52cc3f29dbe222b03a.jpeg

1d623be5098f100bd4e05b7d60f28495.jpeg

e42e8222a8c49c7467e08fd9ca341b4d.jpeg

642157c4d11f914d38bc7ef6b87861f1.jpeg

猜你喜欢

转载自blog.csdn.net/shguxudong11/article/details/129422391