Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Global Illumination via Instant Radiosity / Virtual Point Lights #14047

Closed
bhouston opened this issue May 12, 2018 · 2 comments
Closed

Global Illumination via Instant Radiosity / Virtual Point Lights #14047

bhouston opened this issue May 12, 2018 · 2 comments

Comments

@bhouston
Copy link
Contributor

The idea here is to basically use the forward renderer as a ray-trace engine and over a series of frames, usually less than a second, you get a very close to GI solution.

The algorithm is quite simple. You just keep rendering the scene from the standard view while varying the placement of virtual point lights, the placement of which mimics how light roughly bounces through the scene. For each light thus you need to sample rays from its source and then figure out where those hit the scene. For each hit you then need the position, normal, light intensity and direct diffuse information, and then on the next render you use these as virtual point lights and re-render the scene, simulating a light bounce. Likely you need to not use all VPLs in each render, so you need to store them and then sample from the possible VPLs.

I think this ray casting can be done via the GPU fairly easily, although we will have to read-back textures to then create the virtual point lights.

More details: http://www.cs.utah.edu/~schmelze/radiosity/proj/proj.html

Reference: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.40.2213&rep=rep1&type=pdf

@bhouston
Copy link
Contributor Author

bhouston commented May 17, 2018

Here is a runnable demo (with horrible music) that worked in 2008: https://dee.cz/lightsmark/ This means that it is fast enough for mobile now.

Video of engine running: https://www.youtube.com/watch?v=M0ylvjrbwEc

@mrdoob mrdoob added this to the rXX milestone May 17, 2018
@mrdoob mrdoob removed this from the rXXX milestone Aug 17, 2020
@mrdoob mrdoob closed this as completed Aug 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants