Unity2018新功能抢鲜 | ShaderGraph入门教程

本文首发于“洪流学堂”微信公众号。
洪流学堂,让你学Unity快人几步

洪流学堂公众号回复节点,获取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来创造你想要的效果。

编辑节点的属性

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Swsk3eE-1581416141550)(https://upload-images.jianshu.io/upload_images/78733-86eb5a0497e63c9a.gif?imageMogr2/auto-orient/strip)]

添加节点

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

创建节点

连接节点

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

创建输入变量

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

创建输入变量

使用输入变量

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

给输入变量设置默认值

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

使用输入变量

自定义预览模型

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yxJwC8v9-1581416141558)(https://upload-images.jianshu.io/upload_images/78733-694f13f7d8777903.gif?imageMogr2/auto-orient/strip)]

材质球使用Shader

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

总结

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

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

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大智_Unity玩家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值