着色器设计器节点
在文档的本节中的文章包含有关您可以用以创建图形效果的各种图形色设计器的信息。
节点和节点类型
着色器设计器将视觉效果表示为关系图。 这些关系图从专门选择的节点中生成,并将其按精度方式连接,以实现预期影响。 每个节点表示一条信息或数学函数,并且,它们之间的连接字符串表示信息如何流经关系图生成结果。 着色器设计器提供 6 个不同的节点类型—筛选器、纹理节点、参数、常数、实用工具节点和算术节点—和属于各类型的几个单独的节点。 这些节点和节点类型在本节中的其他文章中描述—查看此文档末尾的链接。
节点结构
所有节点组成通用元素组合。 每个节点在其右边具有至少一个输出终端(除最终颜色节点,表示着色器输出)。 表示计算的节点或纹理采样器在其左侧拥有输入终端,但是表示信息的节点没有输入终端。 输出终端已连接到输入终端,以将信息从一个节点移到另一个节点。
提升输入
由于着色器设计器必须最终生成 HLSL 源代码,使其效果可用于游戏或 app,着色器设计器节点是受 HLSL 使用的类型提升规则限制的。 由于图形硬件主要在浮点值运行,不同类型之间的提升类型,例如,从 int 到 float,或者从 float 到 double - 很少见。 相反,因为图形硬件立即使用在多个信息的同一操作,不同的提升其中可能发生输入数目的长度更短来匹配更长的输入大小。 延长的程度取决于输入类型和操作本身:
如果较小的类型是标量值,则:
将标量的值复制到与较大输入的大小相等的矢量。 例如,操作中最大的输入是三元素向量时,标量输入 5.0 将成为向量 (5.0,5.0,5.0),无论操作为何。
如果较小的类型是矢量,并且操作是相乘(*、/、%、等等),则:
将该矢量的值复制到与较大输入的大小相等的矢量的前导元素,并将尾随元素设置为 1.0。 例如,当向量输入 (5.0, 5.0) 与四元向量相乘时,它将成为向量 (5.0, 5.0, 1.0, 1.0)。 这通过使用乘法标识 1.0 来保留输出的第三和第四元素。
如果较小的类型是矢量,并且操作是添加(+、 -、等等),则:
将该矢量的值复制到与较大输入的大小相等的矢量的前导元素,并将尾随元素设置为 0.0。 例如,当向量输入 (5.0, 5.0) 与四元向量相加时,它将成为向量 (5.0, 5.0, 0.0, 0.0)。 这通过使用附加标识 0.0 来保留输出的第三和第四元素。
相关主题
标题 |
说明 |
---|---|
描述可用来表示在着色器计算的文本值和插入的顶点状态信息的节点。 由于顶点状态是内插,并且因此,对于每个像素每像素着色器实例接收该常数的不同版本是不同的。 |
|
描述可用来表示在着色器计算的照相机位置,有形资产,照明参数、时间和其他应用程序状态信息的节点。 |
|
描述可用于示例各种纹理类型和几何图形的节点,并以常用方法生成或转换纹理坐标。 |
|
描述可用于执行代数,逻辑,三角形和直接映射到 HLSL 命令的其他数学运算的节点。 |
|
描述可用于执行不直接映射到 HLSL 命令的常用照明计算和其他常用操作的节点。 |
|
描述可用于执行纹理筛选和颜色筛选的节点。 |