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

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

一、👋🏻前言

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

效果预览:

二、💨膨胀的基本原理

之前的移动是所有顶点朝着一个方向走,所以是移动

如果所有顶点照着自己的方向走,就是膨胀,顶点自己的方向一般就是法线方向

法线方向

三、💥手动膨胀

1.把模型准备好

模型在群里,或附带资源,或这是unity商店免费模型,模型如图所示

2.把之前学过的shader准备好


以上是准备工作,就不多讲了,随着前面讲的东西越来越多,后续我都会把准备工作直接放在上面,请大家自己解锁

下面是新知识点 


3.节点VertexNormal

吐槽一下:不得不感叹,在写一些简单的shader时,ASE就是方便

如图所示,我们获取到了顶点的法线,法线的坐标是(-1,-1,-1)到(1,1,1)之间的 

我有了法线坐标,然后如果希望大一点,就乘大一点的normalScale,如果希望小一点,就让normalScale小一点

把节点连到顶点偏移上

normalScale是外部更改的,去外面更改它

四、🚗自动膨胀

1.自动膨胀的原理

我先把手动膨胀的值调到我希望的位置,然后这是一个值

我把这个值和上节课的sin乘一下,就会在值×(-1)到值×(1)之间变动

其实变成负值就很奇怪了,所以我们需要把sin的值变成(0,1)之间

总结:

a.把sin的(-1,1)的自动变化变成(0,1)

b.把这个sin的值和手动膨胀的值乘一下

2.sin的变化(节点remap)

右边的这个remap是换值的节点

min old        老值的最小值        这里填-1

max old        老值的最大值        这里填1

min new        新值的最小值        这里填0

max new        新值的最大值        这里填1

备注:这个是等比的换

如原来是-1,现在是0

原来是0的时候,现在就是0.5

3.把两个准备好的数值乘一下

4.结果

 

五、😄结语

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

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

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

相关文章:

  • GOOUUU ESP32-S3-CAM 果云科技开发板开发指南(一)(超详细!)Vscode+espidf 通过摄像头拍摄照片并存取到SD卡中,文末附源码
  • SMC自修改代码一
  • JUC 串讲
  • redis分片集群架构
  • 部门档案在不同系统中的差异及整合思路
  • 【自然语言处理】大模型时代的数据标注(主动学习)
  • PostgreSQL 的扩展pageinspect
  • 【Java学习笔记】Math方法
  • Xilinx IP 解析之 Block Memory Generator v8.4 ——02-如何配置 IP(仅 Native 接口)
  • oracle 11g ADG备库报错ORA-00449 lgwr unexpectedly分析处理
  • AGV|无人叉车工业语音播报器|预警提示器LBE-LEX系列性能与接线说明
  • Python从Excel读取数据并生成图表的方法详解
  • Docker构建Vite项目内存溢出:从Heap Limit报错到完美解决的剖析
  • LINUX67 FTP 3客户服务系统;FTP 上传、下载测试调试
  • 14-Oracle 23ai Vector Search 向量索引和混合索引-实操
  • [Go]context上下文--使用要点--源码分析--Go核心--并发编程
  • go-zero微服务入门案例
  • 【Go语言基础【13】】函数、闭包、方法
  • 优化器 (torch.optim) 与学习率调度器 (lr_scheduler)
  • vite+tailwind封装组件库
  • Android LinearLayout、FrameLayout、RelativeLayout、ConstraintLayout大混战
  • Xela矩阵三轴触觉传感器的工作原理解析与应用场景
  • 一.设计模式的基本概念
  • Python分形几何可视化—— 复数迭代、L系统与生物分形模拟
  • Redis专题-基础篇
  • Vue具名插槽
  • Linux(13)——Ext系列文件系统
  • Now formdata是什么?如何使用
  • RT-Thread内核组成——内核移植
  • MySQL(61)如何进行数据库分区?