原创文章如需转载请注明:转载自风宇冲Unity3D教程学院

 
                Blur
Blur模糊其实理解了以后非常简单。核心原理就是 1个点的颜色 并不用该点的颜色,而是用该点周围所有点的均值 (1)确定取点范围, 例如周围3个像素 或者周围10个像素 (2)确定各点权重,这也是高斯模糊的由来,主要颜色分配的比重为正态分布,即高斯分布。
例子1:最简单的模糊 (1)新场景,plane上面放一张贴图 (2)plane上的shader如下
  1. Shader "Custom/ObjectBlur" {
  2. Properties {
  3. _MainTex ("Base (RGB)", 2D) = "white" {}
  4. }
  5. SubShader
  6. {
  7. Tags{"Queue"="Transparent"}
  8. pass
  9. {
  10. CGPROGRAM
  11. #pragma vertex vert
  12. #pragma fragment frag
  13. #include "UnityCG.cginc"
  14. sampler2D _MainTex;
  15. float4 _MainTex_ST;
  16. float uvOffset;
  17. struct v2f {
  18. float4  pos : SV_POSITION;
  19. float2  uv : TEXCOORD0;
  20. } ;
  21. v2f vert (appdata_base v)
  22. {
  23. v2f o;
  24. o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
  25. o.uv =  TRANSFORM_TEX(v.texcoord,_MainTex);
  26. return o;
  27. }
  28. float4 frag (v2f i) : COLOR
  29. {
  30. float4 s1 = tex2D(_MainTex,i.uv + float2(uvOffset,0.00));
  31. float4 s2 = tex2D(_MainTex,i.uv + float2(-uvOffset,0.00));
  32. float4 s3 = tex2D(_MainTex,i.uv + float2(0.00,uvOffset));
  33. float4 s4 = tex2D(_MainTex,i.uv + float2(0.00,-uvOffset));
  34. float4 texCol = tex2D(_MainTex,i.uv);
  35. float4 outp;
  36. float pct=0.2;
  37. outp = texCol* (1- pct*4) + s1* pct + s2* pct+ s3* pct + s4* pct;
  38. return outp;
  39. }
  40. ENDCG
  41. }
  42. }
  43. }

以及BlurManager.cs脚本,如下

  1. using UnityEngine;
  2. using System.Collections;
  3. public class BlurManager : MonoBehaviour {
  4. private float length =3f;
  5. private float showTime = -100;
  6. private float hideTime = -100;
  7. void Update () {
  8. if(showTime >0)
  9. {
  10. showTime -= Time.deltaTime;
  11. Shader.SetGlobalFloat("uvOffset", (showTime/length) * 0.005f);
  12. }
  13. if(hideTime >0)
  14. {
  15. hideTime -= Time.deltaTime;
  16. Shader.SetGlobalFloat("uvOffset", (1- hideTime/length) * 0.005f);
  17. }
  18. }
  19. void OnGUI()
  20. {
  21. if(GUI.Button(new Rect(0,0,100,50),"Show"))
  22. {
  23. showTime = length;
  24. }
  25. if(GUI.Button(new Rect(100,0,100,50),"Hide"))
  26. {
  27. hideTime = length;
  28. }
  29. }
  30. }

运行后,点击show按钮,图会从模糊变清晰,点击hide按钮会从清晰变模糊。 这基本是最简单的模糊了,取本点 和其上下左右的4个偏移点。各点权重均为0.2。uv偏移从0至0.005 效果如下图还不错。
原图
模糊后的效果
参考文章

