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

Unity | AmplifyShaderEditor插件基础(第八集:噪声波动shader)

目录

一、👋🏻前言

二、😈噪声波动的基本原理

三、😈噪波制造器

1.噪波节点

2.TextureCoordinates 纹理坐标

3.制作噪声

四、🍃飘动的旗子

五、噪音介绍

六、结语


一、👋🏻前言

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

效果预览:

准备阶段(略):
1.新建一个plane

2.写shader放上去,模版还是用之前的lit

3.shader如图所示

4.图片资源(自己复制自己用,放进去有拉伸就自己扯一下plane的大小)

二、😈噪声波动的基本原理

在上一集当中我们讲过,波动的本质是根据x的值动态的改变y的值

但sinx,只能收一个值,并且只要这个值一样,则输出的y值一样

如果我们希望有示例那样的动态波动,我们就需要采纳两个值,一个x和一个y,A点的x和y和B点的x和y值不一样时,我们就能得到两个不一样的偏移y

三、😈噪波制造器

1.噪波节点

备注:如果你没有灰色的方块,点击右上角的小三角就行

 噪波的节点就是给一个x和y,通常我们会接入uv值

2.TextureCoordinates 纹理坐标

textureCoordinates 纹理 = uv坐标,他俩是一个东西

如上图所示,可以连图片,连到tex上,如果连上了就直接用图片的uv坐标还有tiling和offset

如果tex没有连,就用默认的uv坐标,并且可以调tilling和offset,如下图所示

结论:我们提供一个默认的uv坐标就可以了,默认就是一个简单的(0,0)→(1,1)的uv坐标

3.制作噪声

用默认的uv坐标,给到噪声制造器,来制作噪声

红框部分,就是不同的uv值自作出来的噪声值,0或小于0是纯黑色,1或大于1是纯白色

这时你可以选择,是希望范围是-1到1,还是0-1,他们输出的噪声是不一样的

备注:

up喜欢用0-1之间,因为图像比较直观,0就是黑的地方,1就是白的地方,其他就是过渡

可以想象一下,旗子按照这个偏移,那么黑色部分就会是凹陷的地方,我们可以连接一下试试

凹陷的位置和上面的噪波差不多吧

如果用-1到1的图,会更明显


吐槽一下:全网应该没有讲的这么细的了吧,求点赞,求评论,求关注啊,一个字一个字打的~


四、🍃飘动的旗子

我们上次做sinx移动的时候,和这个很类似,用到了时间time节点

这次也需要用,在TextureCoordinates里有offset,是偏移uv的意思,之前的章节讲过,也就是只要这里输入连续的变动的vector2,uv就会滚动起来

time是一个值,不是二维的,所以我们让它乘以二维的数,就会变成二维。

例:2*(1,1)=(2,2)

所以我们新建一个vector2,起名叫speed,给一个你喜欢的数值,这个数值越大,vu滚动的越快

把它和time乘起来,如下图所示

最后再把他们都连起来

就可以得到飘动的旗子,如下图

五、噪音介绍

大家知道有sinx,还有cosx,还有tanx,输入相同的x值,会得到不同的结果

噪声也有不同的,如下图所示


       

simple噪声【低级】

最简单的噪声,可以理解为随便生成一下,可能疙疙瘩瘩的,不自然,也不平滑,但它性能需求低

Gradient噪声【中级】比simple平滑自然的噪声
simplex2D噪声【高级】比gradient平滑自然的噪声,平滑到可以用来建地形之类的,所以性能消耗大
simplex3D噪声上面是2d的,这个是3d的,一般用来建粒子云什么的,性能消耗巨大

六、结语

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

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

相关文章:

  • Siri在WWDC中的缺席显得格外刺眼
  • day50python打卡
  • 通道注意力机制
  • spring jms使用
  • 上位机开发:C# 读写 PLC 数据块数据
  • 内存分配函数malloc kmalloc vmalloc
  • LeetCode 3442.奇偶频次间的最大差值 I:计数
  • gro文件和top文件介绍,以及如何合并两个gro文件或两个top文件
  • 天猫官方认证TP服务商——品融电商代运营全链路解析
  • WHAT - 组件库单入口打包和多入口打包
  • 基于FPGA的PID算法学习———实现PID比例控制算法
  • 大型活动交通拥堵治理的视觉算法应用
  • 如何保证RocketMQ消息不丢失
  • 《广度优先搜索》题集
  • 钉钉告警集成部署指南
  • ROS move base 简易调试
  • 在postgresql中,group by时取第一个值
  • AIGC 基础篇 Python基础 04 for循环与while循环
  • 华为仓颉语言初识:并发编程之同步机制(下)
  • 华为0528笔试
  • 安徽池州做企业网站/淘宝推广方式
  • 文化传播网站建设/单页网站
  • 网站全站开发/如何创建自己的域名
  • 如何做购物网站推广/上海整站seo
  • 大网站制作公司/seo优化的主要内容
  • 欧派整装大家居装修公司加盟/快速优化官网