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

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

目录

一、👋🏻前言

 二、😈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值在的地方做个相乘

再给个特写

最后的波动结果

 

相关文章:

  • java中word快速转pdf
  • 2.2.2 ASPICE的需求分析
  • 大话软工笔记—需求分析概述
  • Vue 3 + WebSocket 实战:公司通知实时推送功能详解
  • 测试微信模版消息推送
  • Yii2项目自动向GitLab上报Bug
  • Linux-08 ubuntu 的 chrome浏览器不能使用 搜狗 输入法,但是火狐可以
  • 【MATLAB第119期】基于MATLAB的KRR多输入多输出全局敏感性分析模型运用(无目标函数,考虑代理模型)
  • 原型模式深度解析:Java设计模式实战指南与克隆机制优化实践
  • C# dll版本冲突解决方案
  • C# 使用表达式树(Expression Tree)代替反射赋值
  • 机器学习之聚类Kmeans算法
  • MongoDB 入门指南:安装、配置与 Navicat 连接教程
  • 冒泡排序C++实现
  • Linux系统部署KES
  • MySQL中text,longtext,mediumtext区别
  • CSS设置元素的宽度根据其内容自动调整
  • 如何将数据从 iPhone 传输到 Android?
  • 网页版便签应用开发:HTML5本地存储与拖拽交互实践
  • c++默认类模板参数
  • 电脑版网站制作公司/4p营销理论
  • 普陀营销型网站建设/最新新闻摘抄
  • wordpress 云储存/网站首页排名seo搜索优化
  • 武汉专业的网站建设公司/百度账号登录
  • 云南网站优化/说说刷赞网站推广
  • 网站怎么做微信支付宝支付/百度竞价推广培训