(转)【风宇冲】Unity3D教程宝典之Blur的更多相关文章

  1. (转)【风宇冲】Unity3D教程宝典之AssetBundles:第二讲

    原创文章如需转载请注明:转载自风宇冲Unity3D教程学院                             AssetBundles第二讲:AssetBundles与脚本 所有Unity的As ...

  2. (转)【风宇冲】Unity3D教程宝典之AssetBundles:第一讲

    自:http://blog.sina.com.cn/s/blog_471132920101gz8z.html 原创文章如需转载请注明:转载自风宇冲Unity3D教程学院                 ...

  3. Unity3D教程宝典之Web服务器篇:(第三讲)PHP的Hello World

    转载自风宇冲Unity3D教程学院 引言:PHP是比较简单的编程语言,即使没接触过的也可以现学现用.PHP教程文档PHP100视频教程                           Unity接 ...

  4. Unity3D教程宝典之Web服务器篇:(第二讲)从服务器下载图片

    转载自风宇冲Unity3D教程学院                                    从Web服务器下载图片 上一讲风宇冲介绍了wamp服务器及安装.这回介绍如何从服务器下载内容至 ...

  5. Unity3D教程宝典之Web服务器篇:(第一讲)服务器的架设

    转载自风宇冲Unity3D教程学院 引言:本文主要介绍WAMP服务器的架设. 第一部分WAMP介绍;第二部分WAMP安装及使用.                        第一部分WAMP介绍 什 ...

  6. Unity3D教程宝典之Shader篇

    教程目录 基础讲:Shader学习方法基础讲:基础知识特别讲:常见问题解答特别讲:CG函数 第一讲: Shader总篇第二讲: Fixed Function Shader 第三讲: Vertex&am ...

  7. U3D教程宝典之两步实现超实用的XML存档

    两步实现超实用的XML存档 本套存档的优点:易使用,跨平台,防作弊(内容加密 + 防拷贝) 脚本下载地址 使用方法非常简单:把GameDataManager和XmlSaver两个脚本添加至工程后(1) ...

  8. Unity3D教程:无缝地形场景切换的解决方法

    http://www.unitymanual.com/6718.html 当我们开发一个大型项目的时候-会遇到这样的问题(地形场景的切换)这个只是字面意思-并不是重场景1的100  100 100坐标 ...

  9. unity3d教程运行物理机制

    首先,我们将把Hooke定律写Euler方法结合在一起找到新坐标.加速和速度. Hooke定律是F=kx,这里的F是指由水流产生的力(记住,我们将把水体表面模拟为水流),k是指水流的常量.x则是位移. ...

随机推荐

  1. LINUX IO 图解

    http://blog.chinaunix.net/uid/29075379/cid-183430-list-1.html

  2. In-Place upgrade to Team Foundation Server (TFS) 2015 from TFS 2013Team Foundation Server TFS TFS 2015 TFS upgrade TFS with Sharepoint

    This upgrade document gives detailed step by step procedure for the In-Place upgrade from TFS 2013 t ...

  3. MongoDB 安装 Windows XP

    〇.  一个提供MonogoDB丰富资料的中文网站 http://www.cnblogs.com/hoojo/archive/2012/02/17/2355384.html 一. http://www ...

  4. 在ASP.NET MVC实现购物车,尝试一种不同于平常的购物车显示方式

    通常,我们看到的购物车是这样的: 虽然这种购物车显示方式被广泛运用,但我个人觉得不够直观.如果换成这样呢? 本篇的源码放在了:https://github.com/darrenji/ShoppingC ...

  5. delphi 实现文件上传下载

    unit UpDownFile; interface uses Windows, Classes, Idhttp, URLMon, IdMultipartFormData; const UpUrl = ...

  6. Arcgis for JavascriptAPI 常用接口

    转自原文arcgis for javascriptAPI常用接口 var map, navToolbar, editToolbar, tileLayer, toolbar; //var mapBase ...

  7. sqlite 截取字符串函数substr

    函数:substr(string string,num start,num length) 用法: string为字符串: start为起始位置:字符串的第一个字符的位置为1,不是从0开始计算 len ...

  8. 在arcgis使用python脚本进行字段计算时是如何解决中文问题的

    来自:https://www.jb51.net/article/73561.htm 一.引言 在arcgis打开一个图层的属性表,可以对属性表的某个字段进行计算,但是在平常一般都是使用arcgis提供 ...

  9. python笔记27-lxml.etree解析html

    前言 之前分享过一个python爬虫beautifulsoup框架可以解析html页面,最近看到lxml框架的语法更简洁,学过xpath定位的,可以立马上手. 使用环境: python 3.6 lxm ...

  10. IP视频通信中的"丢包恢复技术”(LPR)

    转自:http://blog.csdn.net/blade2001/article/details/9094709 在IP视频通话中,即使是在丢包率很小的情况下也会对使用效果造成较为明显的影响.正是由 ...