Code Name: ExponentialVarianceShadow
In this example, the shadows in the scene are created using Exponential Variance Shadow Mapping (EVSM) with using box filtering that can be adjusted from user.
| Input | Action |
|---|---|
| W/A/S/D | Move the camera |
| Mouse | Look around with the camera |
| Esc | Close the window |
| 0 | Apply no filter |
| 1 | Apply 3x3 filter |
| 2 | Apply 5x5 filter |
| 3 | Apply 7x7 filter |
| 4 | Apply 9x9 filter |
| Parameter / Key | Type | Usage in Code | Description | Default Value |
|---|---|---|---|---|
| AppSettings.ClearColor | VkClearColorValue | AppSettings::ClearColor | Background color of the screen | |
| AppSettings.MouseSensitivity | float | AppSettings::MouseSensitivity | Mouse sensitivity value | |
| AppSettings.CameraSpeed | float | AppSettings::CameraSpeed | Speed of the camera | |
| AppSettings.EsmExponent | float | AppSettings::EsmExponent | ESM coefficient |
- Implementing Exponential Variance Shadow Mapping (EVSM) technique in Vulkan
- Applying box filtering kernel to Exponential Variance Shadow Mapping (EVSM)
| Shader Type | Status | Notes |
|---|---|---|
| GLSL | ✅ | |
| HLSL | ❌ | Will be implemented. |
| Slang | ❌ | Will be implemented. |
None
Window system-dependent extensions:
- VK_KHR_surface
- VK_KHR_win32_surface (Windows)
- VK_KHR_swapchain
