ShaderGraph 数据类型
概述
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 节点的情况下,可允许任何矢量或矩阵类型的连接,从而确保根据数据类型的混合应用正确的乘法。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AlunWorker!