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

Unity | AmplifyShaderEditor插件基础(第十集:噪声的种类+火焰制作-中)

一、👋🏻前言

你现在看见的是一套非常系统的ASE入门学习教程,并不是心血来潮随心创作的。

up原来是初中物理老师(有教师资格证)后转入程序行业,认真学习过课程设计等相关知识,只要你认真的学每一篇文章,这将是一个轻松入门的shaderASE课程

注意按照专栏默认顺序阅读

课程使用Unity版本:6000.0.47f1

课程使用ASE版本:Amplify Shader Editor 1.9.8.1

大家好,我是菌菌巧乐兹~本节内容主要讲一下,shader中噪声的种类,通过噪声做一个很火焰相似的造型

二、思路

我们先观察一下火焰的形状

他是一个接近圆形,但是在往上动的形状,再看他有颜色的部分,像一个又一个不规则的窟窿眼。

所以我们的制作分以下几步:

1.制作圆形,中间清楚,四边模糊

2.制作不规则窟窿眼

3.颜色是下重上轻(制作梯度)

4.不规则动起来

三、制作圆形

这一步有两个方案都可以解决:

方案一:

画一个圆形的图,中间到四周是渐变,如下图所示(制作方式略,ps,ppt什么的都能画)

方案二:

用ase中的代码画一个

你这里可以不学,这里涉及了一点数学,可以用上面的方案代替,但希望大家学会,为未来更多的数学打下基础。

1.我们有一个quad模型,就是一个平面,uv中间的点的坐标是(0.5,0.5)

2.我们计算其他点到这个点的距离,可以想象到,距离越近,离0越近,距离越远,离0越远,因为1是白色,0是黑色,我们可以画出一个图,代表从中心到四周的距离

3.把0和1翻转一下,就是黑色和白色翻转一下,就可以变成如下图所示

这样就画成了一个圆

方案二的实际制作

1.新建一个vector2把顶点中心数据写出来

2.拿到贴图的其他顶点坐标

注:VertexTexCoord是什么?

之前我讲过uv贴图是什么,当uv贴图贴到模型上之后,每一个模型顶点都会对应一个uv坐标。这个uv坐标就是vertexTexcoord。在绝大多数时候,uv坐标的值都是在0-1之间,所以vertexTexcoord的值也是0-1之间,并且左下角是(0,0),右上角是(1,1)

3.节点Distance

distance节点是计算两个点距离的节点,把他们连起来就得到了初步的圆

4.节点smoothstep

因为上面的圆中间太小了,两边也太灰了,我们希望稍微改变一下

(中间太小了,意味着0太少了,两边灰,说明两边的1太少了)

节点smoothstep介绍

看输入值在不在这个最大值和最小值之间,如果比最小值小,就等于最小值,如果比最大值大,就等于最大值。如果在他们之间,就拉一条曲线,根据曲线来输出个值

例如,min = 0,max=1,就在0和1之间拉一条曲线,如果这时输入值是0.7,那么根据曲线,输出值是0.8

通过smoothstep节点,可以调节一下你希望的圆的大小,这里可以自己调试,最后菌菌兹调试的结果如图所示。

5.图像转换

因为0乘任何数为0(黑色),相当于图片消失了,1乘任何数为1,相当于保持不变,火焰是中间有颜色,两边消失,所以我们要把黑白翻转,相当于0和1翻转,方法就是用1去减【0,1】之间的数,就反转了,如下图所示

这样,我们的圆圈就做完了

四、不规则窟窿眼制作

不规则的窟窿眼是用噪波制作的,ase中的噪波有5种,之前讲过4种,在如下链接。

Unity | AmplifyShaderEditor插件基础(第八集:噪声波动shader)_unity 噪声波动shader-CSDN博客


这里再介绍一种噪声Voronoi

噪声Voronoi

Voronoi噪声就像在平面上撒一堆“种子”,然后让每个种子向外扩张自己的“领地”,最终形成一块块像蜂窝或拼图一样的图案。所以也叫细胞噪声。如下图所示。

这里面最主要的几个参数(其他用到再说):

  • Scale:相当于种子的数量。种子越多,细胞越多

  • Angle:相当于你拿个玻璃棒进去搅动,在数字变化时,他会改变位置

  • unity's Voronoi:unity也有这个东西,和ase算出来的图像不太一样,就看你用哪个

制作窟窿眼

因为火焰一般是有边缘感的,所以我们把voronoi噪声用上,又因为一个噪声太规则了,火焰是不规则的,所以我们需要把两个噪声拼到一起。

这里都是讲过的制作方式,直接就上图了。

1.阶梯噪声设置

2.细胞噪声设置

3.把他们拼装在一起

这样就有火焰那味了。

五、结语

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

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

http://www.lqws.cn/news/494605.html

相关文章:

  • 如何将进度传给前端呢
  • UI设计 | 审美积累 | 极繁风格(Maximalism / Complex UI)
  • 左神算法之给定一个数组arr,返回其中的数值的差值等于k的子数组有多少个
  • leetcode题解77:组合(回溯算法的门面)
  • STM32 串口通信②:蓝牙模块HC-05控制单片机
  • python常用的正则表达式及作用
  • 编程江湖-正则表达式
  • vue3 el-table row-class-name 行字体颜色失效
  • Spring Cloud微服务
  • MM-AttacKG:一种使用大型语言模型构建攻击图的多模态方法
  • GitLab 17.8 备份秘籍:快速获取纯 Git 仓库与核心配置
  • 兆瓦闪充技术革命:解码新能源汽车补能赛道的技术跃迁与从业机会图谱
  • 60天python训练计划----day56
  • 左神算法之二叉树的个数
  • 数据标注师学习内容
  • Domain 层完全指南(面向 iOS 开发者)
  • 【数据结构初阶】--顺序表(一)
  • FPGA基础 -- Verilog 验证平台
  • 《哈希表》K倍区间(解题报告)
  • 论文略读:ASurvey on Intent-aware Recommender Systems
  • 13-MCP4725-带 EEPROM 存储器的 12 位数模转换器
  • DeepSeek中的提示库及其用法示例
  • AI编程再突破,文心快码发布行业首个多模态、多智能体协同AI IDE
  • leetcode543-二叉树的直径
  • Flink SQL执行流程深度剖析:从SQL语句到分布式执行
  • 【Linux学习笔记】进程间通信之共享内存
  • Kimi“新PPT助手” ,Kimi全新自研的免费AI生成PPT助手
  • 金融行业B端系统布局实战:风险管控与数据可视化的定制方案
  • 深入理解PHP中的面向对象编程
  • 电脑的虚拟内存对性能影响大吗