【#Unity Shader#Amplify Shader Editor(ASE)_第七篇】

简介: 【#Unity Shader#Amplify Shader Editor(ASE)_第七篇】

1.使用Amplify Shader Editor(ASE)_创建标准Shader


在Shader Name中定义Shader的名称“Surface/Standard Shader-ASE”

类型(Shader Type)保持默认的Surface Shader

光照模型(Light Model)使用Standard Specular

其他设置保持默认即可。


1.1.Albedo


节点及线路如图:

添加Texture Sample 节点,

为了与后续添加的其他纹理节点区分开,


1.将名称设置为“Albedo”;

2.Default Texture保持默认的“White”不变,

3.为了在属性中通过一个二维向量控制所有纹理的平铺值,

Texture Sample 节点设置如下图:

  • 开启节点的“No Scale Offset” 选项,这样在材质面板上就隐藏Tiling和Offset 。
  • 将纹理节点与颜色节点相乘,颜色节点的名称设置为“Albedo Color”,默认值为纯白色,乘积连接到Output面板的Albedo上。
  • 使用这种方法可以通过颜色节点进一步更改Albedo的颜色。
  • 并且在使用的时候,假如纹理节点没有制定纹理贴图,那么“Albedo Color”属性的颜色就是Albedo的颜色。


1.2.Normal


节点及线路如图:

  • 1.添加Texture Sample 节点,名称设置为“Normal”。
  • 2.由于需要使用法线贴图,因此将节点的Default Texture 设置为“Bump”
  • 3.开启“Unpack Normal Map”选项。开启之后,节点上会出现“Scale”接口。

  • 5.将Float节点连接到Scale上,用于控制法线效果的强度;
  • 6.Float节点名称设置为“Bumpiness”,
  • 7.最小最大值分别为-2、2,这样数值就变成滑动条。


1.3.Emission

如上图,自发光(Emission)效果的连接方式跟Albedo类似,自发光(Emission)需要把颜色节点的“Default Value”设置成黑色(也即物体默认不发光)。默认情况下,颜色属性每个分量的数值区间为[0,1],而自发光的亮度有时候会超过1,因此还需要开启颜色节点的“HDR”选项,这样在使用的时候就可以设置亮度大于1的颜色。


1.4.Specular


在Unity内置的Standerd Specular中,Specular于Smoothness信息同时取自同一张纹理贴图,其中rgb通道的颜色信息为Specular,a通道的亮度信息为Smoothness。


Specular部分也是与Albedo类似的连接方法,只是需要物体默认是没有镜面反射的,因此将Specular Color颜色节点的“Default Value”设置为黑色。

对于光滑度来说,白色表示绝对光滑,黑色表示绝对粗糙。


因此通过将纹理的a通道与一个名称“Smoothness”的Float节点相乘,用于控制灰度图的亮度,从而控制光滑度。如果需要物体表面默认是绝对粗糙,那么将Float节点的“Default Value”设置为0,并且限制数值的输入为[0,1]。


1.5.Ambient Occlusion


Ambient Occlusion(AO)的链接方法与其他输出节点不一样。


  • 1.Ambient Occlusion(AO)被称为环境光遮挡,用于控制物体对间接照明的接受程度,信息以灰度值进行保存,白色表示完全接受间接照明,黑色表示完全不接受间接照明。
  • 2.在Unity内置的Standard和Standard Specular材质处理逻辑:

- a).当没有关联AO贴图时,模型完全接受间接照明(也即贴图默认颜色为白色)

- b).当关联AO贴图之后,又可以通过一个数值进行控制。数值为1的时候模型按照贴图计算AO,数值为0时模型完全接受间接照明(也即白色)。


如图:

添加Lerp 节点,A输入为白色,B输入链接AO贴图,然后通过一个Folat对A、B进行线性插值。

案例中是希望默认使用的是AO贴图,因此Float节点的“Default Value”设置为1,并且限制数值的输入范围为[0,1]。最终将插值结果链接到Output节点的AO上。


1.6.Texture Coordinate


如图:

使用Append节点将两个Float节点(名称分别是Tiling_X和Tiling_Y)合成二维向量。

然后链接到Texture Coordinate 节点的Tiling上,再链接到所有Texture节点的UV上。

以实现控制纹理贴图的平铺值。


1.7.属性排序&设置面板展示


属性排序的调整主要是方便后续调节材质效果。

在本篇第一张图的左下角可以找到Material Properties列表,Shader中开放出的属性都会在这里显示,拖动属性图标可以更改属性排序。完成排序后保存。

保存后,下面就是本篇Shader最终在材质面板所显示的:

这个Shader会跟Unity内置的Standard Specular Shader效果一致。

相关文章
|
15天前
|
图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第九篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第九篇】
|
15天前
|
图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第八篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第八篇】
|
15天前
|
Serverless 图形学 计算机视觉
【#Unity Shader#Amplify Shader Editor(ASE)_第六篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第六篇】
|
15天前
|
图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第五篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第五篇】
|
15天前
|
图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第四篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第四篇】
|
15天前
|
图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第三篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第三篇】
|
2月前
|
存储 Linux 编译器
vim编辑器和gcc/g++编辑器的使用讲解
vim编辑器和gcc/g++编辑器的使用讲解
54 2
|
2月前
|
Linux 编译器 开发工具
Linux:详解(yum的使用、vim编辑器命令集合以及gcc/g++编译器的使用)
Linux:详解(yum的使用、vim编辑器命令集合以及gcc/g++编译器的使用)
122 1
|
2月前
|
Linux Shell 开发工具
【linux】Linux编辑器-vim
【linux】Linux编辑器-vim
40 0
|
4月前
|
Linux 开发工具
linux vim-编辑器常用指令
linux vim-编辑器常用指令
31 0