Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

news2025/6/12 17:20:01

目录

一、👋🏻前言

二、😈sinx波动的基本原理

三、😈波动起来

1.sinx节点介绍

2.vertexPosition

3.集成Vector3

a.节点Append

b.连起来

4.波动起来

a.波动的原理

b.时间节点

c.sinx的处理

四、🌊波动优化

五、🚀相关数据优化

1.希望波动密集一点

2.更改幅度

六、结语


一、👋🏻前言

大家好,我是菌菌巧乐兹~本节内容主要讲一下,如何用shader来做一个sinx波动~

效果预览:

二、😈sinx波动的基本原理

原本这是一个平面,变成一个曲面,还是改变顶点坐标

我们改变的是y的顶点坐标

要变成sinx的波动,就是根据给的x的值改y的坐标

我们学过y=sinx

三、😈波动起来

1.sinx节点介绍

2.vertexPosition

之前学过,我们的顶点坐标是有x的,我们把顶点的x给进去,这样我们就输出为y了

3.集成Vector3

我们最后给到的偏移坐标,实际上是(0,偏移y,0),那么我们需要合起来一下

a.节点Append

节点append是专门把单个的数据合起来的节点

在左边的outputType,可以选择你想拼装哪个数据

根据你选择的不同的选项,右边的节点也会有不同的接口

例:Vector2,右边就只有x和y,以此类推

InternalData下面可以填写的数据,你可以选择自己填,也可以选择在节点连

b.连起来

偏移是xyz,所以我们选Vector3,x和z不偏移,所以我们填0,y就是刚才sin连的节点,如图所示

这时候外面的图形,如下图所示(是不会动的)

4.波动起来

a.波动的原理

波动就是让输入进去的x的值逐渐增大,因为sinx中的x,只需要不断变大,他的y一直都在-1和1之间变动。

b.时间节点

这个节点就是当你点击运行时,就会从0开始计时,和秒表一样,一直往上加,速度是和平时的秒速是一样的。

如果你觉得时间走的太快了,你可以改scale,就是改时间的倍数

总结:这是一个不断增加的值

c.sinx的处理

只要x不断增加,就可以获得不断波动的y值,我们先让顶点x的值和time相加,如下图所示,就有了一组不断升高的x

把这个x放进sinx节点当中

d.都连接起来

你就会获得一个不断波动的plane

四、🌊波动优化

首先你会发现一个问题,我们的波纹有棱有角的,不是一个圆滑的波动plane

因为我们是控制的顶点移动,顶点和顶点中间我们是不管的,打开网格就可以看见

备注:选择这个就可以看见网格(如下图所示)

 

然后你就可以看见,只控制顶点移动,顶点和顶点之间离得挺远的,所以只能是有棱有角的波动。

总结:unity自带的plane是不够用的,没办法做到丝滑的波动,所以我们要搞一个网格比较密集的模型


模型资源绑定在文章,QQ群里均可下载,或者你自己搞一个网格密度高的模型


 换上密度高的模型后,把写的shader放上去,就会变成丝滑的模型波动

其实这里还是有点棱角的,如果你希望完全丝滑,就继续加网格密度 

五、🚀相关数据优化

1.希望波动密集一点

可以看见我们sin2x比sinx的波动要密集,所以我们只需要给输入的x加上倍数,就可以调整密集程度

如下图所示,dencity是一个float【可外部更改】,把它和上面的框相乘

从外部调整dencity,看波动效果

2.更改幅度

如果你觉得幅度太小了,那就是偏移y的数值太小了,在最后y值在的地方做个相乘

再给个特写

最后的波动结果

六、结语

非常感谢你的观看,如果你觉得我帮到你了,可以给我点一个赞吗~

我会为此创作更多的文章。

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

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

相关文章

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率&#xff0c…

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线, n r n_r nr​ 根接收天线的 MIMO 系…

Linux --进程控制

本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…

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

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

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…