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.pswp.cn/pingmian/86390.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始的二三维CAD|CAE轻量级软件开发:学习以及研发,Gmsh的脚本编辑器设计!

背景: 痛点: 1.编写.geo脚本, 没有智能提示很头大; 2.没有高亮显示很头大! 在数值仿真过程中,大家离不开gmsh这个软件,而在学习的过程中,也离不开要编写.geo脚本, 写这种脚本麻烦的要死,那么多脚本函数要记? 反正写的很头大, 所以,既然为了方便大家,也为了方便自己,不如自…

ModerationModel温和模式

ModerationModel能够对内容进⾏合规检测,屏蔽那些不合规的内容。未来如果你的⼤模型应⽤需要对外提供 服务时,合规就是⼀个必须的标准。 1、代码 import dev.langchain4j.model.moderation.Moderation; import dev.langchain4j.model.moderation.Modera…

OpenDeepWiki:AI代码对话新纪元

OpenDeepWiki 现已支持更智能的多轮对话能力,让您可以与代码库进行深入交流,像与真人对话一样理解代码逻辑和架构。新的对话系统能够保持上下文连贯性,理解复杂查询,并提供更精准的回答。 系统接入能力 现在您可以轻松将 OpenDeep…

Ubuntu安装Docker部署Python Flask Web应用

一、Ubuntu安装Docker 下面是具体的步骤: 1.准备条件:安装前先卸载操作系统默认安装的docker,再安装必要支持。 #安装前先卸载操作系统默认安装的docker, sudo apt-get remove docker docker-engine docker.io containerd runc#安装必要支持…

7. 实现接口多重断言pytest-assume

pytest-assume 终极指南:实现多重断言的无缝验证 在自动化测试中,单个测试往往需要验证多个条件。本文将深入解析如何通过pytest-assume插件优雅解决多重断言问题。 一、为什么需要多重断言? 传统断言的局限性 def test_user_profile():use…

HTML 按钮单击事件示例

# HTML 按钮单击事件示例 以下是几种不同的方式来实现按钮的单击事件&#xff1a; ## 1. 最简单的 HTML 按钮单击事件 html <!DOCTYPE html> <html> <head> <title>按钮单击事件示例</title> </head> <body> <!-- 方法…

Kamailio SIP+RTP双网卡SBC呼叫流程与媒体处理说明

本文档旨在详细解释基于提供的 kamailio_sbc_dual_nic.cfg 配置文件&#xff0c;在双网卡SBC&#xff08;Session Border Controller&#xff09;场景下&#xff0c;Kamailio (5.8.3) 如何与rtpengine协同工作&#xff0c;处理SIP信令以及音频、视频和RTCP媒体流的转发。该方案…

青少年编程与数学 01-012 通用应用软件简介 15 人工智能助手

青少年编程与数学 01-012 通用应用软件简介 15 人工智能助手 一、什么是人工智能助手二、人工智能助手的产生和发展&#xff08;一&#xff09;早期探索阶段&#xff08;二&#xff09;技术突破阶段&#xff08;三&#xff09;广泛应用阶段 三、人工智能助手的主要功能&#xf…

JavaWeb学习——day9(图书管理系统初级)

文章目录 1. 项目功能模块设计1. 登录与权限控制&#xff1a;2. 图书管理功能&#xff08;仅管理员&#xff09;3. 用户功能&#xff08;普通用户&#xff09;&#xff1a; 2. 数据库设计3. 具体功能实现步骤步骤 1&#xff1a;扩展 UserService 来管理角色步骤 2&#xff1a;修…

【设计模式】策略模式 在java中的应用

文章目录 概述策略模式的定义与应用场景定义应用场景 策略模式的核心设计思想 策略模式的纯Java实现1. 定义策略接口&#xff08;抽象基类&#xff09;2. 设计具体策略类3. 通过示例代码理解策略模式的基本用法 策略模式的优缺点与扩展性分析1. 策略模式在设计中的优势2. 如何让…

Container

目录 一、Containerd 概述 1. 什么是 Containerd 主要特点和功能&#xff1a; 2. Containerd 的起源与背景 二、Containerd 架构 1. 架构概述 2. 核心组件解析 &#xff08;1&#xff09;Storage&#xff08;存储&#xff09; &#xff08;2&#xff09;Metadata&…

C#设计模式-Builder-生成器-对象创建型模式

using System; using System.Collections.Generic;namespace A4_Builder_生成器_对象创建型模式 {// 产品类&#xff1a;最终要构建的复杂对象public class Computer{public string CPU { get; set; }public string GPU { get; set; }public int RAM { get; set; } // GBpublic…

C语言堆内存管理详解:malloc和free的使用指南

在C语言程序设计中&#xff0c;内存管理是一个重要的话题。本文将详细介绍堆内存的分配和释放&#xff0c;重点讲解malloc和free函数的使用方法&#xff0c;并通过实例说明相关注意事项。 一、堆内存与栈内存的区别 在C语言中&#xff0c;内存主要分为堆内存和栈内存&#xf…

探索 Oracle Database 23ai 中的 SQL 功能

探索 Oracle Database 23ai 中的 SQL 功能 介绍目标前提条件 功能 1&#xff1a;使用 FROM 子句功能 2&#xff1a;使用 BOOLEAN 数据类型功能 3&#xff1a;使用 IF NOT EXISTS DDL 子句功能 4&#xff1a;使用 INSERT 插入多行功能 5&#xff1a;使用新的 VALUE 构造函数功能…

SQL(6)

! 会排除null数据 select name from Customer where referee_id ! 2 or referee_id is null; 交叉联结 交叉连接&#xff08;CROSS JOIN&#xff09;-CSDN博客 197. 上升的温度 select a.id from weather as a cross join weather as b on datediff(a.recordDate ,b.recordD…

【Java面试题】cookie、session、jwt/token的异同

以下是对Cookie、Session、Token与JWT的异同的完善分析&#xff0c;结合技术原理、安全性和应用场景进行系统性对比&#xff1a; &#x1f50d; 一、核心概念与工作流程 机制定义工作流程核心特点Cookie客户端存储的小型文本数据1. 服务器通过Set-Cookie响应头下发数据2. 浏览…

数字经济时代科技创业的巨大潜力

2025年3月&#xff0c;42岁的字节跳动创始人张一鸣以655亿美元身家成为中国新首富。这位"80后"企业家白手起家的故事&#xff0c;展现了数字经济时代科技创业的巨大潜力。本文将带您了解张一鸣的成功秘诀&#xff0c;分析网络安全行业的最新趋势&#xff0c;并为计算…

深入剖析Nginx架构及其不同使用场景下的配置

一、Nginx 整体架构概览 1. Nginx简介 Nginx 是采用 C 语言 编写的高性能 Web 服务器、反向代理服务器及邮件代理服务器&#xff0c;特点是&#xff1a;高并发、高可用、低内存占用、模块化设计。 架构核心理念&#xff1a; Master-Worker 多进程模型 事件驱动&#xff08;…

单元测试详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 对于软件测试&#xff0c;我们先按照开发阶段来进行划分&#xff0c;将软件测试分为单元测试、集成测试、系统测试、验收测试&#xff0c;下面我们来聊聊单元测试。…

四款好用的Windows虚拟打印机,文档转PDF

1&#xff0c;Microsoft Print To PDF 2&#xff0c;Foxit Reader PDF Printer 3&#xff0c;Adobe PDF 4&#xff0c;clawPDF 参考文档&#xff1a; https://mp.weixin.qq.com/s/_mt4J2RwhqQE36DRAvc-Rg