着色器流程
2024-07-31
17
0
着色器主要包括以下内个部分:
- 顶点着色器全局参数-常量空间
- 顶点着色器代码
- 顶点着色器布局
- 像素着色器代码
- 像素着色器全局参数-常量空间
- 采样状态设置
顶点
ID3D11DeviceContext::VSSetShader - 设置顶点着色器
ID3D11DeviceContext::IASetInputLayout - 设置顶点着色器的参数布局
ID3D11DeviceContext::VSSetConstantBuffers - 设置顶点着色器常量空间
device->context->VSSetShader(shader, NULL, 0);
device->context->IASetInputLayout(layout);
device->context->VSSetConstantBuffers(0, 1, &constants);//slot,NumBuffers,ID3D11Buffer**
//从外面来的
device->curVertexShader->UploadParams();//更新constants内容
像素
ID3D11DeviceContext::PSSetShader 设置像素着色器
ID3D11DeviceContext::PSSetConstantBuffers 设置像素着器常量空间
ID3D11DeviceContext::PSSetSamplers 设置采样状态
device->context->PSSetShader(shader, NULL, 0);
device->context->PSSetConstantBuffers(0, 1, &constants);
device->context->PSSetSamplers(0, GS_MAX_TEXTURES, states);//slot,数组中的采样器数,采样器
//从外面来的
device->curPixelShader->UploadParams();//更新constants内容