U3D镜像模糊的shader脚本
时间: 2023-11-15 18:06:02 浏览: 38
以下是一个简单的U3D镜像模糊的shader脚本:
```c#
Shader "Custom/MirrorBlur" {
Properties {
_MainTex ("Texture", 2D) = "white" {}
_BlurSize ("Blur Size", Range(0.0, 2.0)) = 0.5
_MirrorAxis ("Mirror Axis", Range(0, 1)) = 1
}
SubShader {
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct v2f {
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
float _BlurSize;
int _MirrorAxis;
v2f vert (appdata v) {
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
fixed4 frag (v2f i) : SV_Target {
float2 uv = i.uv;
if (_MirrorAxis == 0)
uv.y = 1.0 - uv.y;
else
uv.x = 1.0 - uv.x;
fixed4 col = tex2D(_MainTex, uv);
float2 blurDir = float2(0, _BlurSize);
float4 blurCol = tex2D(_MainTex, uv);
blurCol += tex2D(_MainTex, uv + blurDir) * 0.25;
blurCol += tex2D(_MainTex, uv - blurDir) * 0.25;
blurDir = float2(_BlurSize, 0);
blurCol += tex2D(_MainTex, uv + blurDir) * 0.25;
blurCol += tex2D(_MainTex, uv - blurDir) * 0.25;
return blurCol / 2 + col / 2;
}
ENDCG
}
}
FallBack "Diffuse"
}
```
这个shader使用了一个名为_MainTex的2D纹理作为输入,并接受一个名为_BlurSize的模糊尺寸参数和一个名为_MirrorAxis的镜像轴参数。
在顶点着色器中,仅仅是将顶点位置变换到剪裁空间,并将纹理坐标传递给片段着色器。
在片段着色器中,首先根据_MirrorAxis参数计算出镜像的纹理坐标,然后进行高斯模糊处理。最后,将模糊后的颜色和原始颜色混合在一起,以产生镜像模糊的效果。
请注意,这个shader仅仅是一个简单的示例,可能需要进一步的优化和调整才能达到所需的效果。
相关推荐
![unitypackage](https://img-home.csdnimg.cn/images/20210720083646.png)
![shader](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)