Skip to content

Global illumination V2 #945

Description

@Try

Starting new issue, for new and better GI, successor to #510

Concept:

  • Irradiance cache points, similar to offline rendering

Goals:

  • Improve quality (multi bounce)
  • Allow scaling to low-end most hardware

Key building blocks

  1. Irradiance points for final gather
  2. RayQuery (if supported), for tracing rays
  3. ??? for world-space irradiance cache

Prototype (https://github.com/Try/OpenGothic/tree/gi-rendering-2)

(only sun is pathtraced, 64 paths per IC)
Image

Image

First bounce (working)

GBuffer driven hole filling on empty-tile.
Iterative hole filling on tiles with healthy cache.

Second bounce (idea)

On primitive storage for cache-points. uvec2(instanceID, primitiveID) form a key to hash table, with multiple records for cache-points.
Spawn of secondary surfels restricted by remaining path energy.

Reference materials:

DreamWorks:

https://www.tabellion.org/et/paper/siggraph_2004_gi_for_films.pdf
https://cgg.mff.cuni.cz/~jaroslav/gicourse2010/giai2010-04-eric_tabellion-slides.pdf
Very game-friendly setup, with min/max surfel radius accounted in interpolation math.
Image

Disney(Cache Points for Many-Lights)

https://cdn.disneyanimation.com/uploads/publications/DIGIPRO2024_cachepoints_paper_final.pdf
https://disneyanimation.com/publications/cache-points-for-production-scale-occlusion-aware-many-lights-sampling-and-volumetric-scattering/
https://media.disneyanimation.com/uploads/production/publication_asset/177/asset/a.pdf
Not today tech for a game, but maybe valid future-looking idea. Maybe some particular building blocks can be of use.
Image

Extended:
https://www.cs.umd.edu/~zwicker/publications/RadianceCachingParticipatingMedia-TOG08.pdf
https://dcgi.fel.cvut.cz/wp-content/wpallimport-dist/publications/pdf/publications-2006-krivanek-egsr-mricp-paper.pdf
https://sgvr.kaist.ac.kr/~sungeui/SGA08/course_note/IC.pdf
https://studios.disneyresearch.com/wp-content/uploads/2019/03/Practical-Hessian-Based-Error-Control-for-Irradiance-Caching-2.pdf
https://cgg.mff.cuni.cz/~jaroslav/papers/2008-irradiance_caching_class/03-greg-ic.pdf
https://people.mpi-inf.mpg.de/alumni/d4/2016/rherzog/Papers/herzogEG09.pdf

Reference materials (rendering):
Micro-rendering:
https://jankautz.com/publications/microrenderingSIGAsia09.pdf

Image

Today probably, no point to bother with surfel-clouds. Instead same concept can be implemented with nanite-like visibility buffer. Every micro-framebuffer is ~24x24 pixels, making any polygon effectively micropoly that can be rasterized with atomicMin

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions