unity shader—高斯模糊效果

Unity Shader-后处理:高斯模糊 一.简介 上一篇文章学习了模糊的原理以及基本的模糊实现,对于清晰和模糊这个定义感觉还是比较说明问题,这里再贴出一下:“清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了”。鉴于这个定义,我们就可以通过代码来实现模糊的效果。上一篇Unity Shader-后处理:均值模糊中实现了一个基本的均值模糊,也就是将一个像素和其周围的像素取平均值从而进行 阅读详情

正常图:
这里写图片描述
高斯模糊效果图:
这里写图片描述

shader代码:

Shader "Custom/GaoSiMoHu"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
		_BlurSize("Blur size",Float)=1.0
	}
	SubShader
	{
		ZTest Always
		cull off
		ZWrite off

		CGINCLUDE//这个可以使其他pass块都可以使用,而不用在两个pass里都写,减少了写的次数
		sampler2D _MainTex;
		half4 _MainTex_TexelSize;
		float _BlurSize;
		struct v2f{
			float4 pos:SV_POSITION;
			half2 uv[5]:TEXCOORD0;
		};
		fixed4 fragBlur(v2f i):SV_Target{
			float weight[3]={
				0.4026,
				0.2442,
				0.0545
			};

			fixed3 sum = tex2D(_MainTex,i.uv[0]).rgb * weight[0];

			for(int it = 1; it < 3; it++){
				sum += tex2D(_MainTex,i.uv[it]).rgb * weight[it];
				sum += tex2D(_MainTex,i.uv[2 * it]).rgb * weight[it];
			}

			return fixed4(sum,1.0);
		}
		ENDCG

		Pass{
			NAME "GAUSSIAN_BLUR_VERTICAL"//这个pass的唯一名字,可以在其他地方调用,usepass + 名字
			CGPROGRAM

			#pragma vertex vertlurVertical
			#pragma fragment fragBlur
			#include "UnityCG.cginc"
			
			v2f vertlurVertical(appdata_img v){
				v2f o;
				o.pos = UnityObjectToClipPos(v.vertex);
				half2 uv = v.texcoord;
				o.uv[0]=uv;
				o.uv[1]=uv + float2(0.0,_MainTex_TexelSize.y * 1.0) * _BlurSize;
				o.uv[2]=uv - float2(0.0,_MainTex_TexelSize.y * 1.0) * _BlurSize;
				o.uv[3]=uv + float2(0.0,_MainTex_TexelSize.y * 2.0) * _BlurSize;
				o.uv[4]=uv - float2(0.0,_MainTex_TexelSize.y * 2.0) * _BlurSize;

				return o;
			}
			ENDCG
		}

		Pass{
			NAME "GAUSSIAN_BLUR_HORIZONTAL"
			CGPROGRAM
			#pragma vertex vertlurHorizontal
			#pragma fragment fragBlur
			#include "UnityCG.cginc"

			v2f vertlurHorizontal(appdata_img v){
				v2f o;
				o.pos = UnityObjectToClipPos(v.vertex);
				half2 uv = v.texcoord;
				o.uv[0]=uv;
				o.uv[1]=uv + float2(0.0,_MainTex_TexelSize.x * 1.0) * _BlurSize;
				o.uv[2]=uv - float2(0.0,_MainTex_TexelSize.x * 1.0) * _BlurSize;
				o.uv[3]=uv + float2(0.0,_MainTex_TexelSize.x * 2.0) * _BlurSize;
				o.uv[4]=uv - float2(0.0,_MainTex_TexelSize.x * 2.0) * _BlurSize;

				return o;
			}
			ENDCG
		}
	}
}

调节_BlurSize即可看到效果

Unity Shader Example 10 (高斯模糊) Shader: Shader "ImageEffect/Unlit/GaussianBlue" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} } CGINCLUDE #include "UnityCG.cginc" #pragma target 3.0 static const half curve 阅读详情

相关推荐

Unity动态高斯模糊效果Shader

Unity动态高斯模糊效果Shader

qq_63521922的博客 1739

高斯模糊

高斯模糊 高斯模糊(英语:Gaussian Blur),也叫高斯平滑 ,通常用它来减少图像噪声以及降低细节层次。 从数学的角度来看,图像的高斯模糊过程就是图像与正态分布做卷积。由于正态分布又叫作“高斯分布”,所以这项技术就叫作高斯模糊。 图像噪声是指存在于图像数据中的不必要的或多余的干扰信息。 既然知道了高斯模糊能减少图像噪声,那我们不妨动动手. 文章目录**高斯模糊****一、高斯模...

