在2018.1中,Shader Graph作为Unity的新功能,以预览版的形式呈现。通过ShaderGraph可以直观地构建着色器。可以在图形界面中创建和连接节点,而不需要编写代码。图中的每个节点都可以对更改即时反馈,大大降低了编写着色器的门槛。
Unity2018.2也对ShaderGraph(3.0.0)进行了很多优化和改进,包括:
高清渲染管道(HDRP)支持
Shader Graph现在支持PBR和Unlit主节点的HDRP。使用ShaderGraph构建的着色器可与LWRP和HDRP一起使用。
顶点位置
现在可以通过PBR和Unlit主节点上的Position栏位修改顶点位置。默认情况下,此节点的输入是对象空间位置。此栏位应该输入给定顶点的绝对本地位置。某些节点(例如程序形状Procedural Shapes)在顶点着色器中不可行。此类节点与此栏位不兼容。
主节点设置
主节点的设置现在可在一个小窗口中使用,可以打开和关闭该窗口来更改着色器的各种渲染设置。
属性引用名称和公开状态
现在可以编辑属性的引用名称,从而更容易从脚本引用着色器属性。选择属性并在Reference旁边设置新名称。如果要重置为默认名称,请右键单击Reference,然后选择 Reset Reference。
在属性窗口中,现在还可以切换Exposed复选框,来设置属性是否公开。
可编辑路径
现在可以更改着色器图和子图的路径。更改着色器图形的路径时,将修改其在着色器选择列表中的位置。更改子图的路径时,它将在节点创建菜单中具有不同的位置。
Is FrontFace节点
使用此节点,你可以根据给定片段的朝向标识更改图形输出。如果当前片段是正面的一部分,则节点返回True。对于背面,节点返回False。注意:此功能需要在主节点上启用双面。
渐变节点
通过两个新节点添加了渐变功能。Sample Gradient节点使用给定的Time参数对渐变进行采样。您可以在渐变栏位控件视图上定义此渐变。Gradient Asset节点定义了一个渐变,可以使用不同的时间参数对多个Sample Gradient节点进行采样。
Texture3D和Texture2D数组
通过两个新属性类型和四个新节点扩展了Unity对Texture类型的支持。可以在着色器图中定义和采样Texture 3D和Texture 2D Array类型资源。
Texture2D LOD节点
这个新节点为Texture 2D Sample添加了LOD功能。Sample Texture 2D LOD使用与Sample Texture 2D相同的输入和输出栏,但包括通过Vector1输入参数调整细节级别的输入。
显示生成的代码
现在可以看到任何特定节点的生成代码。右键单击该节点,然后选择Show Generated Code。代码段将在Unity的代码编辑器中打开。