• 第一个Shader Graph


    上篇我们用ShaderLab来实现了第一个Shader,但对于初学者也太复杂了,那有没有简单的方式来实现shader的操作呢?
    现在我们来分享下ShaderGraph,可视化编程,如图所示
    在这里插入图片描述

    ShaderGraph介绍

    ShaderGraph是2018年推出的,可以看下官网出的例子https://github.com/UnityTechnologies/ShaderGraph_ExampleLibrary,主要支持渲染管线是URP、HDRP,现在也支持Built-In(内置渲染管线)了。

    操作流程

    1、创建URP工程

    1、首先我们创建一个普通的3D项目

    在这里插入图片描述
    2、把项目配置成URP管线。打开windows–》Pakage Manage,在Unity Registry下搜索Universal RP进行安装
    在这里插入图片描述
    3、在Project面板下右键创建URP Asset
    在这里插入图片描述
    4、打开Edit–》Project Setting ,在Graphics下,把第三步新建的文件拖到指定位置,如图所示
    在这里插入图片描述
    5、这里我们URP设置完成,可以看出Camera已经发生了变化。
    在这里插入图片描述

    2、创建Shader Graph

    上面我们配置了环境,下面我们来使用Shader Graph。
    在Project面板下右键创建Shader Graph,选择Lit Shader Graph。各个选项介绍如下

    • Lit Shader Graph:光照模板
    • UnLit Shader Graph:无光照模板
    • Sprite:主要是2D 的模板
    • Decal Shader Graph:贴花模板。允许在物体表面上添加图案(贴花),包括基于物理的照明。Decal 在游戏中是常见的效果,比如在墙壁上的涂鸦、地毯上的花纹、血迹、弹孔等等效果。

    在这里插入图片描述

    3、Shader Graph介绍

    这里我们讲述两个例子,来看看Shader Graph。
    1、面板布局:直接上图
    在这里插入图片描述

    例子1:颜色

    1、在左侧栏创建一个Color
    在这里插入图片描述
    2、新建后,把Color拖到操作面板中

    在这里插入图片描述
    3、把Color与片元着色器的Base Color相连
    在这里插入图片描述
    这里要注意记得保存,Ctrl+S不管用,需要点保存
    在这里插入图片描述
    另外再顺便介绍下Node Setting,这里点击Color,在Node Setting下会出现下面的属性值。

    • Name 和 Reference:这两个如果之前接触了ShaderLab编程,可能比较熟悉些。我们来看下ShaderLab中是如何定义的
    _Color("Color",Color) = (1,1,1,1)//颜色
    
    • 1

    _Color:变量名,在后面编程中会用到。第二个Color:在材质的Shader下显示的名称。第三个Color:为类型定义。最后(1,1,1,1)为默认值

    详细的可以看下我这篇文章Unity下Shader属性

    • Default:颜色值,这里可以修改默认的颜色值
    • Precision:精度
    • Exposed:这里默认是勾选的,也就是在材质的地方我们可以修改颜色值,如果这里不勾选,那么材质的Shader下便不会有这个选项。

    在这里插入图片描述

    4、这样我们第一个最简单的Shader Graph创建完成。我们来看看效果。在Hierarchy面板下新建一个Cube。并创建一个材质
    在这里插入图片描述

    5、把Shader Graph文件拖到材质上,也可以在材质的Shader选项的下拉菜单中选择
    在这里插入图片描述

    6、我们把材质应用到Cube上,我们尝试可以修改颜色看看效果。
    在这里插入图片描述

    例子2:贴图

    1、在左侧面板下创建Texture 2D
    在这里插入图片描述
    2、贴图要比颜色复杂,无法直接跟Base Color相连,我们需要借助Sameple Texture2D。
    在这里插入图片描述
    3、如果对Sample Texture2D感兴趣,我们可以在上面右键,选择Open Documentation来查看文档。

    在这里插入图片描述
    4、跟例子1相似,我们把贴图例子应用到项目中,我们随便找张图片,拖到贴图位置,查看效果。这样我们的贴图例子就完成了。
    在这里插入图片描述

    总结

    我们的第一个Shader Graph就完成了,是不是比之前的编程要简单很多。通过ShaderLab分享,以及这篇ShaderGraph的文章我们大概了解了在Unity如何操作Shader。如果想深入了解,也可以看看我别的文章。

  • 相关阅读:
    Unity 动态加载音频和音效
    王道考研--》顺序表课后习题C语言代码实现(冲刺)
    【C++】 局部对象,引用返回
    ELK企业级日志分析系统
    一文带你了解 ESLint
    [Spring Cloud] gateway全局异常捕捉统一返回值
    无敌,全面对标字节跳动2-2:算法与数据结构突击手册(leetcode)
    python入门I--基本概念--基本语法--变量和标识符--数据类型
    二叉(搜索)树的最近公共祖先 ●●
    阿里云ECS部署Java项目使用docker安装MySQL
  • 原文地址:https://blog.csdn.net/u014196765/article/details/127582637