1 / 36

Fast Cascade VSM

Fast Cascade VSM. By Zhang Jian. Dynamic Shadow Tech. Shadow Volume. Shadow Map. Basic Algorithm. PCF. VSM. CSM. ESM. Soft Shadow. PSM. LiPSM. TSM. CSM. Perspective Alias. PSSM. 2D CSM. 3D CSM. Cascade Selection. Per Object Shadow. Deferred Shadow. Rendering Stage. Outline.

dezso
Download Presentation

Fast Cascade VSM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fast Cascade VSM By Zhang Jian

  2. Dynamic Shadow Tech Shadow Volume Shadow Map Basic Algorithm PCF VSM CSM ESM Soft Shadow PSM LiPSM TSM CSM Perspective Alias PSSM 2D CSM 3D CSM Cascade Selection Per Object Shadow Deferred Shadow Rendering Stage

  3. Outline Basic Shadow Map and problems Variance Shadow Map Cascade Shadow Map In Our Engine Shadow Mask

  4. 1. Shadow Map • Basic Idea: If a light can see a point, the point will be lit by the light.

  5. 1. Shadow Map 1.Render a texture by using light as a camera, that’s shadow map, the pixel value is depth value. 2. Transform the current position into shadow map space (light space), test if it’s occluded by corresponding shadow map pixel. 3. Done! ?

  6. 1.Shadow Map Peter panning Perspective Alias

  7. 1. Shadow Map Peter panning Self-shadow Acne

  8. 1.Shadow Map Peter Panning

  9. 1.Shadow Map Hard Edge

  10. 1. Shadow Map • Dynamic Alias: • Unstable resolution( PSM) • Edge swimming effect

  11. 2.Variance Shadow Map Soft Shadow

  12. 2.Variance Shadow Map • Probability theory • dr is the current receiver depth • d0 is the random variable to represent the occluder depth. Our goal : define some states between shadow and lit.

  13. 2.Variance Shadow Map • Chebyshev’s inequality (when dr > μ)

  14. 2.Variance Shadow Map • Understand VSM by your way. float d = ( vLightSpacePos.z ) - Depth; float p_Shadow = 1; if (d > 0) { float variance = ( DepthSquare ) - ( Depth * Depth ); p_Shadow = variance / ( variance + d*d );}

  15. VSM In Our Engine • Render Z and Z2 into a 2 channels render target • G16R16 ( hardware filter, 1 cycle) • 4x MSAA on Xenon ( Free, No predict-tilling) • RGBA8 on PC ( may provide multiple solutions for difference GPU) • Prefilter: 2 pass Gaussian blur • Generate Mipmaps on Xenon. • VSM shadow testing.

  16. 2.Variance Shadow Map • The good: • Very cheap Soft shadow: Support Pre-filter, Blur == PCF. • Much Better self shadow quality ( solve the shadow bias perfectly) • The ability to use high quality texture filter( trilinear, anistropic filter)

  17. 2.Variance Shadow Map • The Bad: Light leaking.

  18. 2.Variance Shadow Map • Light leaking. • Reduce Geometry complexity, use Low Lod for shadow caster. • Tune parameters.(remapping the result)

  19. 3. Cascaded Shadow Map Resolution problem

  20. Cascaded Shadow Map

  21. Cacade Alignment

  22. Parallel Split Shadow Map

  23. 2D CSM

  24. Z precision problem 3D CSM

  25. Cacade Coverage Optimization

  26. Cacade Transition

  27. Interlace updating

  28. 4. Shadow Mask Just an optimization

  29. 4.Shadow Mask

  30. Shadow Mask • Why? • Shadow calculation can increase shader complexity a lot. • For most case, it can avoid overdraw. • More aggressive, Postprocess shadow multiply

  31. Shadow solution

  32. Result • Memory: ~5M( 3M Vsm + 2M shadow mask) • Performance(ShadowMap+shadowMask): • 4 cascade: 2.3-4.5 ms • 3 cascade: 1.7-3.5 ms • 2 cascade: 1.4-2.5 ms • 1 cascade: 1.0~2.0 ms

  33. Future Works • Optimization • Special Mesh LOD for shadow. • Unshadow sky Early out. • Shader optimization • Transparency shadow (e.g.. Smoke shadow)

  34. Q&A

  35. Declaration • This is from one of my internal presentations. I implemented the shadow tech in our game engine, and shared tips and explanations here. It’s not an official paper, So I don’t have a reference docs list here,

More Related