Unity可视化Shader工具ASE介绍——1、ASE的介绍、安装和简单使用

2024-03-15 00:40

本文主要是介绍Unity可视化Shader工具ASE介绍——1、ASE的介绍、安装和简单使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阿赵的Unity可视化Shader工具ASE介绍目录

  大家好,我是阿赵,接下来我打算介绍一下Unity引擎的一个好用的可视化Shader编辑插件。这个插件叫做Amplify Shader Editor,下面都会简称为ASE。这一篇主要是讲一下这个插件的获取、安装,和一些简单的界面用法介绍。之后有机会,再深入的介绍其他的用法。

一、ASE的获取

  ASE插件是一个收费的插件,可以在Unity的Asset Store上面获取。
在这里插入图片描述

二、插件导入

  购买了ASE之后,把它导入到项目,会弹出欢迎页面,里面有版本更新说明、资源例子和说明手册等的信息。
在这里插入图片描述
在这里插入图片描述

  然后会在项目里面多了一个AmplifyShaderEditor的文件夹,里面有一个Examples例子文件夹,和一个Plugins插件文件夹,还有几个说明文档。

三、自带例子

  如果你只是想使用 ASE,那么Examples文件夹其实是可以删掉的。不过我觉得这个例子文件夹里面有很多好东西,可以教会我们很多效果的做法。
在这里插入图片描述

  这些看着是Unity图标的文件,并不是Unity的场景文件,而是Package包,所以双击它们,可以把内容导入到当前项目。
在这里插入图片描述

  比如我这里全部导入完,会发现多了几个文件夹。Assets文件夹之前就有,但里面会多了一些资源。可以看出,ASE可以应用于多种管线的Shader编写,比如HDRP或者URP都可以。
在这里插入图片描述

  这些例子里面会附带一些美术资源,比如这种场景环境的模型
在这里插入图片描述

  还有一些用于展示效果的模型
在这里插入图片描述

  然后里面有非常多的例子,每个例子里面都有场景文件,可以打开来看,然后里面还有Shader和材质球。
在这里插入图片描述
在这里插入图片描述

四、编辑器界面介绍

  这里我随便选择了一个例子,选择里面的材质球,会发现在Inspector面板上面的材质球属性,多了一些按钮。点击一下Open in Shader Editor按钮,就可以打开ASE的节点编辑器。
在这里插入图片描述
在这里插入图片描述

  这一篇文章先来介绍一下这个节点编辑器的各个部分,之后还会另外写文章深入介绍各种功能。

1、属性栏

  在最左边,有一个属性栏。根据我们选择不同的节点,这个属性栏会相应的显示该节点的属性。比如我选择一个输出节点,那么这里就显示了输出节点的属性和选项。
在这里插入图片描述

  然后我选择了一个UV节点,那么相应的这里会变成UV节点的内容。
在这里插入图片描述

2、保存按钮

  在编辑过任何东西之后,会发现左上角的Shader名称后面多了个星号,这是代表当前的Shader还没有保存,如果想保存,可以点击保存按钮。
在这里插入图片描述

3、Shader代码查看

  ASE编辑完节点之后,最终还是会生成一个Shader文件的,所以可以通过点击这个按钮来查看Shader代码。
在这里插入图片描述

  我觉得这是ASE的一个非常好的功能。它生成的代码比较的整齐,可阅读性比较高。而且一些功能比较复杂的节点,有时候我们忘记了具体的代码写法,可以通过ASE生成代码,来查看实现的源码。
在这里插入图片描述

4、节点编辑区

  中间区域是ASE的节点编辑区域,我们主要就是在这个区域来创建节点,连接节点,然后得到我们想要的效果。
在这里插入图片描述

  这里有一个比较厉害的地方,大部分节点的右边都有个小三角,点击可以展开,展开后,可以在节点界面就预览到了节点连接之后的效果。这对于查错时是非常好用的,因为如果手写Shader,发现效果不对的时候,没有办法很直观的知道问题出现在哪里。但在ASE,我们可以直观检查每一个节点当前的效果,很容易知道是哪一步开始出现问题。
在这里插入图片描述

5、辅助工具

  节点编辑区域的右上角有一排辅助按钮,我是比较少用到的,包括了分享链接、截图、居中节点之类的功能
在这里插入图片描述

6、节点查找

  在整个编辑器的最右边,有一个可查找列表,里面列出了ASE自带的所有可用的节点。
在这里插入图片描述

  这个列表,在节点编辑区域鼠标右键点击,也可以出现的。
在这里插入图片描述

四、我对ASE的一些看法

  ASE是一个强大并且高级的可视化Shader编辑器,它的某些功能,甚至比UE的材质编辑器还要好用。
  不过我很少拿ASE编辑完Shader就直接使用在项目里面。原因是ASE毕竟是通过固有的模板去生成Shader代码,所以最终得到的Shader代码会比直接手写的冗余和复杂一些。我一般的做法是,先用ASE快速的把效果连接出来,然后查看生成的代码,再对代码进行一些优化,然后就可以使用了。
  ASE的优点除了出效果快,还内置有很多效果不错的节点可以使用,比如之前介绍过的视差偏移之类的节点。很多算法,实际上我是记不住的,但只要在ASE里面找到了相应的节点,生成代码之后,我就能用了。所以很多时候,我会把ASE当做是一个工具书一样的去查询。
  不过,ASE并不会让不会编写Shader的人变得会编写Shader,因为它只是加快了编写过程,还有记录了很多常用的算法。同样一个效果,如果连接的方式不一样,最终的性能也是不一样的。我见过有些纯美术的同事,对着网上一些例子也连出了大概相似的效果,但实际生成的Shader是完全没法用的,甚至出现了问题,他们也不知道问题出在哪里,更没有办法解决。
  所以,它只是一个好用的工具,但在不懂手写Shader的前提下,最好还是别用。

这篇关于Unity可视化Shader工具ASE介绍——1、ASE的介绍、安装和简单使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/810259

相关文章

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

MySQL 衍生表(Derived Tables)的使用

《MySQL衍生表(DerivedTables)的使用》本文主要介绍了MySQL衍生表(DerivedTables)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录一、衍生表简介1.1 衍生表基本用法1.2 自定义列名1.3 衍生表的局限在SQL的查询语句select

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H