一.简介
所谓模糊,也就是不清楚,清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了,极端一点的情况,当一张图片所有的像素之间颜色都差不多时,那么这张图片也就是一个纯色的图片了。模糊操作就是让像素间的颜色差距变小,比如A点是红色,A点周围的点是绿色,模糊就像用一把刷子,将A点和周围的点的颜色混合起来,变成最终的颜色。而怎样混合,按照不同的权值进行混合,就可以达到不同的效果了。比如均值模糊,以及著名的高斯模糊。
影响模糊程度的重要因素是模糊半径, 模糊半径越大,模糊程度越大,模糊半径越小,模糊程度越小。那么,模糊半径是什么?所谓模糊半径,也就是我们采样的一个范围,比如我们模糊的半径很小,只是把像素和它周围的一圈定点混合,那么模糊的程度就很小,而如果我们加大模糊半径,极端情况是每个顶点都取了周围所有点,也就是整张图的像素平均值,那么这张图的颜色就会偏向一种颜色。
二.均值模糊
Shader "Custom/SimpleBlurEffect"
{
Properties
{
_MainTex("Base (RGB)", 2D) = "white" {}
}
//通过CGINCLUDE我们可以预定义一些下面在Pass中用到的struct以及函数,
//这样在pass中只需要设置渲染状态以及调用函数,shader更加简洁明了
CGINCLUDE
//cg文件,包含了unity内置的一些cg函数
#include "UnityCG.cginc"
//blur结构体,从blur的vert函数传递到frag函数的参数
struct v2f_blur
{
float4 pos : SV_POSITION; //顶点位置
float2 uv : TEXCOORD0; //纹理坐标
float2 uv1 : TEXCOORD1; //周围纹理1
float2 uv2 : TEXCOORD2; //周围纹理2
float2 uv3 : TEXCOORD3; //周围纹理3
float2 uv4 : TEXCOORD4; //周围纹理4
};
//用到的变量
sampler2D _MainTex;
//XX_TexelSize,XX纹理的像素相关大小width,he
1177




被折叠的 条评论
为什么被折叠?



