Table of Contents

HLSL语义


什么是语义

语义通常是附加在着色器输入/输出参数上的字符串。
它在着色器程序的用途如下:

  1. 用于描述传递给着色器程序的变量参数的含义
  2. 允许着色器程序接受由渲染管线生成的特殊系统值
  3. 允许着色器程序传递由渲染管线解释的特殊系统值

PS:[n]并不是数组的意思,n是一个从0开始的整数。
访问形式类似POSITION0

顶点着色器语义

像素着色器语义

系统值语义

所有的系统值都包含前缀SV_。这些系统值将用于某些着色器的特定用途

名称 类型 功能
SV_Depth float 深度缓冲区数据,可以被任何着色器写入/读取
SV_InstanceID uint 每个实例都会在运行期间自动生成一个ID。在任何着色器阶段都能读取
SV_IsFrontFace bool 指定该三角形是否为正面。可以被几何着色器写入,以及可以被像素着色器读取
SV_Position float4 若被声明用于输入到着色器,它描述的是像素位置,在所有着色器中都可用,可能会有0.5的偏移值
SV_PrimitiveID uint 每个原始拓扑都会在运行期间自动生成一个ID。可用在几何/像素着色器中写入,也可以在像素/几何/外壳/域着色器中读取
SV_StencilRef uint 代表当前像素着色器的模板引用值。只可以被像素着色器写入
SV_VertexID uint 每个实例都会在运行期间自动生成一个ID。仅允许作为顶点着色器的输入