Fix GlobalSDF tracing artifacts in reflections by using occlusion bias relative to each cascade voxel size
#2743
This commit is contained in:
@@ -21,9 +21,8 @@ bool TraceSDFSoftwareReflections(GBufferSample gBuffer, float3 reflectWS, out fl
|
|||||||
{
|
{
|
||||||
GlobalSDFTrace sdfTrace;
|
GlobalSDFTrace sdfTrace;
|
||||||
float maxDistance = GLOBAL_SDF_WORLD_SIZE;
|
float maxDistance = GLOBAL_SDF_WORLD_SIZE;
|
||||||
float selfOcclusionBias = GlobalSDF.CascadeVoxelSize[0];
|
sdfTrace.Init(gBuffer.WorldPos, reflectWS, 0.0f, maxDistance);
|
||||||
sdfTrace.Init(gBuffer.WorldPos + gBuffer.Normal * selfOcclusionBias, reflectWS, 0.0f, maxDistance);
|
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace, 2.0f);
|
||||||
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace);
|
|
||||||
if (sdfHit.IsHit())
|
if (sdfHit.IsHit())
|
||||||
{
|
{
|
||||||
float3 hitPosition = sdfHit.GetHitPosition(sdfTrace);
|
float3 hitPosition = sdfHit.GetHitPosition(sdfTrace);
|
||||||
|
|||||||
BIN
Content/Shaders/SSR.flax
(Stored with Git LFS)
BIN
Content/Shaders/SSR.flax
(Stored with Git LFS)
Binary file not shown.
@@ -140,9 +140,8 @@ float4 PS_RayTracePass(Quad_VS2PS input) : SV_Target0
|
|||||||
|
|
||||||
GlobalSDFTrace sdfTrace;
|
GlobalSDFTrace sdfTrace;
|
||||||
float maxDistance = GLOBAL_SDF_WORLD_SIZE;
|
float maxDistance = GLOBAL_SDF_WORLD_SIZE;
|
||||||
float selfOcclusionBias = GlobalSDF.CascadeVoxelSize[0];
|
sdfTrace.Init(gBuffer.WorldPos, reflectWS, 0.0f, maxDistance);
|
||||||
sdfTrace.Init(gBuffer.WorldPos + gBuffer.Normal * selfOcclusionBias, reflectWS, 0.0f, maxDistance);
|
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace, 2.0f);
|
||||||
GlobalSDFHit sdfHit = RayTraceGlobalSDF(GlobalSDF, GlobalSDFTex, GlobalSDFMip, sdfTrace);
|
|
||||||
if (sdfHit.IsHit())
|
if (sdfHit.IsHit())
|
||||||
{
|
{
|
||||||
float3 hitPosition = sdfHit.GetHitPosition(sdfTrace);
|
float3 hitPosition = sdfHit.GetHitPosition(sdfTrace);
|
||||||
|
|||||||
Reference in New Issue
Block a user