Unity Shader实现模糊效果

 更新时间:2021年08月08日 14:51:50   作者:小盖子  
这篇文章主要为大家详细介绍了Unity Shader实现模糊效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Unity Shader实现模糊效果的具体代码,供大家参考,具体内容如下

今天分享一个超简单实现模糊效果的方法,先上图:

核心代码就这句:

注意要在3.0以上的版本才能使用

在采样后做偏移采样再叠加,效果与下面的代码类似:

float4 frag(v2f o):SV_TARGET{
 fixed4 color = tex2D(_MainTex,o.uv);//,float2(_Scale,_Scale),float2(_Scale,_Scale)
 
 float2 uv1= o.uv +float2(_Scale,_Scale);
 fixed4 color2 = tex2D(_MainTex,uv1);

 float2 uv2= o.uv -float2(_Scale,_Scale);
 fixed4 color3 = tex2D(_MainTex,uv2);

 return (color+color2+color3)/3;
}

下面的完整代码:

Shader "Custom/TestShader40" {
 Properties{
  _MainTex("MainTex",2D)="White"{}
  _Scale("Scale",Range(0,0.1))=0
 }
 SubShader{
  Tags { "RenderType"="Opaque" }
  Pass{
   CGPROGRAM
    #pragma vertex vert
    #pragma fragment frag
    #pragma target 3.0
    #include "Lighting.cginc"

    sampler2D  _MainTex;
    float4 _MainTex_ST;
    float _Scale;

    struct a2v{
     float4 pos:POSITION;
     float4 uv:TEXCOORD0;
    };

    struct v2f{
     float4 wPos:SV_POSITION;
     float2 uv:TEXCOORD0;
    };

    v2f vert(a2v v){
     v2f o;
     o.wPos = UnityObjectToClipPos(v.pos);
     o.uv=TRANSFORM_TEX(v.uv,_MainTex);

     return o;
    }

    float4 frag(v2f o):SV_TARGET{
     fixed4 color = tex2D(_MainTex,o.uv,float2(_Scale,_Scale),float2(_Scale,_Scale));

     return color;
    }
   ENDCG
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#动态执行字符串(动态创建代码)的实例代码

    C#动态执行字符串(动态创建代码)的实例代码

    在编写C#程序的时候,有时我们需要动态生成一些代码并执行。然而C#不像JavaScript有一个Eval函数,可以动态的执行代码。所有这些功能都要我们自己去完成
    2013-03-03
  • Unity AssetBundle打包工具示例详解

    Unity AssetBundle打包工具示例详解

    这篇文章主要介绍了Unity AssetBundle打包工具,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • 采用C#代码动态设置文件权限

    采用C#代码动态设置文件权限

    在开发中,我们经常会使用IO操作,例如创建,删除文件等操作。在项目中这样的需求也较多,我们也会经常对这些操作进行编码,但是对文件的权限进行设置,这样的操作可能会手动操作,本文介绍一种采用代码动态对文件设置权限的操作。
    2016-12-12
  • C#中List<T>存放元素的工作机制

    C#中List<T>存放元素的工作机制

    这篇文章介绍了C#中List<T>存放元素的工作机制,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 讲解C#面相对象编程中的类与对象的特性与概念

    讲解C#面相对象编程中的类与对象的特性与概念

    这篇文章主要介绍了C#面相对象编程中的类与对象的特性与概念,OOP面向对象语言相对C语言这样面相过程的语言来说具有类和对象以及方法这样的特性,需要的朋友可以参考下
    2016-01-01
  • 根据灰度值填充字符-单文件单线程版

    根据灰度值填充字符-单文件单线程版

    本文介绍如何实现:类似于一个图片,处理后,根据不同的灰度值,填充不同的字符等相关功能,感兴趣的朋友可以了解下哦
    2013-01-01
  • Unity3D使用右键菜单打开工程

    Unity3D使用右键菜单打开工程

    这篇文章主要为大家详细介绍了Unity3D使用右键菜单打开工程的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 详解C#中通过委托来实现回调函数功能的方法

    详解C#中通过委托来实现回调函数功能的方法

    这篇文章主要介绍了C#中通过委托来实现回调函数功能的方法,文中举了一个典型的多线程回调程序实例,需要的朋友可以参考下
    2016-04-04
  • C#利用Openxml读取Excel数据实例

    C#利用Openxml读取Excel数据实例

    这篇文章主要介绍了C#利用Openxml读取Excel数据的方法,包括使用中的注意点分析及疑难探讨,需要的朋友可以参考下
    2014-09-09
  • C#命令模式用法实例

    C#命令模式用法实例

    这篇文章主要介绍了C#命令模式用法,以实例形式较为详细的分析了C#命令模式的功能、定义及使用技巧,需要的朋友可以参考下
    2015-07-07

最新评论