Unity3d | ShaderGraph入门教程

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

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

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

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及其依赖的功能包。

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)。

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

manifest.json

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

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

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

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

【常见问题2】已有工程切换到URP/HDRP后材质都变成洋红色怎么办?

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

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

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

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

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

创建ShaderGraph文件

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

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

ShaderGraph窗口

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

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

编辑节点的属性

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

修改节点属性

添加节点

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

创建节点

连接节点

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

创建输入变量

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

创建输入变量

使用输入变量

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

给输入变量设置默认值

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

使用输入变量

自定义预览模型

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

自定义预览模型

材质球使用Shader

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

总结

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。