Skip to content

Commit b5de69b

Browse files
SSAO: Fix sample position reconstruction
1 parent 670237e commit b5de69b

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

Shaders/PostProcess/ScreenSpaceAmbientOcclusion/private/SSAO_ComputeAmbientOcclusion.fx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ float ComputeAmbientOcclusionPS(in FullScreenTriangleVSOutput VSOut) : SV_Target
117117

118118
float3 SliceDirection = float3(Omega, 0.0);
119119
float3 OrthoSliceDir = SliceDirection - dot(SliceDirection, ViewVS) * ViewVS;
120-
float3 Axis = cross(SliceDirection, ViewVS);
120+
float3 Axis = normalize(cross(SliceDirection, ViewVS));
121121
float3 ProjNormal = NormalVS - Axis * dot(NormalVS, Axis);
122122

123123
float ProjNormalLen = length(ProjNormal);
@@ -146,7 +146,7 @@ float ComputeAmbientOcclusionPS(in FullScreenTriangleVSOutput VSOut) : SV_Target
146146

147147
float MipLevel = clamp(log2(length(SampleOffset * g_Camera.f4ViewportSize.xy)) - g_SSAOAttribs.DepthMIPSamplingOffset, 0.0, float(SSAO_DEPTH_PREFILTERED_MAX_MIP));
148148
float3 SamplePositionVS0 = ScreenXYDepthToViewSpace(float3(SamplePositionSS0, SamplePrefilteredDepth(SamplePositionSS0, MipLevel)), g_Camera.mProj);
149-
float3 SamplePositionVS1 = ScreenXYDepthToViewSpace(float3(SamplePositionSS0, SamplePrefilteredDepth(SamplePositionSS1, MipLevel)), g_Camera.mProj);
149+
float3 SamplePositionVS1 = ScreenXYDepthToViewSpace(float3(SamplePositionSS1, SamplePrefilteredDepth(SamplePositionSS1, MipLevel)), g_Camera.mProj);
150150

151151
float3 SampleDifference0 = SamplePositionVS0 - PositionVS;
152152
float3 SampleDifference1 = SamplePositionVS1 - PositionVS;

0 commit comments

Comments
 (0)