postprocessing icon indicating copy to clipboard operation
postprocessing copied to clipboard

Implement VLSEffect

Open vanruesc opened this issue 1 year ago • 0 comments

Description

Implement a VLSEffect (volumetric light scattering, god rays, crepuscular rays).

References:

  • https://github.com/mrdoob/three.js/blob/0bf3908b73b2cf73d7361cce17cfc8b816cb2a00/examples/jsm/shaders/GodRaysShader.js
  • https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-13-volumetric-light-scattering-post-process
  • https://doc.babylonjs.com/features/featuresDeepDive/lights/volumetricLightScattering

Tasks

  • [ ] Create RadialBlurPass.
  • [ ] Create VLSEffect.
  • [ ] Create vls demo.
  • [ ] Add unit test.

Implementation Details

  • Use a multi-pass radial blur.
  • The implementation from v6 can be used for reference.
  • The effect should use a default light source if none is provided.
    • The mesh should be a billboard (white radial gradient).
    • Provide a method for creating colored billboards.

vanruesc avatar Feb 16 '24 16:02 vanruesc