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中,本身鼠标就特别灵敏并且操作不便,拖动一个…...
快马AI一键生成链表可视化原型,交互演示助力算法设计
最近在复习数据结构时,发现链表这种基础但重要的结构,光看静态图示很难理解指针变化。正好尝试用InsCode(快马)平台快速搭建了一个可视化演示工具,整个过程比想象中简单很多,分享下实现思路: 需求拆解 首先明确需要实现…...
Scholar-Agent
✅ 双栏对照预览:现在支持全文 Markdown 展示。高亮追踪:搜索词、关键指标在原文中自动黄色高亮,再也不用手动 CtrlF 找关键词了。✅ 沉浸式文献助手 (Paper Chat): 右下角新增 “脑机接口”式对话窗。局部 RAG:你可以…...
如何彻底掌控Windows Defender:终极禁用与启用指南
如何彻底掌控Windows Defender:终极禁用与启用指南 【免费下载链接】defender-control An open-source windows defender manager. Now you can disable windows defender permanently. 项目地址: https://gitcode.com/gh_mirrors/de/defender-control 你是…...
大模型学习进阶:收藏必备,小白程序员快速掌握RAG架构核心技术!
大模型学习进阶:收藏必备,小白程序员快速掌握RAG架构核心技术! 本文深入解析了RAG(检索增强生成)大模型的核心技术及其重要性,详细介绍了标准RAG、对话式RAG、纠正式RAG、自适应RAG、自我反思RAG、融合RAG、…...
Go Context 生命周期与取消信号传播
Go Context 生命周期与取消信号传播 在Go语言中,Context是控制并发任务生命周期的核心工具,它通过树状结构管理取消信号、超时和截止时间,确保资源高效回收与任务协同。无论是微服务调用、数据库查询还是HTTP请求,Context都能优雅…...
Docker快速搭建个人开源导航站:从配置到公网访问
1. 为什么你需要一个个人导航站? 每天打开浏览器,你是不是也和我一样要反复输入那些常用的网址?GitHub、技术论坛、在线工具网站...收藏夹早就塞得乱七八糟。更糟的是换了电脑或手机,所有收藏都得重新整理。三年前我开始用自建导…...
新手必看:在快马平台通过实践项目轻松理解rag工作原理
今天想和大家分享一个特别适合新手理解RAG(检索增强生成)技术的实践项目。作为一个刚接触NLP的小白,我发现通过动手实践比单纯看理论文档要高效得多。下面就用最简单的代码带大家走通RAG的核心流程,全程在InsCode(快马)平台上完成…...
ELK+Metricbeat搭建服务器监控看板:CPU/内存/磁盘全搞定
ELKMetricbeat实战:打造企业级服务器监控看板 当服务器集群规模超过50台时,凌晨三点被电话叫醒处理性能问题的运维人员,最需要的不是咖啡,而是一套能实时呈现CPU、内存、磁盘等关键指标的智能监控系统。本文将手把手带您用ELK Sta…...
车载相机升级指南:美信MAX9295/96717串行器搭配MAX96712解串器调试MIPI相机实录
车载相机升级指南:美信MAX9295/96717串行器搭配MAX96712解串器调试MIPI相机实录 随着智能驾驶系统对图像识别精度要求的提升,8M像素车载相机正逐步成为行业标配。这次我们团队在升级某高端车型环视系统时,就遇到了从传统2M相机切换到8M MIPI…...
RexUniNLU镜像免配置:预置中文分词增强模块,提升未登录词与新词识别率
RexUniNLU镜像免配置:预置中文分词增强模块,提升未登录词与新词识别率 1. 什么是RexUniNLU? RexUniNLU是一款基于Siamese-UIE架构的轻量级自然语言理解框架。它最大的特点是零样本学习能力——你不需要准备任何标注数据,只需要定…...
