网易作业deadline!!!要凉了555
对DirectX初始化完成后,就可以进行渲染了。
1.创建顶点着色器vertex_shader:顶点着色器负责接收顶点数据(位置信息、颜色信息等等)。shader编程使用的是HLSL语言,具体上就是告诉程序数据的格式。如下一个例子。
struct VS_INPUT //输入数据的格式
{
float2 inPos : POSITION;
float3 inColor : COLOR;
};
struct VS_OUTPUT //输出数据的格式
{
float4 outPos : SV_POSITION;
float3 outColor : COLOR;
};
VS_OUTPUT main(VS_INPUT input)
{
VS_OUTPUT output;
output.outPos = float4(input.inPos,0.0f,1.0f);
output.outColor = input.inColor;
return output;
}
编译之后生成cso文件,使用readfiletoblob函数将文件的数据读入blob中,也可以不预先编译直接使用函数D3DCompileFromFile编译产生blob,之后使用creatvertexshader进行创建顶点着色器即可。
之后再使用该blob创建输入布局,告诉程序数据是以这种格式输入的。
所以生成的顶点着色器cso文件有两个用处:1.创建顶点着色器。2.创建输入布局。
创建布局时要先对布局进行描述。例如:
D3D11_INPUT_ELEMENT_DESC inputDesc[] =
{
{"POSITION",0,DXGI_FORMAT_