Untiy使用Shader实现镜头模糊效果
前言
最近公司接了一个光学实验的项目,因为开发需求较模糊,我只能做一些简单的开发功能。于是在网上查相关资料,使用shader实现了一个简单的镜头模糊效果,在这里记录下,便于以后开发使用。
步骤
1.创建一个shader,用以实现镜头的模糊效果,实现代码如下所示:
Shader "CameraFilterPack/Blur_Movie" {
Properties
{
_MainTex ("Base (RGB)", 2D) = "white" {
}
_TimeX ("Time", Range(0.0, 1.0)) = 1.0
_Distortion ("_Distortion", Range(0.0, 1.0)) = 0.3
_ScreenResolution ("_ScreenResolution", Vector) = (0.,0.,0.,0.)
_Radius ("_Radius", Range(0.0, 1000.0)) = 700.0
_Factor ("_Factor", Range(0.0, 1000.0)) = 200.0
}
SubShader
{
Pass
{
ZTest Always
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
#pragma target 3.0
#pragma glsl
#include "UnityCG.cginc"
uniform sampler2D _MainTex;
uniform float _TimeX;
uniform float _Distortion;
uniform float4 _ScreenResolution;
uniform float _Radius;
uniform float _Factor;
struct appdata_t
{
float4 vertex : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;