C for Graphic:径向模糊

      最近要做一系列特效需求,顺便记录一下。
      径向模糊(也叫辐射模糊):一种由内向外发散的模糊的效果
在这里插入图片描述
      原理:获取中心点(centeruv)到当前像素(pixeluv)的朝向法向量(ndir),pixeluv沿着ndir进行向前向后的像素颜色采样,并叠加到当前像素颜色(pixelcolor)
      和以前聊过的高斯滤器模糊有点类似,核心都是将其他像素颜色叠加到当前像素颜色,无非叠加的计算规则不同
      画个图:
在这里插入图片描述      以pixeluv为起点,ndir为朝向,向外、向内、或两端同时采样颜色进行叠加,为了保证叠加后亮度的统一,除以采样次数进行衰减即可

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class RadialBlurScreenEffect : MonoBehaviour
{public Material mat;[Range(1, 5)]public int downSample = 2;private int downWidth;private int downHeight;void Start(){downWidth = Screen.width / downSample;downHeight = Screen.height / downSample;}private void Update(){if (Input.GetMouseButton(1)){Vector2 spos = Input.mousePosition;Vector2 uv = new Vector2(spos.x / Screen.width, spos.y / Screen.height);mat.SetVector("_CenterUV", uv);}}private void OnRenderImage(RenderTexture source, RenderTexture destination){if (mat != null){//为了性能考虑,先降采样RenderTexture downRt = RenderTexture.GetTemporary(downWidth, downHeight, 0, RenderTextureFormat.ARGB32);Graphics.Blit(source, downRt);Graphics.Blit(downRt, destination, mat);RenderTexture.ReleaseTemporary(downRt);}else{Graphics.Blit(source, destination);}}
}

      后处理控制器,降采样提升效率

Shader "RadialBlur/RadialBlurImageEffectShader"
{Properties{_MainTex ("Texture", 2D) = "white" {}_CenterUV("Center UV",vector) = (0.5,0.5,0,0)_SampleCount("Sample Count",Range(5,30)) = 10_SampleDistance("Sample Distance",Range(0.005,0.03)) = 0.01[Enum(InOut,1,In,2,Out,3)]_InOut("In Out Type",int) = 0}SubShader{// No culling or depthCull Off ZWrite Off ZTest AlwaysPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;float2 ndir : TEXCOORD1;};float2 _CenterUV;int _SampleCount;float _SampleDistance;int _InOut;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;o.ndir = normalize(o.uv-_CenterUV.xy);return o;}sampler2D _MainTex;fixed4 frag (v2f i) : SV_Target{fixed4 col = fixed4(0,0,0,0);fixed2 dir = i.ndir;if(_InOut == 1){int halfsample = _SampleCount/2;for(int x=0;x<_SampleCount;x++){int offset = x-halfsample;col += (tex2D(_MainTex,i.uv+dir*(offset*_SampleDistance))/(float)_SampleCount);}}else if(_InOut == 2){for(int x=0;x<_SampleCount;x++){col += (tex2D(_MainTex,i.uv+dir*(x*_SampleDistance))/(float)_SampleCount);}}else if(_InOut == 3){for(int x=0;x<_SampleCount;x++){col += (tex2D(_MainTex,i.uv-dir*(x*_SampleDistance))/(float)_SampleCount);}}return col;}ENDCG}}
}

      后处理着色器,原理就是叠加颜色
      最终效果如下:
在这里插入图片描述
      ok,今天就到这里。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882258.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RFC2616 超文本传输协议 HTTP/1.1

一、URL-俗称“网址” HTTP 使用 URL(Uniform Resource Locator&#xff0c;统一资源定位符)来定位资源&#xff0c;它是 URI(Uniform Resource Identifier&#xff0c;统一资源标识符)的子集&#xff0c;URL 在 URI 的基础上增加了定位能力 URI 除了包含 URL&#xff0c;还包…

车载实操:一对一实操学习、CANoe实操学习、推荐就业机会、就业技术支持、协助面试辅导

FOTA模块中OTA的知识点&#xff1a;1.测试过程中发现哪几类问题&#xff1f; 可能就是一个单键的ecu&#xff0c;比如升了一个门的ecu&#xff0c;他的升了之后就关不上&#xff0c;还有就是升级组合ecu的时候&#xff0c;c屏上不显示进度条。 2.在做ota测试的过程中&#xff…

pandas-数据分析-练习题-第1次练习

文章目录 简介开始练习第一题第二题第三题第四题第五题第六题第七题第八题第九题第十题第十一题 简介 每次更新大概10个左右的关于pandas的操作知识点&#xff01;做练习要从第一步开始&#xff0c;防止报错&#xff01;本环境是Anaconda创建的虚拟环境中打开的jupyter noteboo…

驱动总裁免登陆单文件版

驱动总裁免登陆单文件版 下载链接&#xff1a;夸克网盘分享 工具作用是安装电脑驱动文件&#xff0c;不用登陆即可更新驱动&#xff0c;稳定高效

5G NR:UE初始接入信令流程浅介

UE初始接入信令流程 流程说明 用户设备&#xff08;UE&#xff09;向gNB-DU发送RRCSetupRequest消息。gNB-DU 包含 RRC 消息&#xff0c;如果 UE 被接纳&#xff0c;则在 INITIAL UL RRC MESSAGE TRANSFER 消息中包括为 UE 分配的低层配置&#xff0c;并将其传输到 gNB-CU。IN…

PFC和LLC的本质和为什么要用PFC和LLC电路原因

我们可以用电感和电容的特性,以及电压和电流之间的不同步原理来解释PFC(功率因数校正)和LLC(谐振变换器)。 电感和电容的基本概念 电感(Inductor): 电感是一种储存电能的组件。它的电流变化比较慢,电流在电感中延迟,而电压变化得比较快。可以把电感想象成一个“滞后…

如何保护您的服务器免受 POODLE SSLv3 漏洞的影响

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 2014年10月14日&#xff0c;SSL加密协议第3版中的一个漏洞被披露。这个漏洞被称为POODLE&#xff08;Padding Oracle On Downgrad…

『Mysql集群』Mysql高可用集群之主从复制 (一)

Mysql主从复制模式 主从复制有一主一从、主主复制、一主多从、多主一从等多种模式. 我们可以根据它们的优缺点选择适合自身企业情况的主从复制模式进行搭建 . 一主一从 主主复制 (互为主从模式): 实现Mysql多活部署 一主多从: 提高整个集群的读能力 多主一从: 提高整个集群的…

transformers 推理 Qwen2.5 等大模型技术细节详解(一)transformers 初始化和对象加载(文末免费送书)

上周收到一位网友的私信&#xff0c;希望老牛同学写一篇有关使用 transformers 框架推理大模型的技术细节的文章。 老牛同学刚开始以为这类的文章网上应该会有很多&#xff0c;于是想着百度几篇质量稍高一点的回复这位网友。结果&#xff0c;老牛同学搜索后发现&#xff0c;类…

(Java)向上转型和向下转型

1.向上转型 1.1 向上转型的概念 向上转型&#xff1a;实际就是创建一个子类对象&#xff0c;将其当成父类对象来使用。 举个例子&#xff1a; //Animal是Cat的父类 Animal animal new Cat("翠花",2);animal是父类类型&#xff0c;但可以引用一个子类对象&#xf…

信息与计算科学:“数学 + 计算机”,奏响未来科技新乐章

在当今科技飞速发展的时代&#xff0c;有一个专业如同一颗闪耀的新星&#xff0c;散发着独特的魅力&#xff0c;那就是信息与计算科学专业。 一、专业全貌&#xff1a;追根溯源&#xff0c;领略交叉之美 &#xff08;一&#xff09;专业的诞生与发展 1998 年&#xff0c;教育…

python编程:常用模块分类整理

文章目录 一、系统与文件操作类二、数学与随机数类三、日期时间类四、文本处理类五、数据处理与分析类六、数据可视化类七、通信类八、数据加密校验类 一、系统与文件操作类 os模块 功能&#xff1a;提供与操作系统交互的功能&#xff0c;包括文件和目录操作、路径处理等。应用…

一图解千言,了解常见的流程图类型及其作用

在企业管理、软件研发过程中&#xff0c;经常会需要进行各种业务流程梳理&#xff0c;而流程图就是梳理业务时必要的手段&#xff0c;同时也是梳理的产出。但在不同的情况下适用的流程图又不尽相同。 本文我们就一起来总结一下8 种最常见的流程图类型 数据流程图 数据流程图&…

Python知识点:基于Python技术,如何使用AirSim进行无人机模拟

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Python和AirSim进行无人机模拟 无人机技术的发展为许多行业带来了革命性…

RHCE——例行性工作

准备工作 [rootlocalhost ~]# cat /etc/yum.repos.d/aliyun.repo [ali-app] nameali-app baseurlhttps://mirrors.aliyun.com/centos-stream/9-stream/AppStream/x86_64/os/ gpgcheck0[ali-base] nameali-base baseurlhttps://mirrors.aliyun.com/centos-stream/9-stream/Base…

JS | JS中类的 prototype 属性和__proto__属性

大多数浏览器的 ES5 实现之中&#xff0c;每一个对象都有__proto__属性&#xff0c;指向对应的构造函数的prototype属性。Class 作为构造函数的语法糖&#xff0c;同时有prototype属性和__proto__属性&#xff0c;因此同时存在两条继承链。 构造函数的子类有prototype属性。‌ …

代码随想录算法训练营第48天| 739. 每日温度,496.下一个更大元素 I,503.下一个更大元素II

第十一章&#xff1a;图论part01 图论理论基础 大家可以在看图论理论基础的时候&#xff0c;很多内容 看不懂&#xff0c;例如也不知道 看完之后 还是不知道 邻接矩阵&#xff0c;邻接表怎么用&#xff0c; 别着急。 理论基础大家先对各个概念有个印象就好&#xff0c;后面在…

倍福中控显示屏维修控制面板CP7732-1207-0030

使用的环境条件不当可能会损坏设备。 保护设备&#xff0c;防止灰尘、湿气和热量进入。 使用注意事项&#xff1a; 空气流通不畅 设备安装不正确会阻碍设备内的空气流通&#xff0c;从而导致过热和功能受损。 只能按所示方向将设备安装在相应的壁上。 该设备设计用于安装在…

05 P1157 组合的输出

题目&#xff1a; 代码&#xff1a; #include<iostream> using namespace std; # define M 500 #include<algorithm>int sa[100005],k,n,count1;bool func(int n) {int mark0;if(n1){return 1;}else{for(int i2;i<n-1;i){if(n%i0){mark1;return 0;}}if(mark0)r…

SpringBoot集成Redis使用Cache缓存

使用SpringBoot集成Redis使用Cache缓存只要配置相应的配置类&#xff0c;然后使用Cache注解就能实现 RedisConfig配置 新建RedisConfig配置类 package com.bdqn.redis.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annota…