andewx / dieselfluid

Provides a modular extensible framework for SPH/Grid fluid solvers in Go, chosen for it's high performant C-like code builds, simple interfaces, and ease of concurrency. This repository is not an authoritative expert repository for fluid solvers but can be forked by those who would like to work with the Go framework when implementing a solver. OpenGL is used to monitor the solvers while keyframes may be exported to PBRT or Mitsuba for further rendering.
GNU General Public License v3.0
2 stars 0 forks source link

Spherical Harmonic Dynamic Diffuse Irradiance Model #5

Closed andewx closed 2 years ago

andewx commented 2 years ago

Issue: Modern engines can dynamically sample an environment and reconstruct low frequency diffuse information into spherical coordinates via constructed polynomials over a sphere. This reconstruction is known as spherical harmonics and is a fast/viable solution for creating dynamic diffuse lighting integrals. This spherical basis function doesn't need to be updated on a per frame basis. A separate rendering thread with initiates occasional low frequency sample renders into a cube map framebuffer.

Implementation: Designate sampler.Probe or multiple points for the basis of computing the diffuse irradiance map frames. Run asynchronous cube map construction on GL / Rendering Context with non specific time requirements. With GPU framebuffers assembled run CPU side construction of Spherical Harmonic function object. The spherical harmonic coefficients can then be passed into the uniform shader buffers and sampled for the requisite normal directions.

Probes can be designated per dynamic object or on a grid that extends from the view direction for foreground objects.

andewx commented 2 years ago

Not a core issue