diff --git a/WickedEngine/Renderable3DComponent.cpp b/WickedEngine/Renderable3DComponent.cpp index bebb27f64..308e67ff5 100644 --- a/WickedEngine/Renderable3DComponent.cpp +++ b/WickedEngine/Renderable3DComponent.cpp @@ -420,7 +420,7 @@ void Renderable3DComponent::RenderSecondaryScene(wiRenderTarget& mainRT, wiRende wiRenderer::GetDevice()->EventEnd(); } - if (wiRenderer::GetTemporalAAEnabled()) + if (wiRenderer::GetTemporalAAEnabled() && !wiRenderer::GetTemporalAADebugEnabled()) { wiRenderer::GetDevice()->EventBegin("Temporal AA Resolve", threadID); wiProfiler::GetInstance().BeginRange("Temporal AA Resolve", wiProfiler::DOMAIN_GPU, threadID); diff --git a/WickedEngine/RendererWindow.cpp b/WickedEngine/RendererWindow.cpp index 4b3d190d5..2b805db76 100644 --- a/WickedEngine/RendererWindow.cpp +++ b/WickedEngine/RendererWindow.cpp @@ -333,6 +333,16 @@ RendererWindow::RendererWindow(Renderable3DComponent* component) temporalAACheckBox->SetCheck(wiRenderer::GetTemporalAAEnabled()); rendererWindow->AddWidget(temporalAACheckBox); + temporalAADebugCheckBox = new wiCheckBox("DEBUGJitter: "); + temporalAADebugCheckBox->SetText("DEBUG: "); + temporalAADebugCheckBox->SetTooltip("Disable blending of frame history. Camera Subpixel jitter will be visible."); + temporalAADebugCheckBox->SetPos(XMFLOAT2(x + 100, y)); + temporalAADebugCheckBox->OnClick([](wiEventArgs args) { + wiRenderer::SetTemporalAADebugEnabled(args.bValue); + }); + temporalAADebugCheckBox->SetCheck(wiRenderer::GetTemporalAADebugEnabled()); + rendererWindow->AddWidget(temporalAADebugCheckBox); + rendererWindow->Translate(XMFLOAT3(130, 20, 0)); diff --git a/WickedEngine/RendererWindow.h b/WickedEngine/RendererWindow.h index a660c7646..226c6a3ea 100644 --- a/WickedEngine/RendererWindow.h +++ b/WickedEngine/RendererWindow.h @@ -43,6 +43,7 @@ public: wiComboBox* shadowPropsCubeComboBox; wiComboBox* MSAAComboBox; wiCheckBox* temporalAACheckBox; + wiCheckBox* temporalAADebugCheckBox; int GetPickType(); }; diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 1f0e1f3a7..920ff0c4a 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -59,7 +59,7 @@ Texture2D* wiRenderer::enviroMap,*wiRenderer::colorGrading; float wiRenderer::GameSpeed=1,wiRenderer::overrideGameSpeed=1; bool wiRenderer::debugLightCulling = false; bool wiRenderer::occlusionCulling = true; -bool wiRenderer::temporalAA = true; +bool wiRenderer::temporalAA = true, wiRenderer::temporalAADEBUG = false; wiRenderer::VoxelizedSceneData wiRenderer::voxelSceneData = VoxelizedSceneData(); int wiRenderer::visibleCount; wiRenderTarget wiRenderer::normalMapRT, wiRenderer::imagesRT, wiRenderer::imagesRTAdd; diff --git a/WickedEngine/wiRenderer.h b/WickedEngine/wiRenderer.h index 734ffc785..6986a39a7 100644 --- a/WickedEngine/wiRenderer.h +++ b/WickedEngine/wiRenderer.h @@ -311,7 +311,7 @@ protected: static bool debugLightCulling; static bool occlusionCulling; - static bool temporalAA; + static bool temporalAA, temporalAADEBUG; struct VoxelizedSceneData { @@ -375,6 +375,8 @@ public: static bool GetOcclusionCullingEnabled() { return occlusionCulling; } static void SetTemporalAAEnabled(bool enabled) { temporalAA = enabled; } static bool GetTemporalAAEnabled() { return temporalAA; } + static void SetTemporalAADebugEnabled(bool enabled) { temporalAADEBUG = enabled; } + static bool GetTemporalAADebugEnabled() { return temporalAADEBUG; } static void SetVoxelRadianceEnabled(bool enabled) { voxelSceneData.enabled = enabled; } static bool GetVoxelRadianceEnabled() { return voxelSceneData.enabled; } static void SetVoxelRadianceSecondaryBounceEnabled(bool enabled) { voxelSceneData.secondaryBounceEnabled = enabled; }