Implement blurring of VSM shadow maps

This is still somewhat work-in-progress, but good enough to be useful.

Some caveats:
- large blurs don't work well with cascades
- the implementation uses more memory than it could
This commit is contained in:
Mathias Agopian
2021-06-24 15:06:27 -07:00
committed by Mathias Agopian
parent eb0c346969
commit 7bd0b45a2b
13 changed files with 219 additions and 139 deletions

View File

@@ -688,6 +688,7 @@ void SimpleViewer::updateUserInterface() {
ImGui::SliderInt("VSM anisotropy", &vsmAnisotropy, 0, 3, label);
mSettings.view.vsmShadowOptions.anisotropy = vsmAnisotropy;
ImGui::Checkbox("VSM mipmapping", &mSettings.view.vsmShadowOptions.mipmapping);
ImGui::SliderFloat("VSM blur", &light.shadowOptions.vsm.blurStandardDeviation, 0.0, 21.0f);
// These are not very useful in practice (defaults are good), but we keep them here for debugging
//ImGui::SliderFloat("VSM exponent", &mSettings.view.vsmShadowOptions.exponent, 0.0, 6.0f);