|
|
//着色器文件diffuse.txt
matrix ViewMatrix;
matrix ViewProjMatrix;
vector green = {0.0f, 1.0f, 0.0f, 1.0f};
struct VS_INPUT
{
vector position : POSITION;
vector normal : NORMAL;
};
struct VS_OUTPUT
{
vector position : POSITION;
vector diffuse : COLOR;
};
VS_OUTPUT Main(VS_INPUT input)
{
VS_OUTPUT output = (VS_OUTPUT)0;
output. position = mul(input.position, ViewProjMatrix);
output.diffuse = green;
return output;
}
//源码的一部分
hr = D3DXCompileShaderFromFile(
"diffuse.txt",
0,
0,
"Main", // entry point function name
"vs_1_1",
D3DXSHADER_DEBUG,
&shader,
&errorBuffer,
&DiffuseConstTable);
......
hr = Device->CreateVertexShader(
(DWORD*)shader->GetBufferPointer(),
&DiffuseShader);
......
ViewMatrixHandle = DiffuseConstTable->GetConstantByName(0, "ViewMatrix");
ViewProjMatrixHandle= DiffuseConstTable->GetConstantByName(0, "ViewProjMatrix");
//ViewMatrixHandle总是0,着色器文件有这个变量(没有写错变量名),为什么会这样
//着色器文我已经重新编写了一次,仍然这样 |
|