Unity Shader-后处理:简单均值模糊

Unity ShaderLab】屏幕后处理:模糊 内容 简介 径向模糊 均值模糊 高斯模糊 1. 简介 模糊是一种常见的图像处理手段,也是一种常见的后处理效果,用于降低图片细节层次。对于清晰的图像来说,像素点保存的颜色信息足够准确,图片也就能表现更多的细节。相反,要达到模糊的效果,自然就是将精准的颜色信息“舍弃”掉。 径向模糊 均值模糊 高斯模糊 鬼刀今天更新了吗 2. 径向模糊 ... 阅读详情

一.简介


今天来学习一下后处理中比较常用的一种效果,屏幕模糊效果。模糊效果,在图像处理中经常用到,Photoshop中也有类似的滤镜。我们在游戏中也会经常用到。因为屏幕模糊效果是一些高级后处理效果的基础,比如景深等效果都需要用屏幕模糊效果来实现,所以我们首先看一下屏幕模糊效果,然后通过屏幕模糊,进一步学习景深效果与运动模糊效果的实现。

所谓模糊,也就是不清楚,清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了,极端一点的情况,当一张图片所有的像素之间颜色都差不多时,那么这张图片也就是一个纯色的图片了。模糊操作就是让像素间的颜色差距变小,比如A点是红色,A点周围的点是绿色,模糊就像用一把刷子,将A点和周围的点的颜色混合起来,变成最终的颜色。而怎样混合,按照不同的权值进行混合,就可以达到不同的效果了。比如均值模糊,以及著名的高斯模糊。

影响模糊程度的重要因素是模糊半径, 模糊半径越大,模糊程度越大,模糊半径越小,模糊程度越小。那么,模糊半径是什么?所谓模糊半径,也就是我们采样的一个范围,比如我们模糊的半径很小,只是把像素和它周围的一圈定点混合,那么模糊的程度就很小,而如果我们加大模糊半径,极端情况是每个顶点都取了周围所有点,也就是整张图的像素平均值,那么这张图的颜色就会偏向一种颜色。

二.均值模糊


最简单的,我们看一下简单的模糊,直接用周围像素求和平均,我们混合的最终图像,在某一点的权重仅仅跟模糊半径有关。换句话说,比如模糊半径为1,那么,我们取一个像素点,以及他周围的一圈像素点,一共九个点,直接取平均,那么每个点的权重设置为1/9。这也就是所谓的均值模糊。我们看一下均值模糊的例子。
shader部分:
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
unity shader 语法高亮 代码补全 插件 vs 环境下的unity shader语法高亮,代码补全的插件,双击即安装成功,非常好用。各新版本均有支持 立即下载

相关推荐

unity3d 径向模糊效果shader

unity3d 径向模糊-运动模糊 模糊效果shader

Unity中C#向Shader传float数据的优化

今天在看一个案例的时候,看到了SetGlobalFloat(int nameID, float value)这个方法,所以拓展阅读的时候,才有了这篇文章。 参考:https://blog.csdn.net/ngrandmarch/article/details/46370557 unity中C#向Shader传递参数的方式有以下两种: 1、面向具体Material的SetFloat...

weixin_30235225的博客 1177

Unity3D UGUI特效之Image高斯模糊效果

这几天研究了下模糊特效,看了很多文章,其原理就是拿取图片或屏幕数据,然后将周围的元素和目标位置的颜色值进行一个融合计算,然后自己写了一个小小的测试程序。 这个模糊也可以分成两种,一个是自身模糊,一个是从屏幕上取值进行模糊。第一个用于一些小的列表展示,比如未解锁时,是模糊的。第二个是凸显弹框效果的,将背景都模糊掉,自己将这个稍微加强了些可以指定模糊一个位置。 针对移动平台,使用高斯模糊,其实效率不是很高,如果要很好的效果,那么速度卡;如果要速度快,那么效果达不到要求。但是还是在这里记录下,兴许以后能用上。 先说第一个,挂在Image下的模糊特效。 Shader Custom/FrontBlu

