Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void RenderLightShadingPass(){ //Render pass 3
- gDeviceContext->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); //kan byta till LIST nen då krävs 6 drawcalls
- gDeviceContext->IASetInputLayout(NULL);
- gDeviceContext->OMSetRenderTargets(1, &gLightShadingPassRTV, nullptr); //riktiga
- //--------------------
- gDeviceContext->VSSetShader(gVertexShaderLightShadingPass, nullptr, 0);
- gDeviceContext->HSSetShader(nullptr, nullptr, 0);
- gDeviceContext->DSSetShader(nullptr, nullptr, 0);
- gDeviceContext->GSSetShader(nullptr, nullptr, 0);
- gDeviceContext->PSSetShader(gPixelShaderLightShadingPass, nullptr, 0);
- //--------------------
- gDeviceContext->IASetVertexBuffers(0, 0, nullptr, nullptr, nullptr);
- gDeviceContext->PSSetConstantBuffers(0, 1, &LightBuffer_1); //light
- gDeviceContext->PSSetConstantBuffers(1, 1, &CamPosBuffer);
- gDeviceContext->PSSetConstantBuffers(2, 1, &ShadowBuffer_1);
- gDeviceContext->PSSetConstantBuffers(3, 1, &MatriserBuffer);
- gDeviceContext->PSSetShaderResources(0, 1, &gFirstPassSRV[0]); //texturer från light shading pass
- gDeviceContext->PSSetShaderResources(1, 1, &gFirstPassSRV[1]);
- gDeviceContext->PSSetShaderResources(2, 1, &gFirstPassSRV[2]);
- gDeviceContext->PSSetShaderResources(3, 1, &gFirstPassSRV[3]);
- gDeviceContext->PSSetShaderResources(4, 1, &gShadowView); //shadow mapping
- //--------------------
- gDeviceContext->Draw(3, 0); //DRAW
- //-------------------- cleanup - trying to clear SRVs
- ID3D11ShaderResourceView* srvs[D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT] = { 0 };
- gDeviceContext->PSSetShaderResources(0, D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT, srvs);
- }
- void ComputeBloom() { //Render pass 4
- //----- cleanup from RenderLightShadingPass - might not be necessary
- gDeviceContext->OMSetRenderTargets(0, nullptr, nullptr);
- //-----
- gDeviceContext->VSSetShader(nullptr, nullptr, 0);
- gDeviceContext->HSSetShader(nullptr, nullptr, 0);
- gDeviceContext->DSSetShader(nullptr, nullptr, 0);
- gDeviceContext->GSSetShader(nullptr, nullptr, 0);
- gDeviceContext->PSSetShader(nullptr, nullptr, 0);
- gDeviceContext->CSSetShader(gComputeShaderBloom, nullptr, 0);
- //--------------------
- gDeviceContext->CSSetShaderResources(0, 1, &gLightShadingPassSRV);
- gDeviceContext->CSSetUnorderedAccessViews(0, 1, &computeTextureUAV, NULL);
- gDeviceContext->Dispatch(32, 18, 1); //DISPATCH - works with res 1280x720 (generates 40x40 blocks)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement