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:自定义渲染管线。
|