首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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特性实现

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230309A04FD200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券