| 338 | } |
| 339 | |
| 340 | void MSAAFilter::RenderScene() |
| 341 | { |
| 342 | PIXEvent event(L"Render Scene"); |
| 343 | |
| 344 | ID3D11DeviceContextPtr context = deviceManager.ImmediateContext(); |
| 345 | |
| 346 | SetViewport(context, colorTarget.Width, colorTarget.Height); |
| 347 | |
| 348 | float clearColor[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; |
| 349 | context->ClearRenderTargetView(colorTarget.RTView, clearColor); |
| 350 | context->ClearRenderTargetView(velocityTarget.RTView, clearColor); |
| 351 | context->ClearDepthStencilView(depthBuffer.DSView, D3D11_CLEAR_DEPTH, 1.0f, 0); |
| 352 | |
| 353 | ID3D11RenderTargetView* renderTargets[2] = { nullptr, nullptr }; |
| 354 | context->OMSetRenderTargets(1, renderTargets, depthBuffer.DSView); |
| 355 | meshRenderer.RenderDepth(context, camera, modelTransform, false); |
| 356 | |
| 357 | meshRenderer.ReduceDepth(context, depthBuffer, camera); |
| 358 | meshRenderer.RenderShadowMap(context, camera, modelTransform); |
| 359 | |
| 360 | renderTargets[0] = colorTarget.RTView; |
| 361 | renderTargets[1] = velocityTarget.RTView; |
| 362 | context->OMSetRenderTargets(2, renderTargets, depthBuffer.DSView); |
| 363 | |
| 364 | meshRenderer.Render(context, camera, modelTransform, envMap, envMapSH, jitterOffset); |
| 365 | |
| 366 | renderTargets[0] = colorTarget.RTView; |
| 367 | renderTargets[1] = nullptr; |
| 368 | context->OMSetRenderTargets(2, renderTargets, depthBuffer.DSView); |
| 369 | |
| 370 | if(AppSettings::RenderBackground) |
| 371 | skybox.RenderEnvironmentMap(context, envMap, camera.ViewMatrix(), camera.ProjectionMatrix(), Float3(std::exp2(AppSettings::ExposureScale))); |
| 372 | |
| 373 | renderTargets[0] = renderTargets[1] = nullptr; |
| 374 | context->OMSetRenderTargets(2, renderTargets, nullptr); |
| 375 | } |
| 376 | |
| 377 | void MSAAFilter::RenderBackgroundVelocity() |
| 378 | { |
nothing calls this directly
no test coverage detected