unity探索者之Shader Graph所有节点详解-Input篇

Input(输入)

1、Basic(基本)

1) Boolean(布尔)

unity探索者之Shader Graph所有节点详解-Input篇
  通过开关输出一个bool值。

2) Color(颜色)

unity探索者之Shader Graph所有节点详解-Input篇
  输出一个自定义颜色。

3) Constant(常量)

unity探索者之Shader Graph所有节点详解-Input篇

  输出一个常量,包含PI(π = 3.1415926),TAU(π * 2),PHI(黄金比例 = 1.618034),E(自然常数e = 2.718282),SQRT2(根号2 = 1.414214)。

4) Integer(整型)

unity探索者之Shader Graph所有节点详解-Input篇
  输出一个整数。

5) Slider(滑块)

unity探索者之Shader Graph所有节点详解-Input篇
  可自定义最大值最小值的滑块节点。

6) Time(时间)

unity探索者之Shader Graph所有节点详解-Input篇
  输出时间的相关值,包括Time(当前时间),sin(Time)(当前时间的正弦值),cos(Time)(当前时间的余弦值),Delta Time(当前帧时长),Smooth Delta(平滑的帧时长,类似于FixedDeltatime)。

7) Vector1-Vector4(一维向量-四维向量)

unity探索者之Shader Graph所有节点详解-Input篇
  Vector1等同于float。

2、Geometry(几何)

1) Bitangent Vector(顶点切线向量)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对网格顶点或片段的双切线向量的访问,具体取决于节点所属图形部分的有效着色器阶段。输出值的坐标空间包含Object(对象)、View(视图)、World(世界)、Tangent(切线)四种。

2) Normal Vector(法向量)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对网格顶点或片段的法向量的访问,输出值的坐标空间包含Object(对象)、View(视图)、World(世界)、Tangent(切线)四种。

3) Position(位置)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对网格顶点或片段的位置的访问,输出值的坐标空间包含Object(对象)、View(视图)、World(世界)、Tangent(切线)、Absolute World(绝对世界)五种。(注:高清渲染管线使用相对摄影机作为其默认世界空间,通用渲染管线使用绝对世界作为其默认世界空间)

4) Screen Position(屏幕位置)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对网格顶点或片段屏幕位置的访问,包含四种计算模式:

模式 对应代码
Default Out = float4(IN.ScreenPosition.xy / IN.ScreenPosition.w, 0, 0);
Raw Out = IN.ScreenPosition;
Center Out = float4(IN.ScreenPosition.xy / IN.ScreenPosition.w * 2 - 1, 0, 0);
Tiled float x = (IN.ScreenPosition.x / IN.ScreenPosition.w * 2 - 1) * _ScreenParams.x / _ScreenParams.y;
Out = frac(float4(x, IN.ScreenPosition.y / IN.ScreenPosition.w * 2 - 1, 0, 0));

5) Tangent Vector(切向量)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对网格顶点或片段的切向量的访问,输出值的坐标空间包含Object(对象)、View(视图)、World(世界)、Tangent(切线)四种。

6) UV(UV)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对网格顶点或片段的UV坐标的访问,包含UV0、UV1、UV2、UV3四个UV通道。

7) Vertex Color(顶点颜色)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对顶点颜色的访问。

8) View Direction(视图方向)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对网格顶点或片段的视图方向的访问,也就是从顶点或片段到摄影机的方向向量。输出值的坐标空间包含Object(对象)、View(视图)、World(世界)、Tangent(切线)四种。

3、Gradient(梯度)

1) Gradient(梯度)、Sample Gradient(梯度采样)

unity探索者之Shader Graph所有节点详解-Input篇
  根据自定义梯度返回指定颜色的工具,Gradient和Sample Gradient配合一起使用,可以用来实现根据某些条件(比如时间)变色的效果。

4、Matrix(矩阵)

1) Matrix 2x2、Matrix 3x3、Matrix 4x4

unity探索者之Shader Graph所有节点详解-Input篇
  三种自定义矩阵。

2) Transformation Matrix(变换矩阵)

unity探索者之Shader Graph所有节点详解-Input篇
  为着色器中的公共变换矩阵定义以下8种4x4矩阵。
  Model:模型
  Inverse Model:逆模型
  View:视图
  Inverse View:逆模型
  Projection:投影
  Inverse Projection:逆投影
  View Projection:视图投影
  Inverse View Projection:逆视图投影

5、PBR(基于物理的渲染)

1) Dielectric Specular(电介质镜面)

unity探索者之Shader Graph所有节点详解-Input篇
  返回预设好的基于物理的材质,一共6种模式:

Material 返回值
Common float _DielectricSpecular_Range = 0.5;
float _DielectricSpecular_Out = lerp(0.034, 0.048, _DielectricSpecular_Range);
RustedMetal float _DielectricSpecular_Out = 0.030;
Water float _DielectricSpecular_Out = 0.020;
Ice float _DielectricSpecular_Out = 0.018;
Glass float _DielectricSpecular_Out = 0.040;
Custom float _DielectricSpecular_IOR = 1;
float _DielectricSpecular_Out = pow(_Node_IOR - 1, 2) / pow(_DielectricSpecular_IOR + 1, 2);

