Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:hlsl:hlsl语义

HLSL语义


什么是语义

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

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

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

顶点着色器语义

  • BINORMAL[n];副法线(副切线)向量;float4
  • BLENDINDICES[n];混合索引;uint
  • BLENDWEIGHT[n];混合权重;float
  • COLOR[n];漫反射/镜面反射颜色;float4
  • NORMAL[n];法向量;float4
  • POSITION[n];物体坐标系下的顶点坐标;float4
  • POSITIONT;变换后的顶点坐标;float4
  • PSIZE[n];点的大小;float
  • TANGENT[n];切线向量;float4
  • TEXCOORD[n];纹理坐标;float4
  • Output;仅描述输出;Type
  • FOG;顶点雾;float

像素着色器语义

  • COLOR[n];漫反射/镜面反射颜色;float4
  • TEXCOORD[n];纹理坐标;float4
  • Output;仅描述输出;Type
  • DEPTH[n];深度值;float

系统值语义

所有的系统值都包含前缀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。仅允许作为顶点着色器的输入
/var/www/DokuWikiStick/dokuwiki/data/pages/程序/hlsl/hlsl语义.txt · Last modified: 2022/03/30 16:52 (external edit)