Unity3d | ShaderGraph入门教程

本文首发于“洪流学堂”微信公众号。
洪流学堂,让你学Unity快人几步。你好,我是你的技术探路者郑洪智,你可以叫我大智(vx: zhz11235)。

洪流学堂公众号回复节点,获取ShaderGraph节点详解PDF文件(带目录)。

Shader一直是Unity开发者的一个难关,涉及到数学、图形学、shader语法等多个难题。不过,ShaderGraph来拯救你了!Unity2018的一个重磅功能是ShaderGraph,通过可视化界面拖拽就可以实现着色器的创建和编辑。

Unity3d | ShaderGraph入门教程_第1张图片
shadergraph可视化界面

配置使用ShaderGraph

目前最新版本Unity(2019.3)中的Shader Graph正式版支持URP(原LWRP)和HDRP,自定义的pipeline需要自行实现一些节点。

在Unity 2018后,Unity采用了PackageManager来管理Unity的众多新功能,包括Shader shader包和Lightweight Render Pipeline包。

1、下载最新的Unity(建议2019.1及以上版本),建议通过UnityHub安装,下载地址是:
MAC:https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.dmg
Windows:https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.exe

2、安装Lightweight Render Pipeline和ShaderGraph包。

在新工程中使用ShaderGraph

如果是新建工程,在新建工程时选择Universal Project Template或者Hight-Definition RP模板,工程中会自动包含ShaderGraph及其依赖的功能包。

Unity3d | ShaderGraph入门教程_第2张图片

URP和Hight-Definition RP是Unity新加入的两种可编程渲染管线,目前我们不用过多了解,知道如何使用即可。主要区别是:

  • URP适用于所有平台
  • Hight-Definition RP适用于PC或游戏主机等计算性能好的平台,对画质要求很高的画选这个,目前基本不支持移动平台

在已有工程中使用ShaderGraph

1、在已有工程中使用ShaderGraph需要手动安装安装Render Pipeline和ShaderGraph相关的包。

有两种方式:
1)在菜单栏Window > Package Manager打开Packages窗口。需要安装Shadergraph包和Universal RP包(2019.3之前叫Lightweight RP)。

Unity3d | ShaderGraph入门教程_第3张图片

2)通过手动设置Unity工程下Packages/manifest.json文件

Unity3d | ShaderGraph入门教程_第4张图片
manifest.json

目前通过Package Manager只能下载最新版本的包,而通过manifest文件可以设置使用任意版本的包。如果有时候新版本的包和Unity版本不兼容的话,可以通过manifest文件回退到之前的旧版本。

【常见问题1】Package Manager界面左下角一直在Loading怎么办?

这是由于国内的网络原因,通常切换网络即可解决。比如使用宽带无法加载出来时,可以尝试切换到4G/5G手机热点,如果再不行可以尝试翻墙。

大智这边切换到联通4G热点是可以刷新出来的。

Unity3d | ShaderGraph入门教程_第5张图片
【常见问题2】已有工程切换到URP/HDRP后材质都变成洋红色怎么办?

在菜单栏Edit > Render Pipeline > Universal Render Pipeline > Upgrade ...可自动更新工程中的材质。但是只能更新Unity自带的Shader,自定义Shader需要自己修改哦。

Unity3d | ShaderGraph入门教程_第6张图片

2、创建设置SRP(可编程渲染管线)

1)菜单栏Assets > Create > Rendering>Universal Pipeline Asset,会创建出来一个文件,这是渲染管线的配置文件。

Unity3d | ShaderGraph入门教程_第7张图片

2)在菜单栏 Edit > Project Settings > Graphics中设置刚才的SRP文件

Unity3d | ShaderGraph入门教程_第8张图片

经过这些设置,现在就可以开始使用ShaderGraph了!

创建ShaderGraph文件

通过菜单栏 Create > Shader > *** Graph 可以创建ShaderGraph文件,会在Project创建一个graph文件。

Unity3d | ShaderGraph入门教程_第9张图片

PBR Graph PBR图
Sub Graph 子图,用于创建一些可复用的节点
Unlit Graph 不受光照的图

ShaderGraph窗口

我们先创建一个PBRGraph来看一看。双击graph文件即可打开ShaderGraph窗口。

Unity3d | ShaderGraph入门教程_第10张图片

ShaderGraph的图是以节点和连线组成的,默认创建出来会有一个Master Node(主节点)。你可以通过把其他节点连接到Master Node来创造你想要的效果。

编辑节点的属性

如下图所示,你可以通过编辑默认的数值快速改变物体的表面属性。

修改节点属性

添加节点

添加纹理和其他复杂的交互操作,只要右键点击并选择“Create Node”。

Unity3d | ShaderGraph入门教程_第11张图片
创建节点

连接节点

通过拖拽对应的值即可创建连线。

Unity3d | ShaderGraph入门教程_第12张图片

创建输入变量

一个shader当然必不可少要有输入的变量了,这在ShaderGraph中也很简单。

Unity3d | ShaderGraph入门教程_第13张图片
创建输入变量

使用输入变量

你可以给输入变量设置一个默认值,方便调试。

Unity3d | ShaderGraph入门教程_第14张图片
给输入变量设置默认值

在Graph中使用这个变量也很简单,只需要将变量拖入图中,和其他节点创建连线即可。

Unity3d | ShaderGraph入门教程_第15张图片
使用输入变量

自定义预览模型

ShaderGraph右下角有一个预览窗口,可以选择内置的5种和自定义的模型来更好的预览Shader的效果。

自定义预览模型

材质球使用Shader

Shader调好以后,当然最最终要应用到材质球上。材质球的Shader选择菜单中会多出一个graphs的类别,下面就是你创建的ShaderGraph对应的shader。

Unity3d | ShaderGraph入门教程_第16张图片

总结

本文讲了如何配置、创建、编辑、使用ShaderGraph。后面几天我将通过实例的方式讲解ShaderGraph如何实战应用。

洪流学堂公众号回复节点,获取ShaderGraph节点详解PDF文件(带目录)。

你可能感兴趣的:(Unity3d | ShaderGraph入门教程)