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

Unity | AmplifyShaderEditor插件基础(第五集:简易移动shader)

一、👋🏻前言

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

我们在上节课的基础上(一个做好的书),继续学习

本节课需要学会一点模型知识:

Unity | 学shader需要知道的模型知识-CSDN博客

二、⏩VertexOffset - 顶点偏移

在模型知识中讲了什么是顶点坐标,那顶点偏移就是在这个坐标的基础上进行变化。

例:

现在顶点坐标是(0.1,0.1,0.1),如果x方向偏移0.2,就会变成(0.3,0.1,0.1)。

三、📊数据节点

鼠标右键出现下方框

里面有六个常用数据,为了考虑有美术生,我稍微讲一下他们的意思

Color        颜色

int        整数

float        小数

Vector2        二维坐标,例(0,0)

Vector3        三维坐标,例(0,0,0)

Vector4        四维坐标,例(0,0,0,0)

四、🚗沿轴移动

因为坐标是xyz三个轴,所以就建立一个Vector3

1.Vector3的常用值介绍

Vector3的设置,左边的这个设置,必须在你选中vector时才会出现

起名注意不要起中文名,会报错

 

下面是重点,很常用:

 a.type 类型

关于Type打开下拉菜单有4个:

constant常量只能在你窗口上修改,不能外部更改
property 属性也可以在窗口看见,也可以外部更改,但只要用同一个材质球,都一样
Instanced Property实例化属性同上,但用同一个材质球,可以用代码给不一样的内容
Glbal全局 所有用这个shader代码的材质,都一起改了

备注:这个外部更改的意思就是在材质球上能调

 b.precision 精度

inherit                保留原本的精度

half                    位数比较少的小数(小数点后16位)

float                   位数比较多的小数(小数点后32位)

2.外部移动

精度我们先选inherit

类型先选property

然后保存一下,就可以去外面调节着玩一下了

总结:这就是在shader里让图像动起来的根本原因

3.自动移动(sin Time节点、cos Time节点)

手动移动没有意思,我们希望他自动移动可以用到sinTime

a.sinx介绍

sinx是一个重复的波浪线,出来的数y一致在-1到1之间来回,以0开头

b.sin Time节点

因为sinx是曲线的节奏在-1到1之间晃荡,所以:

连t        按正常的速度,在-1到1之间晃荡 

连t/2     按0.5倍速,在-1到1之间晃荡 

连t/4     按0.25倍速,在-1到1之间晃荡 

连t/8     按0.125倍速,在-1到1之间晃荡 

 c.cos Time节点

备注:cosTime同理可得,就不多讲了

d.把准备好的节点连接上

此时,它已经会动了,顶点一起动,就导致是集体移动

制作旗子,风帆之类的,就是在这个基础上 ,未来我们会做的,如果评论多的话

e.调整数值

如果你觉得这个移动的太远,或者你想控制移动的方向,比如:我只想在x轴移动,其他方向不想移动,可以做简单的乘法

结果:

同理,移动的幅度,也可以通过调vector0的数据来调

五、结语

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

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

 

http://www.xdnf.cn/news/12355.html

相关文章:

  • 高效复用 Cursor 请求,提升开发效率 —— 使用 interactive-feedback-mcp 工具详解
  • 【单片机期末】单片机系统设计
  • 车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
  • 从 Revit 到 3DTiles:GISBox RVT 切片器如何让建筑图元在 Web 端展示
  • AudioRelay 0.27.5 手机充当电脑音响
  • 数据通信 PoE 交换机解决方案
  • 基于springboot的校园社团信息系统的设计与实现
  • 智慧水务发展迅猛:从物联网架构到AIoT系统的跨越式升级
  • JavaWeb笔记
  • ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
  • MyBatis 核心标签使用场景及用法详解
  • Java中的this()和super()详解
  • 前端脱敏展示姓名、手机号、邮箱
  • 行为型设计模式之Chain of Responsibility(责任链)
  • 基于JWT+SpringSecurity整合一个单点认证授权机制
  • 低内聚高耦合的衡量指标
  • DTS 数据迁移
  • 在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
  • 【Python-Day 23】Python 模块化编程实战:创建、导入及 sys.path 深度解析
  • 青少年编程与数学 01-011 系统软件简介 06 Android操作系统
  • 相机Camera日志分析之二十七:高通相机Camx 基于预览1帧的process_capture_result二级日志分析详解
  • AOP实现Restful接口操作日志入表方案
  • 事件监听 ——CAD C#二次开发
  • ES6——数组扩展之Set数组
  • 接口限频算法:漏桶算法、令牌桶算法、滑动窗口算法
  • 小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo
  • 深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
  • 鸿蒙开发——如何修改模拟器的显示图标/标题
  • 车牌识别技术解决方案
  • day46打卡