概述

Shader Graph 中有许多数据类型。节点上的每个端口都有一个关联的数据类型,用于定义可以连接到哪些边。数据类型具有可用性颜色,这些颜色应用于该数据类型的端口和边。
有些数据类型具有关联的属性类型
,用于将这些值显示给使用着色器的材质的 Inspector

数据类型

名称颜色描述
Float浅蓝一个 Float 或标量值
Vector 2绿色一个矢量 2 值。
Vector 3黄色一个矢量 3 值。
Vector 4粉红色一个矢量 4 值。
Dynamic Vector浅蓝请参阅下面的动态数据类型
Matrix 2蓝色一个矩阵 2x2 值
Matrix 3蓝色一个矩阵 3x3 值
Matrix 4蓝色一个矩阵 4x4 值
Dynamic Matrix蓝色请参阅下面的动态数据类型
Dynamic蓝色请参阅下面的动态数据类型
Boolean紫色一个布尔值。在生成的着色器中定义为浮点数
Texture 2D红色一个 2D 纹理 资源
Texture 2D Array红色一个 2D 纹理数组资源
Texture 3D红色一个 3D 纹理 资源
Cubemap红色一个立方体贴图资源
Virtual Texture灰色一个纹理堆栈
Gradient灰色一个Gradient(渐变)值。在生成的着色器中定义为结构
SamplerState灰色用于对纹理进行采样的状态。

提升/截断

可以提升或截断所有矢量类型以匹配任何矢量类型端口。仅当相关的端口不是动态矢量类型时,才会发生此行为。截断时将会直接移除多余的通道。在提升时,所需的额外通道将填充默认值。这些值为 (0, 0, 0, 1)。

动态数据类型

有些数据类型是动态的。这意味着使用这些数据类型的端口可以根据与其连接的数据类型更改其基础的实际数据类型。默认情况下,使用动态数据类型的节点只能有一个实际数据类型,这意味着一旦连接的边将其数据类型应用于该端口,该节点的所有其他动态数据类型字段将应用相同的数据类型

一个值得注意的例外是 Multiply 节点,该节点允许动态矩阵和矢量类型。

动态 Vector

动态矢量类型允许任何矢量类型的连接边。除非最低维度为 1(在这种情况下将提升 Float),否则所有连接边将自动截断为具有最低维度的类型。

动态 Matrix

动态矩阵类型允许任何矩阵类型的连接边。所有连接边将自动截断为具有最低维度的类型。

动态

动态类型是一种特殊情况。支持该类型的节点必须定义其验证方式。在 Multiply 节点的情况下,可允许任何矢量或矩阵类型的连接,从而确保根据数据类型的混合应用正确的乘法。