前言
语义词,表示输入图元的数据含义(是位置信息,还是法向量信息),也表明这些图元数据存放的硬件资源(寄存器或者纹理缓冲区)。顶点着色程序和片段着色程序中Varying inputs 类型的输入,必须和一个语义词相绑定,这称之为绑定语义(binding semantics)。
CG 参数修饰词
参数修饰词往往用于对值的输入输出传递。
修饰词 | 描述 |
---|---|
in | 修饰形参只用于输入,进入函数体时被初始化(或者之前已经初始化),且形参值的改变不会影响实参,典型的值传递。当不加修饰词时,默认修饰为 in |
out | 修饰形参只用于输出,进入函数体时没有被初始化,这种类型形参一般是一个函数的运行结果。一般来说是用于达到多值返回的效果。 |
inout | 修饰形参既可用于输入也可用于输出,典型的引用传递。 |
语义词
从应用传递参数到顶点着色器
语义 | 描述 |
---|---|
POSITION | 模型空间的顶点位置向量,通常为 float4 |
NORMAL | 顶点法线向量,通常为 float3 |
TANGENT | 定点切线, 通常为 float4 |
TEXCOORD (0~N) | 该顶点纹理坐标 0~n组 |
COLOR | 顶点颜色 通常为 fixed4 或 float4 |
(绑定顶点函数的参数)
从顶点着色器到片元着色器
语义 | 描述 |
---|---|
SV_POSITION | 裁剪空间的顶点坐标,结构体必须包含一个该修饰词的变量(一般系统直接使用) |
COLOR0 | 通常用于输出第一组顶点颜色,往往可以用于传递值,3位向量也可以 |
COLOR1 | 通常用于输出第二组顶点颜色 |
TEXCOORD (0~7) | 通常用于输出纹理坐标,0~7组纹理 |
(绑定顶点函数的返回,或者片元函数的参数)
从片元着色器输出
语义 | 描述 |
---|---|
SV_Target | 输出值将会存储到渲染目标中,显示到屏幕的颜色像素。 |
(绑定在片元函数的返回)
(由于片元着色器完成后,就基本到了GPU流水线的末端了,因此语义较少)