diff --git a/projects/voxelization/resources/shaders/shader.frag b/projects/voxelization/resources/shaders/shader.frag index eff75dde4b735a49b7be13c8d5f1b53241499007..2b3566912727bc5f48617252bc9240d3993962a4 100644 --- a/projects/voxelization/resources/shaders/shader.frag +++ b/projects/voxelization/resources/shaders/shader.frag @@ -87,7 +87,7 @@ void main() { vec3 sun = lightInfo.sunStrength * lightInfo.sunColor * NoL; float noise = 2 * pi * interleavedGradientNoise(gl_FragCoord.xy); - vec2 shadowOffset = vec2(sin(noise), cos(noise)) * 0.00008; + vec2 shadowOffset = 0.05f * vec2(sin(noise), cos(noise)) / textureSize(sampler2D(shadowMap, shadowMapSampler), 0); float shadow = shadowTest(passPos, lightInfo, shadowMap, shadowMapSampler, shadowOffset); sun *= shadow; diff --git a/projects/voxelization/resources/shaders/shadowMapping.inc b/projects/voxelization/resources/shaders/shadowMapping.inc index 8f14d35ddba55dc55f1aa90896373feb628d40fe..4755e7ec9183a8bd7184de8409c1edc959d993ea 100644 --- a/projects/voxelization/resources/shaders/shadowMapping.inc +++ b/projects/voxelization/resources/shaders/shadowMapping.inc @@ -86,7 +86,7 @@ float shadowTest(vec3 worldPos, LightInfo lightInfo, texture2D shadowMap, sample shadowMapSample = unquantizeMoments(shadowMapSample); float depthBias = 0.f; - float momentBias = 0.00005; + float momentBias = 0.000002; float shadow = ComputeMSMShadowIntensity(shadowMapSample, lightPos.z, depthBias, momentBias); return reduceLightBleeding(shadow, 0.1f); diff --git a/projects/voxelization/src/ShadowMapping.cpp b/projects/voxelization/src/ShadowMapping.cpp index 3c2beb5ff816515991612cd6abbcf6f57d28ff56..e27895ae030e902a2b41bc1c80a3e2db68dca61f 100644 --- a/projects/voxelization/src/ShadowMapping.cpp +++ b/projects/voxelization/src/ShadowMapping.cpp @@ -125,7 +125,7 @@ glm::mat4 computeShadowViewProjectionMatrix( const vk::Format shadowMapFormat = vk::Format::eR32G32B32A32Sfloat; const vk::Format shadowMapDepthFormat = vk::Format::eD32Sfloat; -const uint32_t shadowMapResolution = 1024; +const uint32_t shadowMapResolution = 2048; const vkcv::Multisampling msaa = vkcv::Multisampling::MSAA8X; ShadowMapping::ShadowMapping(vkcv::Core* corePtr, const vkcv::VertexLayout& vertexLayout) : @@ -156,7 +156,7 @@ ShadowMapping::ShadowMapping(vkcv::Core* corePtr, const vkcv::VertexLayout& vert }; shadowPipeConfig.m_multisampling = msaa; shadowPipeConfig.m_EnableDepthClamping = true; - shadowPipeConfig.m_culling = vkcv::CullMode::Front; + shadowPipeConfig.m_culling = vkcv::CullMode::Front; m_shadowMapPipe = corePtr->createGraphicsPipeline(shadowPipeConfig); m_shadowSampler = corePtr->createSampler(