【Unity ASE学习笔记】

本文详细介绍了Unity中的Amplify Shader Editor (ASE)工具,对比了ShaderForge和ShaderGraph,并提供了节点操作、贴图纹理、数学运算、自然光处理等核心知识点的学习概览,包括TextureSample、UV偏移、Fresnel等节点的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ASE:Amplify Shader Editor 一款材质工具

一、工具比较

1、Shader Forge

  • 停止更新,只支持Unity2017,以后的版本需要找到修改后兼容的包体
  • 不支持Unity URP和HDRP
  • 通用渲染管线复用性高

2、Shader Graph

  • 官方工具,不断更新完善
  • 支持Unity URP和HDRP
  • 默认渲染管线不可以使用

3、ASE

  • 收费工具,可以去找包体
  • 支持Unity URP和HDRP
  • 复用性高于Shader Forge
  • 代码简洁

二、ASE插件工具下载

三、ASE界面

快捷键操作:先按住快捷键不放,再点击ASE编辑区域。

Space:打开搜索面板
T:纹理样本
U:纹理坐标

主要工作区详解

在这里插入图片描述
在这里插入图片描述

四、节点

常用节点概览

在这里插入图片描述

4.1、贴图纹理

4.1.1. Texture Sample(贴图节点)

在这里插入图片描述
说明
Model:对象和引用
Type:属性和全局
Name:节点名称
Property Name: 变量名称
Default Texture: 白
Mip Mode:Mipmap设置
Unpack Normal Map:解压缩法线贴图
Default Value: 默认材质贴图

4.1.2. Texture Coordinates(纹理坐标)

UV采样节点,可以进行UV的控制
在这里插入图片描述

  • 该节点和ShaderForge里的UV Coordinates一致,用于输出模型的UV坐标,选中节点后,在左上方的Parameters里的Reference需要选中对应的图片,才可以在外部材质里的Tilling和Offset进行编辑贴图的平铺和位移,在UV Set下可以选择多达8套UV。
4.1.3、UV偏移器(Panner)

UV偏移器

  • UV:传入贴图的UV坐标信息
  • Speed:传入二维向量,用于控制x轴、y轴的偏移
  • Time:传入时间选择器,可自动产生偏移运动
    List item
4.1.3、Rotator(旋转)

在这里插入图片描述

  • 该节点将会把输入的UV或者2维量围绕你所定义的Anchor点进行旋转,需要输入Time动态时间,不然会固定住,不会旋转。
  • 对于Anchor值,旋转的中心点(0,0)是UV左下角(1,1)是UV右上角。

4.2、常数节点(一维变量、二维变量、三维变量、四维变量、颜色变量)

在这里插入图片描述

4.3、四则运算(+ - * /)

在这里插入图片描述

  • Add:A+B
  • Subtract:A-B
  • Multiply:A*B
  • Divide:A/B

4.4、Set、Get、(注册、获取)

在这里插入图片描述

4.5、通道(附加Append、组件遮罩Component Mask、组件拆分Break To Components)

在这里插入图片描述

4.6、数学运算

在这里插入图片描述

4.6.1、ABS(绝对值)

在这里插入图片描述
在这里插入图片描述

4.6.2、 One Minus(1-x)

在这里插入图片描述
在这里插入图片描述

4.6.3、Power (幂)

在这里插入图片描述
在这里插入图片描述
Power幂:
Base:底数
Exp:幂指数

4.6.4、Lerp(线性插值)

在这里插入图片描述

Lerp线性插值:
以Alpha数值为标准,输出A和B之间的线性插值,Alpha为1时输出B,0时输出A,0.5时AB各一半。
y=(1-Alpha)*A + Alpha * B

4.6.7、Clamp(约束:Min和Max的数值可以自定义)

在这里插入图片描述
Clamp约束:
截取输入值,并将其约束到Min和Max两个数值中间,
如果输入值<0,则输出0,
如果输入值>1,则输出1。

4.6.8、Remap(重映射)

在这里插入图片描述

  • 将值从一个范围重映射到另一个范围。
  • 例如:Sin函数是在[-1,1]之间变化的,我们可以通过重映射将[-1,1]变化为[0,1],这样就不会有负值情况了。