2) Metal Reflectance(金属反射率)

unity探索者之Shader Graph所有节点详解-Input篇
返回一些预设好的金属反射率。
Iron:铁
Silver:银
Aluminium:铝
Gold:金
Copper:铜
Chromium:铬
Nickel:镍
Titanium:钛
Cobalt:钴
Platinum:铂
  如果使用PBR Master作为主节点,那么这个节点的输出应该是PBR的Specular端口(需要将Workflow修改为Specular)。

6、Scene(场景)

1) Ambient(环境色)

unity探索者之Shader Graph所有节点详解-Input篇
  提供对场景环境光颜色值的访问。如果Environment Lighting–Source设置为Gradient/Sky时,返回Sky Color。如果Environment Lighting–Source设置为Color时,返回Ambient Color。无论当前环境光源是什么,Equator和Ground端口始终返回Equator Color和Ground Color。

2) Camera(摄像机)

unity探索者之Shader Graph所有节点详解-Input篇
用于访问当前摄像机的各种属性。
Position:摄像机的对象在世界空间中的位置
Direction:摄影机的正向方向
Orthographic:摄影机是否是正交的
Near Plane:相机的近平面距离
Far Plane:相机的远平面距离
Z Buffer Sign:使用反向Z缓冲区时返回-1,否则返回1
Width:正交时的摄影机宽度
Height:正交时的摄影机高度

3) Fog(雾)

unity探索者之Shader Graph所有节点详解-Input篇
访问场景中的雾参数,返回指定位置的雾的颜色和密度。

4) Object(对象)

unity探索者之Shader Graph所有节点详解-Input篇
返回当前渲染对象的位置和大小

5) Reflection Probe(反射探头)!!!

unity探索者之Shader Graph所有节点详解-Input篇
  按照官方的说法是可以实现模糊效果,并且只支持通用渲染管线,不过没有搞清楚具体怎么用,这里留个记录,后续搞懂了就补上。
  生成的代码:Out = SHADERGRAPH_REFLECTION_PROBE(ViewDir, Normal, LOD)

6) Scene Color(场景颜色)

unity探索者之Shader Graph所有节点详解-Input篇
根据输入的UV访问当前摄像机的颜色缓冲区。

7) Scene Depth(场景深度)

unity探索者之Shader Graph所有节点详解-Input篇
根据输入的UV访问当前摄像机的深度缓冲区

8) Screen(屏幕)

unity探索者之Shader Graph所有节点详解-Input篇
用来访问当前屏幕的宽度和高度值。

7、Texture(纹理)

1) Cubemap Asset(立方体资源)、Sample Cubemap(立方体采样)

unity探索者之Shader Graph所有节点详解-Input篇
对立方体贴图采样并返回对应色值。
Cube(立方资源),由Cubemap Asset输出,必须是Texture Shape为Cube的图片
ViewDir(视图方向)
Normal(法线输入)
Sampler(采样器),自定义采样器状态
LOD(细节级别),用来实现模糊效果

2) Texture 2D Asset(2D纹理资源)、Sample Texture 2D(2D纹理采样)

unity探索者之Shader Graph所有节点详解-Input篇
这绝对是用的最多的节点之一,可与Texture 2D Asset配合使用,用来输出2D纹理的采样结果。
UV:修改采样的UV
Sampler:自定义采样器
Type:Default(默认),Normal(法线)
Space:Tangent(切线空间),Object(对象空间)

3) Sample Texture 2D Array(2D纹理采样数组)

unity探索者之Shader Graph所有节点详解-Input篇
功能等同于Sample Texture 2D,只不过输入的值是2D纹理数组。
Index:当前输出的纹理在Array中的索引

4) Sample Texture 2D LOD(2D纹理采样LOD)

unity探索者之Shader Graph所有节点详解-Input篇
与Sample Texture 2D相比,此节点多了一个LOD设置,用来实现模糊效果。

5) Texture 3D Asset(3D纹理资源)、Sample Texture 3D(3D纹理采样)

unity探索者之Shader Graph所有节点详解-Input篇
和Sample Texture 2D大体相同,只不过需要使用3D纹理资源。

6) Sampler State(采样状态)

unity探索者之Shader Graph所有节点详解-Input篇
用于自定义采样器的状态,前几个节点中的Sampler输入来源就是此节点。
Filter:Linear(线性)、Point(点)、Trilinear(三线性)
Wrap:Repeat(平铺)、Clamp(拉伸)、Mirror(镜像)、Mirror Once(一次镜像)

7) Texel Size(纹理大小)

unity探索者之Shader Graph所有节点详解-Input篇
用来输出纹理资源的宽度和高度。