解决在VS中编写Unity Shader代码高亮显示、代码补全、自动缩进

此教程为安装VS编写Unity Shader工具插件安装教程 本人刚开始学习Unity Shader,发现得安装了VS上的插件才可以拥有一个比较好的写Shader代码的体验,所以把自己的方法分享出来,希望可以帮到个位 先点击扩展中的管理扩展 在联机右上角搜索栏中搜索Shader,然后下载ShaderLabVS 此插件有代码补全和高亮显示功能,但当我们换行的时候,新的一行没有自动缩进,我们需要再安装另一个插件 在搜索栏搜索SubLime,然后点击下载 两个插件下载完毕后我们点击关闭,然后在关闭VS窗口

weixin_50617270的博客 1万+

解决在VS Code中编写Unity Shader代码高亮显示、代码补全、自动缩进

在使用过程中个人感觉VS的代码高亮不是很合理,所以后面用了VS Code,本文就是对解决在VS Code中编写Unity Shader代码高亮显示、代码补全、自动缩进的教程。

weixin_50617270的博客 7910

Unity 毛玻璃效果(UGUI)—高斯模糊

因为Unity 提供了GrabPass,可以在Shader中很方便的拿到Panel下面的图像,即_GrabTexture。 Shader "Custom/SimpleGrabPassBlur" { Properties { _Color ("Main Color", Color) = (1,1,1,1) _BumpAmt ("Distortion", R

子弹头 2万+

UnityShader 全局传值无效

Unity使用C#向Shader传值。

YanisWu的博客 2007

Unity Shader】屏幕后处理3.0:均值模糊和高斯模糊

Unity中尝试了基于屏幕的均值模糊和高斯模糊效果。

qq_41835314的博客 3127

Unity Shader unity文档学习笔记(六):后处理均值模糊(类似毛玻璃效果)

所谓模糊,也就是不清楚,清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了,极端一点的情况,当一张图片所有的像素之间颜色都差不多时,那么这张图片也就是一个纯色的图片了。模糊操作就是让像素间的颜色差距变小,比如A点是红色,A点周围的点是绿色,模糊就像用一把刷子,将A点和周围的点的颜色混合起来,变成最终的颜色。而怎样混合,按照不同的权值进行混合,就可以达到不同...

qq_43204246的博客 396

unity-shader相关

title: unity-shader相关 categories: Unity3d tags: [unity, shader] date: 2017-09-12 10:05:18 comments: false unity shader 相关记录 相关资料 有很多酷炫shader效果的网站 - https://www.shadertoy.com/view/XllcR4 卡通渲染: ...

. 2894

Unity Shader Post Processing模糊方法

记录一下方便好用,均值模糊,高斯模糊,双重均值

weixin_46270110的博客 370

Unity屏幕后处理学习笔记

后处理学习笔记

鹿尘的学习笔记。 466

unity shader】用数字图像处理的知识写屏幕后处理效果(bloom、高斯模糊、反色、曝光、黑白图像、灰度图像)

用数字图像处理的知识写shader

weixin_43740653的博客 3529

Unity Shader入门练习】高斯模糊

0x00 序言 本文是《Unity Shader入门精要》读书笔记,最近接触到项目中用到了模糊处理,经过查阅资料,发觉模糊处理是屏幕后处理技术中的一种,就从屏幕后处理技术开始学习。[使用的Unity版本:5.6.1f1] 0x01 效果图 0x02 基本概念 卷积(convolution)操作指的是使用一个卷积核(kernal)对一张图像中的每个像素进行一系列操作。卷积核通常是一个四方

coffeecato的个人博客 1537
上一篇: CG标准函数
下一篇: Unity Shader-后处理:高斯模糊
puppet_master
puppet_master 领域专家: C/C++技术领域 领域专家: C/C++技术领域
博客等级 码龄12年 2692粉丝 161原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值