From e247fe4edbfad927b83e8bdcf0e4ef61d554c727 Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Sat, 31 Aug 2024 16:30:57 +0200 Subject: [PATCH] Really fixing culling for real this time --- res/shaders/lib/Bounding.slang | 2 +- res/shaders/lib/Common.slang | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/res/shaders/lib/Bounding.slang b/res/shaders/lib/Bounding.slang index 2567001..b849cc3 100644 --- a/res/shaders/lib/Bounding.slang +++ b/res/shaders/lib/Bounding.slang @@ -70,7 +70,7 @@ struct AABB int2 screenCoords = int2(clamp(int(screenCorner.x), 0, int(pViewParams.screenDimensions.x)), clamp(int(screenCorner.y), 0, int(pViewParams.screenDimensions.y))); screenCornerMin = int2(min(screenCornerMin.x, screenCoords.x), min(screenCornerMin.y, screenCoords.y)); screenCornerMax = int2(max(screenCornerMax.x, screenCoords.x), max(screenCornerMax.y, screenCoords.y)); - maxDepth = max(maxDepth, 1/screenCorner.z); + maxDepth = max(maxDepth, screenCorner.z); } return maxDepth; } diff --git a/res/shaders/lib/Common.slang b/res/shaders/lib/Common.slang index 9a6d749..2b046e5 100644 --- a/res/shaders/lib/Common.slang +++ b/res/shaders/lib/Common.slang @@ -85,7 +85,10 @@ float4 clipToScreen(float4 clip) { float4 ndc = clip / clip.w; float2 texCoords = (float2(ndc.xy) + 1.0f) / 2.0f; - return float4(float2(texCoords.x, 1 - texCoords.y) * pViewParams.screenDimensions, 1 - ndc.z, 1.0f); + float oz = 1; + float pz = 0 - 1; + float zf = pz * ndc.z + oz; + return float4(float2(texCoords.x, 1 - texCoords.y) * pViewParams.screenDimensions, zf, 1.0f); } struct Plane