   accum += 0.707 * VoxelConeTrace(origin.xyz, normalize(TBN[2] + TBN[1]), 1.0, maxDist);
   accum += 0.707 * VoxelConeTrace(origin.xyz, normalize(TBN[2] - TBN[1]), 1.0, maxDist);
 
-  return 1.0 - accum.a;
+  return saturate(1.0 - accum.a);
 }
 
 float AmbientOcclusion(in Surface surface, in sampler3D SceneVoxelRep, in mat4 WorldToVoxelSpace)

  origin.xyz = (origin.xyz + 1) / 2.0;
  mat3 TBN = fakeTangentSpace(surface.Normal);

  const float coneRatio = 2.0;
  const float maxDist = 0.3;
  vec4 accum = vec4(0);
  accum += VoxelConeTrace(origin.xyz, TBN[2], coneRatio, maxDist);

    // front to back accumulation
    // float mask = float(texture(PageMask, samplePos).r) / USE_PAGE_MARKER;
    vec4 sampleValue  = textureLod(SceneOpacityVoxel, samplePos, sampleLOD);
    sampleValue.a *= OcclusionFactor / (0.5 * sampleLOD + 0.001);
    accum += sampleValue * (1.0 - accum.w);
    dist += sampleDiameter;
  }