块垒博客 1万+

高斯模糊源码GaoSiMoHu.zip

一定要导入module,不能导入project 最简单的高斯模糊效果,毛玻璃效果,三行代码搞定:更多查看我博客:https://blog.youkuaiyun.com/xiayiye5/article/details/97396618

Androd开发之通过ComponentName和setComponent以及scheme打开外部应用 | 打开任意页面 | 打开指定页面

咱们老套路先看下效果图: 如果公司给你这个需求,让你们公司APP打开第三方APP进行别的操作,类似微信支付,你的APP打开微信的支付页面这个需求。咱们就可以用今天的ComponentName来实现这个需求。 方法一 步骤: 1.被打开的APP(高斯模糊APP)被打开的页面需要在AndroidManifest清单文件中配置允许外部应用调用,如下 <activity ...

xiayiye5的博客 4981

gaosimohu.rar_week8jv_基于opencv的高斯模糊的实现

实现图像的高斯模糊,opencv的环境为opencv3.0.0。 ps:opencv版本不向下兼容,注意使用之前调好环境

进程间通信的七种方法实战演示!值得收藏!

线程和进程间的通讯(Inter-Process Communication, IPC)是操作系统中的一个重要概念,用于实现不同进程或同一进程中的不同线程之间的数据交换和协调。以下是几个常见的进程间通信的方式:管道、消息队列、共享内存、信号、套接字、信号量、文件映射

十年饮冰,难凉热血,保持热爱,奔赴星海! 2816

Unity自定义后处理——模糊效果

继续介绍后处理的做法,这一期介绍的是模糊效果的做法。

阿赵的博客 3322

Java8动态生成SFunction:基于字段名的Lambda表达式实践

本文深入探讨了在Java8中如何基于字段名动态生成SFunction,以解决MyBatis Plus的LambdaQueryWrapper在动态查询场景下的局限性。通过核心原理LambdaMetafactory的解析和手把手的代码实现,展示了如何将字符串字段名转换为类型安全的Lambda表达式,从而实现真正动态、类型安全的查询条件构建与通用数据处理,显著提升代码的灵活性与安全性。

sss66的博客 953

【实现100个unity特效之17】在unity中使用shader和ShaderGraph分别实现模糊特定层,高斯模糊效果

【实现100个unity特效之17】在unity中使用shader和ShaderGraph分别实现模糊特定层,高斯模糊效果

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1585

告别命令行!用这个开源的Web版Kettle工具,5分钟搞定数据集成任务编排

本文介绍了一款开源的Web版Kettle工具,通过直观的拖拽界面大幅提升数据集成效率,告别复杂的命令行操作。该工具基于Kettle核心引擎,支持跨平台协作、轻量化访问和降低学习曲线,特别适合业务分析师快速上手。实测显示,使用该工具后任务配置错误率下降62%,协作效率提升40%。

weixin_30267785的博客 436

手把手教你低成本复刻大疆C板缓启动电路(附原理图与选型清单)

本文详细介绍了如何低成本复刻大疆C板缓启动电路,包括核心器件选型、电路搭建与调试实战、参数优化方法论及进阶改进思路。通过替代型号和优化设计,实现功能相近的缓启动电路,成本不到原方案的1/3,适合电子爱好者、在校学生和预算紧张的硬件工程师。

weixin_29197051的博客 397

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

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

qq_41835314的博客 3136

全网最详细 解决戴维南定理的详细推导

替代定理,戴维南定理详细证明

m0_52555753的博客 3万+

Unity中实现spine角色的模糊效果

接到需求,首先想到的写(bai du)个shader来实现。 网上搜到了很多个版本的模糊效果的shader,最开始用的一个版本用到了GrabPass,效果出来后发现在Android手机上角色会倒置。然后搜索GrabPass的替换方法,有用到Camera的,效果也不理想。 最终决定在Spine原有的Shader上修改。于是搜到没有使用GrabPass的模糊效果的Shader。 Unity Shader-后处理:高斯模糊_puppet_master的专栏-优快云博客_unity高斯模糊一.简介上一篇文章

cheng219101的专栏 3564

【AUCell打分】:评估一个基因集在单细胞转录组的每个细胞中特定的活性程度

AUCell使用曲线下面积来计算输入基因集的一个有意义的基因子集是否在每个细胞的表达基因中富集。AUC 分数在所有细胞中的分布允许探索特征的相对表达。由于评分方法是基于排名的,因此 AUCell 与基因表达单位和归一化程序无关。此外,由于细胞是单独评估的,因此可以很容易地应用于更大的数据集。

weixin_40695088的博客 1万+

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

a_zxswer的博客 191

unity 高斯模糊_2D Shader学习——模糊效果(二)

0.前言此效果并不是什么高级模糊效果,更不是高斯模糊,就是一个最基础的模糊效果,目的是为了让新手更容易理解模糊实现的原理。原图1.核心原理模糊的核心原理其实非常简单采样附近上下左右四个相邻像素的颜色,与当前像素颜色按比例混合公式如下: 最终像素 = (n * 某像素 + m *左 + m * 右 + m * 上 + m * 下) / (n + m)再说的通俗一点,就是一定比例的某像素本身加上一定比...

weixin_39556064的博客 761

用 CDS 作为 Referenced Data Source 开发 SAP Gateway OData 服务,一条更轻的 SEGW 路线

本文介绍了SAP Gateway项目中从传统手工建模到基于CDS View的现代化开发方式转变。主要内容包括: 传统方式需要在SEGW中手动创建Entity Type、Entity Set等元素,并在DPC_EXT中编写大量查询逻辑,存在模型层和业务逻辑重复表达的问题。 7.50版本后,SAP Gateway与ABAP CDS深度集成,可通过SEGW直接引用CDS View作为数据源,自动生成数据模型和SADL读取逻辑,支持完整的OData查询功能。 最佳实践建议通过Consumption View而非直接

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 707

(十一)unity Shader之——————屏幕后处理效果(高斯模糊)

前一篇文章中讲了卷积的概念,并利用卷积实现了一个简单的边缘检测效果。下面将学习卷积的另一个常见应用——高斯模糊。模糊的实现方法有很多,例如均值模糊和中值模糊,均值模糊同样使用了卷积操作,它使用的卷积核中的各个元素值都相等,且相加等于1,也就是说,卷积后得到的像素值是其领域内各个像素值的平均值。而中值模糊则是选择领域内的所有像素排序后的中值替换掉原颜色。一个更高级的模糊方法是高斯模糊。 下图是原效...

cgy56191948的博客 1862

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

高斯坐标自然值计算_高斯模糊

之前看冯乐乐女神的《Unity shader入门精要》高斯模糊这一节只是大概略过,昨晚重新看了一下,感受颇深,随即搞了一个效果试一下。老规矩先上图:原图:高斯模糊:(毛玻璃的既视感)0首先对于图片清晰和模糊的定义:“清晰的图片,各个像素之间会有明显的过渡,而如果各个像素之间的差距不是很大,那么图像就会模糊了”。鉴于这个定义,我们就可以通过代码来实现模糊的效果。什么是高斯模糊: 高斯模糊...

weixin_29168393的博客 1692

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

shader入门精要读书笔记31 高斯模糊

一、前言 高斯模糊是卷积的另一个应用, 模糊有很多实现方法:均值模糊、中值模糊等等, 均值模糊就是卷积核中每个元素都相同,且相加为一,取的是卷积核面积大小的像素平均值。 高斯模糊,使用的是高斯核,高斯核中每个元素都是用高斯方程计算出来的。(P253) 因为高斯方程可以很好的模拟出每个像素对当前像素的影响程度, 上面的这个变换,效果是一样的,但可以节省很多次的采样次数。 我们使用两个Pass对横纵...

Chgmaker的博客 383

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Unity Shader PostProcessing - 6 - GaussianBlur 高斯模糊+CommandBuffer使用做一些其他的特效

高斯模糊的算法思路我就不再描述,自行百度。 效果1 CSharp using UnityEngine; public class GaussianBlurPP : MonoBehaviour { private static int _BlurSize_hash = Shader.PropertyToID("_BlurSize"); [Range(0, 4)] pub...

Jave.Lin 的学习笔记 1440

【Unity Shader入门练习】高斯模糊

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

coffeecato的个人博客 1538

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

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

子弹头 2万+

Unity 模糊效果

unity 的RT纹理的模糊处理

有趣的博客 240

Unity屏幕效果-高斯模糊.md

效果 C#层 using System.Collections.Generic; using UnityEngine; using UnityEngine.Serialization; using UnityEngine.UI; public class GaussianBlurUI : MonoBehaviour { public Camera[] blurTargetCame...

言的专栏 768
上一篇: unity实现车方向盘转动效果
下一篇: unity shader-边缘检测
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值