4.6.9、Step(阶梯函数:非黑即白)

在这里插入图片描述
常用于硬溶解效果。
如果A<=B,则输出1,
如果A>B,则输出0。

示例1:
使用一维变量设置0-1.05(防止图片为1时溶解不掉)
效果:
在这里插入图片描述
示例2:
如果A输入图片上的这个区域亮度<=B输入图片上的对应区域,则这块区域输出白色,反之,则输出黑色。
效果:
在这里插入图片描述

4.6.10、SmoothStep(平滑阶梯函数)

在这里插入图片描述
如果输入值在Min和Max之间,则输出0和1之间的平滑Hermite插值,
如果Max大于Min,则在输入小于Min的时候,输出0,在输出值大于Max时,输出1。
效果:
在这里插入图片描述

4.7、自然光处理

4.7.1、Fresnel(菲涅尔折射)

在这里插入图片描述
World Normal:世界法线
View Dir:摄像机方向
Bias:底色
Scale:倍率。边缘亮度
Power:指数。数值越大,边缘越细

数学原理:

在这里插入图片描述

等效写法:

在这里插入图片描述

 Abs与Saturate节点属于优化项,优化原Fresnel节点造成的闪点现象
示例:

在这里插入图片描述

在这里插入图片描述

效果:
在这里插入图片描述

4.8、噪声生成

4.8.1、Noise Generator

在这里插入图片描述

Scale: 噪声尺寸大小

生成噪声图
在这里插入图片描述

4.8.2、Voronoi

在这里插入图片描述

Angle:旋转角度
Scale: 噪声尺寸大小
使用示例:
在这里插入图片描述

4.9、深度测试

4.9.1、Depth Fade

与物体相交返回0,未相交返回1
在这里插入图片描述
在这里插入图片描述
示例

链接

4.10、顶点

4.10.1、Vertex Color(顶点颜色)

在这里插入图片描述
粒子系统中的颜色修改器都是基于顶点颜色来进行计算的,如果材质只算了贴图,没有算顶点颜色,那么在粒子系统中无法修改图片的颜色节点

顶点颜色与软粒子效果
顶点颜色

请添加图片描述

软粒子

如果粒子没有软粒子效果,那么发射出来就是这种与地面有切边
请添加图片描述
加上Depth Fade(深度渐变)就不会有切边
请添加图片描述

知识点待学习:

这些都是啥?

在这里插入图片描述

