0%

UnityshaderGraph学习2021版

学习笔记

创建

选择 URP 模板创建不需要配置环境
普通 3D 项目,包管理器安装 Universal RP, visual effect graph,设置中正常配置 Graphics

光照模型

Create => ShaderGraph => URP => Lit Shader Graph

输入属性节点:
输入属性节点

属性设置:
属性设置

  • Precision [精度] [single/half] half 性能更好

在 Universal 中

  • Material [材质]

    • [sprite Custom] 自定义精灵
    • [sprite Lit] 精灵光照
    • [sprite Unlit] 精灵非光照
    • [Decal] 贴花
    • [Lit] 光照
    • [Unlit] 非光照
  • Allow Material Override [允许材质覆盖] [勾选] 可以通过材质检查器修改某些图形属性。

  • workflow [工作流] [Specular/Metallic] [勾选] 镜面高光/金属工作流

  • Surface Type [表面类型] [Opaque/Transparent] [半透明/不透明]

  • Render Face [渲染面] [Front/Back/Double] [正面/背面/双面]

  • Depth Write [深度写入] [Auto/Force Enabled/Force Disabled] [自动/强制开启/强制关闭]

  • Depth Test [深度测试] [Never/Less/Equal/LessEqual/Greater/NotEqual/GreaterEqual/Always] [从不/小于/等于/小于等于/大于/不等于/大于等于/总是]

  • Alpha Clipping [Alpha裁剪] [勾选]

  • Receive Shadows [接收阴影] [勾选]

  • Fragment Normal Space [片段法线空间] [Tangent/World/View] [切线/世界/视图]

  • Clear Coat [清漆] [勾选]

  • Custom Editor GUI [自定义编辑器GUI]

  • Supports VFXGRAph [支持VFXGRAph] [勾选]

顶点着色器:
顶点着色器

片段着色器:
片元着色器

乘法节点 Multiply: 颜色叠加

Fragment

Base Color

主贴图,展现了模型的基本纹理
可以新建一个 Texture2D 属性,然后将其作为输入
UnityShaderGraphBaseColor

MainTexture 保持默认

Normal

UnityShaderGraphNormal

注意 Sample Texture 2D 的 Type 要设置为 Normal
NormalTexture 的 Mode 选择 Normal Map

Metallic

UnityShaderGraphMetallic
保持默认

Smoothness

UnityShaderGraphSmoothness

输出金属光泽度的 Alpha 通道与 Smoothness 通过 Multiply 乘法节点相乘, 得到输出值

Emission

UnityShaderGraphEmission
自发光贴图与类型为 Boolean Keywork 的 EmissiveTexture 相乘来控制是否自发光,得到其输出值与 EmissionColor 相乘得到最终的输出值

AO

UnityShaderGraphAO
保持默认

Sub Graph

框选中对应节点右击 Convert to => Sub-graph

轮廓光/边缘光

Fresnel Effect

欢迎关注我的其它发布渠道