-
Notifications
You must be signed in to change notification settings - Fork 85
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
RT: Global illumination #510
Comments
* GI probes initial * beautify debug view * probe irradiance * GI lighting with probes * hacks cleanup * probe caching initial * performance: FREE_BIT * probe lighting cleanup #510 * probe hash-map: colision resolver #510 * avoid ultra-dark spits in woods * GI in progress: probe-gbuffer * probe lighting in progress * rework probes allocation * updates to rt-scene * improved integration; fix overflow in probes atlas * improve probe distribution; tune lighting * move probesLighting data into 11-bit float image * multibounce initial TODO: fix r/w race in probesLightingPrev * probes in progress; fix race in lighting pass * use sky irradiance as fallback, if we hvae no probes * probe integration in progress * improve bad-probe rejection * fixup * fix z-fighting in probes * GI: check gpu limits * generalize GI vs nonGI ambient * more light in forrest
Wanted to play with RT for ages and never found a FOSS implementation i liked. |
Going thru https://physicallybased.info Sun (above atmosphere): 143'000.f -> 128'000.f Uniform-ambient is estimated as: |
The latest screenshot looks more upd. |
Main issue with GI (or lighting in general), when it comes to gothic, are materials. Or should I say - lack there of. GI (and diffuse lighting) needs albedo data, but only thing we have in assets is a "photo-texture".
This is path one. Part 2: this heuristic has to be symmetrical with engine lighting.
Part 3. Due to the way inverse-tonemapping works,
... and now it violate P2, to avoid |
Sorry, I don't know what do you mean. If AO is by definition ratio of ray-hit/ray-miss, and if shader checking not only intersection - than it's not AO |
Concept
First prototype (branch: https://github.com/Try/OpenGothic/tree/gi-rendering)
and probes(~30k):
Reference materials:
Lumen: https://advances.realtimerendering.com/s2022/SIGGRAPH2022-Advances-Lumen-Wright%20et%20al.pdf
Combination of screen-space probes and world-space cache, for HW-RT part. In paper there is a lot about SDF and software ray-tracing, yet we wont do it, as so requires precomputational part in asset-pipeline
EA-surfels: https://www.youtube.com/watch?v=h1ocYFrtsM4
PRT probes: http://mrakobes.com/Nikolay.Stefanov.GDC.2016.pdf
Personally prefer this workflow (except we will have to do ray-casting in runtime)
Good summary on light-leaks :
https://handmade.network/p/75/monter/blog/p/7288-engine_work__global_illumination_with_irradiance_probes
Nice open-source project with multiple techniques implemented:
https://github.com/EmbarkStudios/kajiya/blob/main/docs/gi-overview.md
The text was updated successfully, but these errors were encountered: