Unity Shader实现径向模糊效果
作者:会编程的小毛驴 发布时间:2021-09-06 01:02:47
标签:Unity,Shader,径向模糊
在游戏里面有很多模糊效果,像赛车类游戏。当你加速时,会发现2边的场景变模糊。如下图:
今天也来做一下径向模糊效果,首先创建一个Material,给它添加一个纹理后将Material拖到新建的Plane上。如图所示,可以看出模糊效果是从中心点由内往外扩散。接下来脑子里有了步骤
步骤一:定义径向模糊的中心点,通常取图像的正中心点。
步骤二:计算采样像素与中心点的距离,根据距离确定偏移程度,即离中心点越远,偏移量越大。
步骤三:将采样点的颜色值做平均求和。
Shader "liulongling/motion" {
Properties {
_MainTex("纹理",2D)="while"{}
_Level("强度",Range(0,100))=10
}
SubShader {
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "unitycg.cginc"
sampler2D _MainTex;
float _Level;
struct v2f{
fixed4 vertex:POSITION;
fixed2 uv:TEXCOORD;
};
v2f vert(appdata_base v){
v2f o;
o.vertex=mul(UNITY_MATRIX_MVP,v.vertex);
o.uv=v.texcoord;
return o;
}
fixed4 frag(v2f i):COLOR{
fixed4 c;
fixed2 center=fixed2(.5,.5);
fixed2 uv=i.uv-center;
fixed3 c1=fixed3(0,0,0);
for(fixed j=0;j<_Level;j++){
c1+=tex2D(_MainTex,uv*(1-0.01*j)+center).rgb;
}
c.rgb=c1/_Level;
c.a=1;
return c;
}
ENDCG
}
}
}
效果如下:
来源:https://blog.csdn.net/liulongling/article/details/50787445
0
投稿
猜你喜欢
- 一. switch分支结构1. 简介switch结合case,能够判断一个变量或表达式与一系列值中的某个值是否相等,这里的每个值都被称为一个
- 情况简介spring项目,controller异步调用service的方法,产生大量并发。具体业务:前台同时传入大量待翻译的单词,后台业务接
- yaml语法注解配置文件两种形式application.properties和.yaml第一种语法 key=value第二种key:空格va
- 什么是异步?为什么要用它?异步编程提供了一个非阻塞的,事件驱动的编程模型。 这种编程模型利用系统中多核执行任务来提供并行,因此提供了应用的吞
- 第一个Lambda表达式在Lambda出现之前,如果我们需要写一个多线程可能需要下面这种方式:Runnable runnable = new
- 享元模式概述享元模式(Flyweight Pattern)又称为轻量级模式,是对象池的一种实现。属于结构型模式。类似于线程池,线程池可以避免
- 1. 使用try-with-resources简化文件读取操作:修改前:FileInputStream fis = null;try { &
- 一、叙述当Spring的事件(Application Event)为Bean和Bean之间的消息同步提供了支持。当一个Bean处理完成一个任
- springboot 统一设置时区控制springboot服务的时区为东八区@SpringBootApplicationpublic cla
- 目录说明使用常见问题No such instance field: 'logger2'说明logback作为log4j的替代
- 一、通过程序看现象在开始为大家讲解Java 多线程缓存模型之前,我们先看下面的这一段代码。这段代码的逻辑很简单:主线程启动了两个子线程,一个
- 前言Spark Sql可以通过UDF来对DataFrame的Column进行自定义操作。在特定场景下定义UDF可能需要用到Spark Con
- 引言:编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教。第1招:以空间换
- 最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到Servlet部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟。这
- 短网址,忽然一下子就冒出来的东西,长长的一个URL,提交过去,出来就只有短短的一个URL了,看起来似乎挺神奇,其实简单分析一下,明白其中的原
- 什么是EurekaEureka是Netfilx开源的一个用来实现微服务的注册与发现的组件。它包含Server和Client两部分。为什么要有
- 因为mybatis好使,所以几乎需要操作数据库的时候,我都会使用mybatis,而且在一个正式的项目中,同时存在BS和CS的程序,都使用的M
- 简介机器学习在全球范围内越来越受欢迎和使用。 它已经彻底改变了某些应用程序的构建方式,并且可能会继续成为我们日常生活中一个巨大的(并且正在增
- 大体思路如果发总金额为 m的 n 个红包,先用一个长度为 n的临时数组 a 存放 n个随机双精度小数 ,然后用 sum表示数组
- 一、Drools引擎简介1、基础简介Drools是一个基于java的规则引擎,开源的,可以将复杂多变的规则从硬编码中解放出来,以规则脚本的形