pmndrs / pmndrs/postprocessing
Implement VLSEffect
Open
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 2.9k
- Forks
- 251
- Avg merge
- 17m
- Merged PRs (30d)
- 1
Description
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
vlsdemo. - 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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the v6 implementation and the linked GodRaysShader.js and GPU Gems references. Define the RadialBlurPass, VLSEffect, demo, and unit-test boundaries, including the default light, billboard gradient, and colored billboard method. Done means the multi-pass effect, demo, and test are all present and working.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, three.js
- Domain
- computer-graphics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100