当前位置: 首页 > news >正文

【案例】旗帜飘动

开发平台:Unity 6.0
开发工具:Shader Graph
参考视频:Unity Shader Graph 旗帜飘动特效

一、效果图


在这里插入图片描述

二、Shader Graph 路线图


在这里插入图片描述

三、案例分析


核心思路:顶点偏移计算 与 顶点偏移忽略

3.1 纹理偏移


在这里插入图片描述
视觉上让旗帜保持动态飘动,需要 Time(时间节点)做持续性更新。(等同于 Update 中每帧执行一次更新)最终的目的是多次向后续流程输出 UV 信息。而非仅一次。

3.2 噪点

在这里插入图片描述
在模拟旗帜浮动表现上,引入 Gradient Noise(渐变噪声节点)- 按比例随机生成的随机值。来达到其效果。

Remap(线性插值节点):限制 Gradient Noise(渐变噪声节点)输出值范围。如下图所示区别

图1 Out Min Max = 0 - 1
图2 Out Min Max = 0 - 0.3

在 Time(时间节点)加持下的动态噪声值 作为顶点偏移的最终使用值。

3.3 顶点偏移

在这里插入图片描述
视觉表现上,模型顶点的最终位置信息 = 模型顶点位置 + 顶点偏移位置。

注意:此处仅使用模型法线方向 * 噪声值作为 顶点偏移位置。故旗帜漂浮表现多为水平方向。

如果需要有XYZ三方向的变化

替换 Normal Vector(法线坐标节点)为 变量 Vector3 作为输入。

图1 使用 Vector3 输入
图2 使用 Normal Vector 输入

3.3 限制偏移


在这里插入图片描述
对偏移进行限制是因为之前的 “旗帜飘动” 是基于整张 Texture2D 进行。效果比对如下:

图1 增加限制
图2 无限制

Lerp(插值节点)用于限制值域与插值表现。

已知 漂浮偏移后的顶点位置 ≥ 旗帜飘动的幅度时的顶点偏移位置值 ≥ 默认平面顶点位置。目的是限制旗帜横向上偏移幅度。将 UV 值按照该插值计算,截取 U 值,可得到当 U = 0 时,旗帜最左边顶点保持不动。

关于使用 Step(限制最小值节点)

将 UV 中的 U 值接入 Step(限制最小值节点) 中,交由 Lerp(插值节点)依然可以实现上述效果,改变 Strep(限制最小值节点)下 Edge 值可适当影响旗帜变化。但效果上不如前者更易调整。
在这里插入图片描述

3.4 纹理贴图加入


在这里插入图片描述
加入 Texture2D 与 Sample Texture2D(纹理采样节点) 即可。

四、关于其他问题


仅依靠 Unity 内置 Plane 是无法制作旗帜模型。其原因是定点数少导致的变形无法或效果不如意。

如何解决
在 Blender \ Maya 等专业建模软件中准备一个表面细分高的模型导入至 Unity 中即可。

相关文章:

【案例】旗帜飘动

开发平台:Unity 6.0 开发工具:Shader Graph 参考视频:Unity Shader Graph 旗帜飘动特效   一、效果图 二、Shader Graph 路线图 三、案例分析 核心思路:顶点偏移计算 与 顶点偏移忽略 3.1 纹理偏移 视觉上让旗帜保持动态飘动&a…...

大模型思维链推理的综述:进展、前沿和未来

转自公众号AIRoobt A Survey of Chain of Thought Reasoning: Advances, Frontiers and Future 思维链推理的综述:进展、前沿和未来 摘要:思维链推理,作为人类智能的基本认知过程,在人工智能和自然语言处理领域引起了极大的关注…...

项目一:使用 Spring + SpringMVC + Mybatis + lombok 实现网络五子棋

一:系统展示: 二:约定前后端接口 2.1 登陆 登陆请求: GET /login HTTP/1.1 Content-Type: application/x-www-form-urlencodedusernamezhangsan&password123登陆响应: 正常对象:正常对象会在数据库中存储&…...

openEuler 系统中 Samba 文件共享服务器管理(windows、linux文件共享操作方法)

一、Samba 简介 Samba 是在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的一个免费软件,使得这些系统可以与 Windows 系统进行文件和打印机共享。通过 Samba,可以将 openEuler 系统配置为文件服务器,让 Windows、Linux 和其他支持 SMB/CIFS 协议…...

使用 Elasticsearch 进行语义搜索

Elasticsearch 是一款功能强大的开源搜索引擎,可用于全文搜索、分析和数据可视化。传统上,Elasticsearch 以其执行基于关键字/词汇的搜索的能力而闻名,其中文档基于精确或部分关键字匹配进行匹配。然而,Elasticsearch 已经发展到支…...

软考:中间件

