From 811a8286a967c8a0567950d44d1f0037838db9bf Mon Sep 17 00:00:00 2001 From: turanszkij Date: Wed, 18 Mar 2020 19:51:05 +0000 Subject: [PATCH] minor updates --- WickedEngine/RenderPath3D.cpp | 4 ++-- WickedEngine/depthoffield_mainCS.hlsl | 8 ++++---- WickedEngine/depthoffield_prepassCS.hlsl | 6 +++--- WickedEngine/temporalaaCS.hlsl | 8 ++++---- WickedEngine/wiRenderer.cpp | 1 + WickedEngine/wiVersion.cpp | 2 +- 6 files changed, 15 insertions(+), 14 deletions(-) diff --git a/WickedEngine/RenderPath3D.cpp b/WickedEngine/RenderPath3D.cpp index 0d5dd205e..ae2673dee 100644 --- a/WickedEngine/RenderPath3D.cpp +++ b/WickedEngine/RenderPath3D.cpp @@ -161,7 +161,7 @@ void RenderPath3D::ResizeBuffers() { TextureDesc desc; desc.BindFlags = BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; - desc.Format = FORMAT_R16G16B16A16_FLOAT; + desc.Format = FORMAT_R11G11B10_FLOAT; desc.Width = wiRenderer::GetInternalResolution().x; desc.Height = wiRenderer::GetInternalResolution().y; device->CreateTexture(&desc, nullptr, &rtTemporalAA[0]); @@ -172,7 +172,7 @@ void RenderPath3D::ResizeBuffers() { TextureDesc desc; desc.BindFlags = BIND_RENDER_TARGET | BIND_SHADER_RESOURCE | BIND_UNORDERED_ACCESS; - desc.Format = FORMAT_R16G16B16A16_FLOAT; + desc.Format = FORMAT_R11G11B10_FLOAT; desc.Width = wiRenderer::GetInternalResolution().x; desc.Height = wiRenderer::GetInternalResolution().y; device->CreateTexture(&desc, nullptr, &rtPostprocess_HDR); diff --git a/WickedEngine/depthoffield_mainCS.hlsl b/WickedEngine/depthoffield_mainCS.hlsl index 9654fb6c8..e8319fb3d 100644 --- a/WickedEngine/depthoffield_mainCS.hlsl +++ b/WickedEngine/depthoffield_mainCS.hlsl @@ -67,8 +67,8 @@ void main(uint3 Gid : SV_GroupID, uint3 GTid : SV_GroupThreadID) for (uint i = ringSampleCount[j]; i < ringSampleCount[j + 1]; ++i) { const float offsetCoc = disc[i].z; - const float2 uv2 = uv + ringScale * disc[i].xy * (1 + rand(seed, uv) * 0.15); - color += texture_prefilter.SampleLevel(sampler_point_clamp, uv2, 0); + const float2 uv2 = uv + ringScale * disc[i].xy; + color += texture_prefilter.SampleLevel(sampler_linear_clamp, uv2, 0); } } color *= ringNormFactor[ringCount]; @@ -84,8 +84,8 @@ void main(uint3 Gid : SV_GroupID, uint3 GTid : SV_GroupThreadID) for (uint i = ringSampleCount[j]; i < ringSampleCount[j + 1]; ++i) { const float offsetCoc = disc[i].z; - const float2 uv2 = uv + ringScale * disc[i].xy * (1 + rand(seed, uv) * 0.15); - const float4 color = float4(texture_prefilter.SampleLevel(sampler_point_clamp, uv2, 0), 1); + const float2 uv2 = uv + ringScale * disc[i].xy; + const float4 color = float4(texture_prefilter.SampleLevel(sampler_linear_clamp, uv2, 0), 1); const float3 presort = texture_presort.SampleLevel(sampler_point_clamp, uv2, 0).rgb; const float coc = presort.r; const float spreadCmp = SpreadCmp(offsetCoc, coc, spreadScale); diff --git a/WickedEngine/depthoffield_prepassCS.hlsl b/WickedEngine/depthoffield_prepassCS.hlsl index 50ac1be40..526df5d3c 100644 --- a/WickedEngine/depthoffield_prepassCS.hlsl +++ b/WickedEngine/depthoffield_prepassCS.hlsl @@ -50,14 +50,14 @@ void main(uint3 Gid : SV_GroupID, uint3 GTid : SV_GroupThreadID) { float seed = 54321; - const float2 ringScale = 2 * coc * float2(max(1, dof_aspect), max(1, 2 - dof_aspect)) * xPPResolution_rcp; + const float2 ringScale = 0.5f * coc * float2(max(1, dof_aspect), max(1, 2 - dof_aspect)) * xPPResolution_rcp; [unroll] for (uint i = ringSampleCount[0]; i < ringSampleCount[1]; ++i) { const float offsetCoc = disc[i].z; - const float2 uv2 = uv + ringScale * disc[i].xy * (1 + rand(seed, uv) * 0.1); + const float2 uv2 = uv + ringScale * disc[i].xy; const float depth = texture_lineardepth_minmax.SampleLevel(sampler_point_clamp, uv2, 0).g; - const float3 color = max(0, input.SampleLevel(sampler_point_clamp, uv2, 0).rgb); + const float3 color = max(0, input.SampleLevel(sampler_linear_clamp, uv2, 0).rgb); const float weight = saturate(abs(depth - center_depth) * g_xCamera_ZFarP * 2); prefilter += lerp(color, center_color, weight); } diff --git a/WickedEngine/temporalaaCS.hlsl b/WickedEngine/temporalaaCS.hlsl index 364d66a99..9d644a482 100644 --- a/WickedEngine/temporalaaCS.hlsl +++ b/WickedEngine/temporalaaCS.hlsl @@ -1,10 +1,10 @@ #include "globals.hlsli" #include "ShaderInterop_Postprocess.h" -TEXTURE2D(input_current, float4, TEXSLOT_ONDEMAND0); -TEXTURE2D(input_history, float4, TEXSLOT_ONDEMAND1); +TEXTURE2D(input_current, float3, TEXSLOT_ONDEMAND0); +TEXTURE2D(input_history, float3, TEXSLOT_ONDEMAND1); -RWTEXTURE2D(output, float4, 0); +RWTEXTURE2D(output, float3, 0); // Neighborhood load optimization: #define USE_LDS @@ -120,7 +120,7 @@ void main(uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint3 #endif // do the temporal super sampling by linearly accumulating previous samples with the current one: - float4 resolved = float4(lerp(history.rgb, current.rgb, blendfactor), 1); + float3 resolved = lerp(history.rgb, current.rgb, blendfactor); #ifdef HDR_CORRECTION resolved.rgb = inverseTonemap(resolved.rgb); diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 463a2f2ae..9e5f93b0c 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -9721,6 +9721,7 @@ void Postprocess_MotionBlur( device->Barrier(&GPUBarrier::Memory(), 1, cmd); device->UnbindUAVs(0, arraysize(uavs), cmd); + device->UnbindResources(TEXSLOT_ONDEMAND0, arraysize(res), cmd); device->EventEnd(cmd); } diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index 95a285c95..286bfd0f6 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -9,7 +9,7 @@ namespace wiVersion // minor features, major updates const int minor = 38; // minor bug fixes, alterations, refactors, updates - const int revision = 19; + const int revision = 20; long GetVersion()