一般编写过程
首先是编写着色器文本文件,保存为.vsh或.psh或.fx的文本文件
下面是“myVS.vsh”文本文件内容:
//全局变量,全局变量可以看成是显卡的一块内存区域(其实本质是显卡中的常量寄存器或纹理寄存器等特殊的寄存器)
float 4*4 matWorldViewProj; //自动对应于(存放于)一个常量寄存器
float4 materialAmbient; //全局变量可以通过c++的一个常量表接口给这里的全局变量赋值
//输出结构
struct VS_OUTPUT //HLSL复杂数据类型里面包括结构体类型,也可以理解为HLSL支持的一种让用户定义类型
{
float4 Pos:POSITION; //语义,表示这个结构体的这个成语绑定到显卡的“顶点着色器输出缓冲器”的位置寄存器处
float4 Color: COLOR;
}
//顶点着色器函数
VS_OUTPUT VS(float4 Pos: POSITION) //形参Pos的语义说明,这个形参就是显卡的“顶点缓存区”的位置数据处。注意顶点缓冲器一般有c++代码填充
{
VS_OUTPUT Out=(VS_OUTPUT)0; //显卡流处理器内部定义一个临时变量Out
Out.Pos=mul(Pos,matWorldViewProj);
float4 AmbientColor={1.0f,1.0f,1.0f,1.0f}; //显卡流处理器内部定义一个临时变量AmbientColor
float AmbientIntensity=0.5 //流处理器内部一个临