内置的渲染器,HD,URP和轻量级SRP支持 NEW!HDRP矢量位移样本 新!URP和HDRP的镶嵌选项 新!URP的半透明和透射选项 新!新的“开始屏幕”窗口 NEW!轻松的图形共享和画布截图按钮 新功能!SRP包自动导入程序 NEW!与Unity 2019的兼容性 新!支持后期处理堆栈着色器 新功能!与Unity插件中的Substance 兼容 !支持自定义渲染纹理 新增!同时支持高清,URP和轻量级SRP 。多遍模板 !Xbox One / PS4 / Switch支持 新增!地形支持 NEW! 着色器模板 •通用PBR /未照明SRP •通用2D点亮/未照明SRP •HD点亮/未照明/头发/织物/贴花SRP •轻量PBR /未照明SRP •自定义RT初始化/更新 •后处理效果,包括后处理堆栈 • Alpha混合颗粒 •雪碧 •熄灭 •不亮光照贴图 •UI 新工具 •后处理堆栈工具 新样本 •HDRP向量位移 •独立于比例的图块 • Raphael Ernaelsten的体积像素化 •SRP HD全贴图 •马赛克效果 •未使用光照贴图 新模板 •通用PBR /未照明 •HD点亮/ 未照明/毛发/织物 •后处理堆栈 •未照明光图 新节点 •反投影矩阵 •反视图投影矩阵 •HD发射 •Voronoi •渐变 •渐变样本 新增的着色器功能 •反勒普 •随机范围 •SRP附加光 •流量 •旋转 •高处法线 •噪声正弦波 •锯齿波 •方波 •三角波 •棋盘格 •椭圆 •多边形 •矩形 •圆角矩形 最新改进 •添加了专门用于新通用渲染管线的 模板•添加了与Unity HDRP着色器检查器兼容的新HD Lit模板 •无限循环检测现在更快,减少了连接大型图形上的节点时的命中率。 •改进了节点预览渲染刷新行为 •创建了新的标记系统以改善节点搜索 •只需单击“屏幕截图”按钮即可获取整个画布的屏幕截图 •通过“共享”按钮轻松共享图形的选定部分 •添加了新的后处理堆栈工具它会使用给定着色器的PPS渲染器和设置生成cs脚本。 •Amplify Shader Editor通过高达v7.2.x的模板支持HD,Lightweight和Universal RP。 •Legacy HD和Lightweight SRP v3.xx / v4.xx / v5.xx模板也通过Legacy软件包提供。 •通过自定义RT模板支持在Unity 2017及更高版本上使用自定义渲染纹理。 •现在,也可以通过Unity插件中的Substance,在Unity 2018及更高版本的ASE画布上使用此Substance。 •现在在Unity 2018.2及更高版本上可以访问8个UV通道。 •可以通过键盘方向键平移和缩放ASE画布摄像机。 •支持HD PBR SRP模板中的材料类型。 •支持将Specular工作流程集成到Lightweight PBR SRP模板中。 •现在可以直接在模板上添加自定义选项。 了解更多: 在此处放大Wiki 讨论:Unity论坛线程 着色器示例:完整列表 编辑器在将来的更新中将继续得到改进,当前正在开发许多功能。 显着功能 •完整的源代码 •支持Xbox One / PS4 / Switch • 自定义节点API • 着色器模板 • 着色器功能 •多窗口支持 •直观,熟悉的节点界面 •广泛的节点库 •实例化支持 •用户贡献的节点和着色器 •不断增加的样本收集
### Unity Shader Graph ASE 和 URP 教程及相关问题 在Unity中,Shader Graph 是一种可视化工具,允许开发者通过节点编辑器创建自定义着色器而无需编写代码。当与 Universal Render Pipeline (URP) 结合使用时,可以实现更高效的图形渲染效果[^1]。 #### 创建基于 URP 的 Shader Graph 材质 为了设置一个支持 URP 的 Shader Graph: 1. **安装 URP** 需要先确保项目已经配置了 Universal RP 资源包。这可以通过 Package Manager 安装完成。 2. **新建 Shader Graph** 右键点击 Project 窗口中的 Assets 文件夹 -> Create -> Shader -> Universal Render Pipeline/Lit 或 Unlit 类型的 Shader Graph。 3. **配置材质球** 将新创建好的 Shader 拖拽到 Materials 中生成 Material,并将其应用给 Mesh Renderer 组件。 4. **调整光照模型** 在 Shader Graph 编辑界面内修改 Lighting Model 属性来适应不同场景需求,比如 StandardLit 支持基础反射特性。 ```csharp // 示例:切换不同的Lighting Models可以在脚本里动态改变Material属性 material.SetFloat("_ReceiveShadows", 0f); // 关闭阴影接收 ``` #### 常见问题及解决方案 - **性能优化** 对于大规模群体动画渲染而言,减少 Draw Call 数量至关重要。可通过 Instancing 技术让多个对象共享同一份顶点数据从而降低开销;另外还可以利用 LOD(Level of Detail) 功能,在远距离下简化网格结构以节省资源消耗。 - **兼容性处理** 如果遇到某些特效无法正常显示的情况,可能是由于所使用的 Post Processing Effects 不被当前版本 URP 所完全支持所致。此时应查阅官方文档确认具体原因并寻找替代方案或者等待后续更新修复该 bug。 - **纹理采样错误** 有时会发现 Texture Sample Node 输出的颜色不正确,这时应该检查 UV 参数是否传递无误以及贴图路径有没有拼写错等问题。同时注意纹理导入设置里的 Read/Write Enabled 是否开启,因为关闭的话可能会引起读取失败现象发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值