不能使用Shader
时间: 2023-10-09 19:06:10 浏览: 169
Unity-HDRP-ShaderGraph-透明Shader-旋转动画
5星 · 资源好评率100%
如果不能使用 Shader ,可以使用 Unity 中提供的 RenderTexture 和 BlurOptimized 脚本来实现图片模糊。具体步骤如下:
1. 创建一个新的 RenderTexture,用于存储模糊后的图像。
```csharp
public RenderTexture blurTexture;
```
2. 在需要模糊的地方,使用 BlurOptimized 脚本对原始图像进行模糊处理,并将处理结果保存到 RenderTexture 中。
```csharp
public BlurOptimized blurOptimized;
void Update()
{
blurOptimized.blurIterations = 3;
blurOptimized.blurSize = 0.5f;
blurOptimized.downsample = 1;
blurOptimized.blurShader = Shader.Find("Hidden/FastBlur");
blurOptimized.blurMaterial.SetTexture("_MainTex", sourceTexture);
Graphics.Blit(sourceTexture, blurTexture, blurOptimized.blurMaterial);
}
```
其中,`sourceTexture` 是需要模糊的原始图像。`blurIterations` 和 `blurSize` 控制模糊程度, `downsample` 控制降采样程度,`blurShader` 控制使用哪个 Shader 进行模糊处理。在这里我们使用了 Unity 自带的 FastBlur Shader。
完整代码示例:
```csharp
public RenderTexture blurTexture;
public BlurOptimized blurOptimized;
void Update()
{
blurOptimized.blurIterations = 3;
blurOptimized.blurSize = 0.5f;
blurOptimized.downsample = 1;
blurOptimized.blurShader = Shader.Find("Hidden/FastBlur");
blurOptimized.blurMaterial.SetTexture("_MainTex", sourceTexture);
Graphics.Blit(sourceTexture, blurTexture, blurOptimized.blurMaterial);
}
```
注意,BlurOptimized 脚本需要绑定到一个 GameObject 上,以便在 Inspector 窗口中设置参数。
阅读全文