unity中实现流光效果——世界空间下
Properties{_MainTex ("Texture", 2D) = "white" {}_FlowColor ("Flow Color", Color) = (1, 1, 1, 1) // 流光颜色_FlowFrequency ("Flow Frequency", Float) = 1.0 // 流光频率_FlowSpeed ("Flow Speed", Float) = 1.0 // 流光速度_FlowAmplitude ("Flow Amplitude", Float) = 0.5 // 流光振幅_FlowWidth ("Flow Width", Float) = 0.1 // 流光宽度_FlowRotationAngle ("Flow Rotation Angle", Float) = 90.0 // 流光旋转角度,以度为单位_FlowPhase ("Flow Phase", Float) = 0.0 // 流光相位}SubShader{Tags {"RenderType" = "Opaque""Queue" = "Geometry+10"}LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"#pragma shader_feature _ ENABLE_FLOWLIGHTstruct appdata{float4 vertex : POSITION;float2 texcoord : TEXCOORD0;float3 normal : NORMAL;};struct v2f{float4 pos : SV_POSITION;float2 uv : TEXCOORD0;float3 pos_world : TEXCOORD1;float3 pivot_world : TEXCOORD2;};sampler2D _MainTex;float4 _MainTex_ST;float4 _FlowColor;float _FlowFrequency;float _FlowSpeed;float _FlowAmplitude;float _FlowWidth;float _FlowRotationAngle;float _FlowPhase;v2f vert (appdata v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);float3 pos_world = mul(unity_ObjectToWorld, v.vertex).xyz;o.pos_world = pos_world;o.pivot_world = mul(unity_ObjectToWorld, float4(0.0, 0.0, 0.0, 1.0)).xyz;o.uv = v.texcoord;return o;}fixed4 frag (v2f i) : SV_Target{half3 baseColor = tex2D(_MainTex, i.uv).rgb;#ifdef ENABLE_FLOWLIGHT// 计算相对位置half2 uv_flow = (i.pos_world.xy - i.pivot_world.xy);// 将度数转换为弧度float rad = radians(_FlowRotationAngle);// 计算旋转矩阵float cosTheta = cos(rad);float sinTheta = sin(rad);float2x2 rotationMatrix = float2x2(cosTheta, -sinTheta, sinTheta, cosTheta);// 应用旋转矩阵到UV坐标uv_flow = mul(rotationMatrix, uv_flow);// 计算时间因子,包括相位调整float timeFactor = _Time.y * _FlowSpeed +_FlowPhase;// 计算流光效果float wave = sin(_FlowFrequency * uv_flow.x + timeFactor) * _FlowAmplitude;// 构建流光Maskfloat flowMask = smoothstep(0.5 - _FlowWidth, 0.5, 0.5 + wave) - smoothstep(0.5, 0.5 + _FlowWidth, 0.5 + wave);// 叠加流光颜色float3 final_col = baseColor + flowMask * _FlowColor.rgb;#elsefloat3 final_col = baseColor;#endifreturn float4(final_col, 1.0);}ENDCG}}
UV这样算,可以保证3D模型,流光可以沿着一个方向流动
相关文章:

unity中实现流光效果——世界空间下
Properties{_MainTex ("Texture", 2D) "white" {}_FlowColor ("Flow Color", Color) (1, 1, 1, 1) // 流光颜色_FlowFrequency ("Flow Frequency", Float) 1.0 // 流光频率_FlowSpeed ("Flow Speed", Float) 1.0 // 流光…...

项目经验分享:用4G路由器CPE接海康NVR采用国标GB28181协议TCP被动取流一段时间后设备就掉线了
最近我们在做一个生态化养殖的项目时,发现一个奇怪的现象: 项目现场由于没有有线网络,所以,我们在现场IPC接入到海康NVR之后,再通过一款4G的CPE接入到天翼云的国标GB28181视频平台;我们采用UDP协议播放NVR…...
【RabbitMQ】RabbitMQ不公平分发_预取值
一、不公平分发 1、简介 RabbitMQ中的不公平分发(Unfair Dispatch)是指当多个消费者(Consumers)同时订阅同一个队列(Queue)时,消息的分发机制并非严格平均或公平,而是基于某些条件…...
最新AI模型使用指南和模型
市面上最好的AI大模型 OpenAI GPT-4: 概述:GPT-4 是 OpenAI 发布的最新一代大型语言模型,具备更强的理解和生成自然语言的能力。特点: 强大的文本生成和理解能力。支持多语言处理。可用于各种应用场景,如对话生成、内容…...
数据结构之八大基本排序方法
在数据结构中,排序是一个重要的操作,它有助于提高数据的可读性和可操作性。排序算法有多种,各有优缺点,适用于不同的场景。以下是八大经典排序算法的介绍: 1. 冒泡排序(Bubble Sort) 原理&…...

《Milvus Cloud向量数据库指南》——什么是高可用:深入理解数据库系统中的高可用性架构
什么是高可用:深入理解数据库系统中的高可用性架构 在信息技术日新月异的今天,高可用性(High Availability,简称HA)已成为衡量一个系统,尤其是数据库系统稳定性和可靠性的重要标准。高可用性的核心目标在于确保系统能够持续不断地提供服务,最大限度地减少因维护活动、硬…...

C++ | Leetcode C++题解之第319题灯泡开关
题目: 题解: class Solution { public:int bulbSwitch(int n) {return sqrt(n 0.5);} };...

C# 使用 NLog 输出日志到文件夹
在项目中使用 NuGet 安装 NLog 包以及 NLog.Config 包 配置 nlog.config 在项目的根目录下创建一个 Nlog.config 文件(如果还没有),然后添加如下配置: <?xml version"1.0" encoding"utf-8" ?> <…...

node.js使用NodeMachineID 生成唯一UUID和注意事项
node-machine-id用于获取或生成唯一的机器ID 如何使用 const { machineId, machineIdSync } require(node-machine-id) JSON.stringify(machineIdSync({original: true})) ;方法: machineIdSync 此函数同步获取操作系统本机UUID/GUID,默认情况下进行哈…...

AI大模型在数据治理中的应用
目前,企业的数据治理工作以人工实施为主,其中一些重复性较强的工作,如:数据标准制定和映射、元数据信息完善、数据目录挂载等,需要消耗大量的人力和时间成本,这给本来就难以量化业务价值的治理工作的顺利推…...

【初学人工智能原理】【12】循环:序列依赖问题
前言 本文教程均来自b站【小白也能听懂的人工智能原理】,感兴趣的可自行到b站观看。 代码及工具箱 本专栏的代码和工具函数已经上传到GitHub:1571859588/xiaobai_AI: 零基础入门人工智能 (github.com),可以找到对应课程的代码 正文 对于…...

【QT】无法打开QT的ui文件,出现闪退情况
打开qt的ui文件出现闪退的情况: 解决办法:点击扩展-Qt VS Tools-Options 找到Qt General中的Qt Designer 的Run in detached window改为True。...
三、Spring-WebFlux实战案例-流式
目录 一、springboot之间通讯方式 1. 服务端 (Spring Boot) 1.1 添加依赖 1.2 控制器 2. 客户端 (WebClient) 2.1 添加依赖 2.2 客户端代码 3. 运行 二、web与服务之间通讯方式 1、服务端代码 2、客户端代码 3、注意事项 三、移动端与服务端之间通讯方式…...

html+css 实现hover双层按钮
前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…...

SPIFFS与LittleFS的对gz文件格式的区别
SPIFFS 只能安装在Arduino上。LittleFS支持Arduino IDE和VScode的 PlatformIO。 SPIFFS serveStatic: server.serveStatic("/", SPIFFS, "/") 负责提供 SPIFFS 文件系统中的文件。您可以在 SPIFFS 上放置 .gz 文件,并该方法将自动处理它们。 …...

STM32L051K8U6-开发资料
STM32L051测试 (四、Flash和EEPROM的读写)-云社区-华为云 (huaweicloud.com) STM32L051测试 (四、Flash和EEPROM的读写) - 掘金 (juejin.cn) STM32L0 系列 EEPROM 读写,程序卡死?_stm32l0片内eeprom_stm3…...
Markdown语法学习
Markdown学习 一、基础语法讲解 1. 换行 本行末尾双空格然后回车(在Typora的中直接回车也可以) 2. 换段 本段末尾两次回车 3. 加粗 **加粗** __加粗__效果:加粗 4. 斜体 *加粗* _加粗_效果:斜体 5. 斜体加粗 ***加粗**…...
[最短路Floyd],启动!!!
B3647 【模板】Floyd #include<bits/stdc.h> #define ll long long #define fi first #define se second #define pb push_back #define PII pair<int,int > #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) using namespace std; const int N …...

7月29(信息差)
🌍最强模型 Llama 3.1 如期而至!扎克伯格最新访谈:Llama 会成为 AI 界的 Linux 🎄谷歌AlphaProof攻克国际奥赛数学题 https://www.51cto.com/article/793632.html ✨SearchGPT第一波评测来了!响应速度超快还没广告&…...
ubuntu中禁止使用鼠标拖动来移动文件
windows和ubuntu中都可以拖动文件到其他路径,然后达到移动文件的目的。 这种方式有好处也有坏处,好处是移动文件方便了,坏处是误操作后会造成故障,尤其是ubuntu中,本身鼠标就特别灵敏并且操作不便,拖动一个…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...