Unity 之 ShaderGraph PBR 和 Unlit 主节点介绍

Posted 陈言必行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity 之 ShaderGraph PBR 和 Unlit 主节点介绍相关的知识,希望对你有一定的参考价值。

一,PBR Master(基于物理渲染主节点)

输入项:

PBR主节点有12个输入,是渲染出你的着色器的图形中的最后一个节点。任何没有输入到此节点的内容都不会被呈现。

PBR主节点将在底部有一个着色器的预览。预览会反映出你在着色器图形中所做的所有变换。

  • Vertex Position(顶点位置): 定义着色器对象空间绝对顶点位置
  • Vertex Normal(顶点法线): 定义着色器对象空间绝对顶点法线,渲染器使用这个值来确定光照或引用模型的反射
  • Vertex Tangent(顶点切线): 定义着色器对象空间绝对顶点切线。切线是一个单位长度的矢量,它沿着水平文纹理方向跟随一个网格表面。常用于着色器中贴图凹凸效果。
  • Albedo(反射率): 定义材质的反射率。取值范围是0-1。
  • Normal(法线): 定义材质法线值。这里需要时一个切线空间的法线(若不是切线空间,则需要转换到切线空间)
  • Emission(发射): 定义材质的发射颜色值。(注意需要传入正数)
  • Metallic(金属): 定义材质的金属值,取值 0->1 为 非金属->金属。(注意需要在金属工作流下可用)
  • Specular(镜面): 定义材质的镜面反射值,取值范围0-1。(注意需要在镜面工作流下可用)
  • Smoothness(平滑度): 定义材质的平滑度值,取值范围0-1。
  • Occlusion(遮挡): 定义材质的环境光遮挡值,取值范围0-1。
  • Alpha(透明度): 定义材质的透明度的颜色,取值范围0-1。
  • Alpha Clip Threshold(透明度剪辑阈值): 任何低于这个阈值提供的透明度值将被丢弃(不显示),取值范围0-1。

设置选项:

  • Precision(精度):此选项可设置精度数据模式,通常用于优化,有三个选项:继承,浮动,一半

  • Warkflow(工作流):此选项可设置材质将使用什么样的工作流,有两个选项:金属,镜面(对应上面的输入)

  • Surface(表面): 此选项是设置材质是否透明,两个选项Opaque(不透明)和Transparent(透明)

  • Blend(混合):此选项是设置透明材质的混合模式。这个设置有四个选项:Alpha(透明度), Premultiply(自左乘), Additive(叠加), Multiply(乘)。

  • Fragment Normal Space: 定义片段法线的坐标空间

  • Two Sided:当网格的正面和背面被渲染时,它会进行切换。

  • Override ShaderGUI:是否显示ShaderGUI属性

二,Unlit Master(不受光材质主节点)


Unlit主节点有6个输入,其功能和上面的‘PBR Master’基本一致。

输入项:

  • Vertex Position(顶点位置): 定义着色器对象空间绝对顶点位置
  • Vertex Normal(顶点法线): 定义着色器对象空间绝对顶点法线,渲染器使用这个值来确定光照或引用模型的反射
  • Vertex Tangent(顶点切线): 定义着色器对象空间绝对顶点切线。切线是一个单位长度的矢量,它沿着水平文纹理方向跟随一个网格表面。常用于着色器中贴图凹凸效果。
  • Color(颜色): 定义材质颜色。
  • Alpha(透明度): 定义材质的透明度的颜色,取值范围0-1。
  • Alpha Clip Threshold(透明度剪辑阈值): 任何低于这个阈值提供的透明度值将被丢弃(不显示),取值范围0-1。

设置选项:

  • Precision(精度): 此选项可设置精度数据模式,通常用于优化,有三个选项:继承,浮动,一半

  • Surface(表面): 此选项是设置材质是否透明,两个选项Opaque(不透明)和Transparent(透明)

  • Blend(混合): 此选项是设置透明材质的混合模式。这个设置有四个选项:Alpha(透明度), Premultiply(自左乘), Additive(叠加), Multiply(乘)。

  • Two Sided: 当网格的正面和背面被渲染时,它会进行切换。

  • Override ShaderGUI: 是否显示ShaderGUI属性

  • ShaderGUI: Override ShaderGUI为true时显示,表示要使用的ShaderGUI类的全名,包括类路径


相关:渲染管线简介

Shader Graph: 是通过节点图的方式实现可视化Shader编程

在Unity2018之前是“Build-in pipeline”不可通过编程修改太多的渲染管线(官方没有提供太多的接口)

在2018版本之后,Unity提供了可编程渲染管线:

  • SRP:全称“Scriptable Render Pipeline”,可编程渲染管线,是一种在Unity中通过C#脚本配置和执行渲染的方式
  • LWRP:全称“Light weight renderpipeline”,轻量级的渲染管线,适配大量的移动设备
  • HDRP:全称“High Definition Render Pipeline”,高清渲染管线,适配性能好的设备,PC设备
  • Custom:自定义渲染管线。

以上是关于Unity 之 ShaderGraph PBR 和 Unlit 主节点介绍的主要内容,如果未能解决你的问题,请参考以下文章

Unity 之 ShaderGraph 实现自发光和能量护盾效果入门级教程

Unity 之 ShaderGraph 实现全息效果入门级教程

Unity 之 ShaderGraph 实现火焰效果入门级教程

unity之PBR材质流程与材质制作实践

Unity 之 ShaderGraph 实现旋涡(传送门)效果入门级教程

Unity 之 ShaderGraph 实现小旗随风飘扬效果入门级教程