中间件 中间件是一类位于操作系统软件与用户应用软件之间的计算机软件,它包括一组服务,以便于运行在一台或多台机器上的多个软件通过网络进行交互。 中间件的主要功能包括通信支持和应用支持。 通信支持为应用软件提供平台化的运行环境,屏蔽…...

银行家算法(Banker’s Algorithm)

银行家算法(Banker’s Algorithm)是计算机操作系统中一种避免死锁发生的著名算法。该算法由艾兹格迪杰斯特拉(Edsger Dijkstra)在1965年为T.H.E系统设计,其核心理念基于银行借贷系统的分配策略,以确保系统的…...

用魔数严谨的判别文件类型:杜绝上传风险

在文件处理和管理中,确定文件的类型是一个常见的需求。虽然文件扩展名可以提供一些信息,但并不总是可靠的。魔数(Magic Numbers)是一种更为准确的方法,通过检查文件开头的特定字节序列来识别文件类型。本文将介绍如何在…...

【MacOS实操】如何基于SSH连接远程linux服务器

MacOS上远程连接linux服务器,可以使用ssh命令pem秘钥文件连接。 一、准备pem秘钥文件 如果已经有pem文件,则跳过这一步。如果手上有ppk文件,那么需要先转换为pem文件。 macOS 的默认 SSH 客户端不支持 PPK 格式,你需要将 PPK 文…...

EXPLAIN 针对性优化 SQL 查询

在数据库管理和应用中,高效的 SQL 查询是确保系统性能的关键。随着数据量的不断增长和业务需求的日益复杂,优化 SQL 查询变得尤为重要。而 EXPLAIN 命令是一种强大的工具,可以帮助我们深入了解 SQL 查询的执行计划,从而进行有针对…...

MR30分布式IO:石化行业的智能化革新

在浩瀚的工业领域中,石化行业如同一座巨大的化工厂,将自然界的原始资源转化为人们日常生活中不可或缺的各种产品。然而,随着生产规模的扩大和工艺复杂度的提升,石化行业面临着前所未有的挑战:如何在保证生产效率的同时…...

linux图形化X窗口

【linux图形化协议框架】 X、X11系统:X协议,X服务器,窗口管理器,X客户端(客户端库Xcb,Xlib库等),输入、绘制 Wayland系统:Wayland 协议,合成器、客户端&#…...

练习LabVIEW第三十五题

学习目标: 刚学了LabVIEW,在网上找了些题,练习一下LabVIEW,有不对不好不足的地方欢迎指正! 第三十五题: 使用labview模拟一个3-8译码器 开始编写: 用LabVIEW做3-8译码器首先要知道它是个啥…...

Decision Tree Regressor (决策树) --- 论文实战

一、前言 在《机器学习论文复现实战---linear regression》中通过Pearson 相关性分析,去除了2个高相关性特征 "PN" 和 "AN" ,数据维度变为890*25。(数据集地址) 这里我们不做前期处理,直接就将数据放入 DecisionTreeRegressor 模型中进行训练了。 二…...

三层交换技术,eNSP实验讲解

三层交换技术,eNSP实验讲解 一、简要介绍1、概念2、工作原理3、优点4、应用场景5、与路由器的区别 二、eNSP仿真实验1、步骤一:创建连接,明确参数。2、步骤二:设置PC1和PC2参数3、步骤三:配置交换机,通过命…...

单链表OJ题(3):合并两个有序链表、链表分割、链表的回文结构

目录 一、合并两个有序链表 二、链表分割 三、链表的回文结构 u解题的总体思路: 合并两个有序链表:首先创建新链表的头节点(哨兵位:本质上是占位子),为了减少一些判断情况,简化操作。然后我们…...

研究了100个小绿书十万加之后,我们发现2024小绿书独家秘籍就是:在于“先抄后超,持续出摊,量大管饱”!

小绿书作为今年最大的红利,很多人已经吃到了螃蟹。看——: 今天我们总结了100个10万爆款,我们发现要在这个平台上脱颖而出,找到属于自己的方法尤为重要。在这里分享一个主题——小绿书的秘诀就是“先抄后超,持续出摊”…...

Java 中 HashMap集合使用

目录 一. HashMap概述 二. HashMap特点 三. HashMap构造方法 四. HashMap的常用方法 五. 使用注意事项 六. 代码示例 一. HashMap概述 HashMap 是 Java 中的一个非常重要的类,它实现了 Map 接口,用于存储键值对(key-value pairs&#…...

#渗透测试#SRC漏洞挖掘# 信息收集-Shodan进阶之Mongodb未授权访问

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

平台化运营公司如何在创业市场招商

在当今商业环境中,平台化运营的公司正成为推动经济发展的重要力量。对于这类公司而言,在创业市场招商意义重大。 平台化运营公司具有独特特点:通过搭建开放共享平台连接供需双方,实现资源优化配置与价值创造。比如电子商务平台、社…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

Kafka入门-生产者

生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...