You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dynamic GI sky lighting (#53)
* Sample sky lighting on the edges of Probe Volumes for dynamic GI propagation.
* Added Sky Contribution setting to Probe Dynamic GI volume component.
* Renamed "Sky Contribution" to "Sky Multiplier" to fit better with "Baked Emission Multiplier".
* Removed the Direct Contribution setting and normalization that led to all bounces being effectively multiplied by 0.5 with default settings.
* Rotate axes in ProbePropagationCombine in the way consistent with other stages.
* Added Max Albedo setting for dynamic GI to prevent infinite bounces from blowing up the lighting.
* Apply validity to emission. Cleanup.
* Changed default Max Albedo to 0.9.
* Divide dynamic GI direct lighting by Pi to fix the look.
* Experimental changes to skylight and direct hit injection before looking deeper into our SG-to-SH conversion.
* Replaced weight normalization in hit and miss passes with prenormalized amplitudes. Experimental.
* Added the inv-pi normalization to infinite bounces.
* Finish fixing up normalization of hits, misses, and sky. Additionally, add amplitude adjustment for edge and diagonal SGs
* Fixed StackLit shader graphs compilation by adding missing ComputeReflectionProbeNormalizationDirection function, expected by the LightLoop.
* WIP Dynamic GI bases: Windowed Spherical Gaussian and Ambient Dice
* Turn back on sky contribution
* More iteration
* Latest
* Cleanup dynamic gi propagation bases defines into their own header that exposes an api so that callers do not have to know the specifics of the basis. Expose all bases as options on the Probe Dynamic GI volume override
* Miss integral
* Fix hit and miss lobe creation to the more subtle, but correct implementation that got lost during the cleanup.
* Formalize the logic for injecting light from neighboring probe volumes / sky into a basis axis. Convolve the incoming irradiance with the zonal harmonic representation of the neighbor basis lobe in order to analytically evaluate the incoming irradiance over the entire lobe, rather than just the point sample. I compared this against a brute force monte carlo sampling of the SH over the neighbor axis lobe and the results are almost completely indestringuishable. The accuracy is based on how accurate the ZH fit of the neighbor axis lobe is.
* remove some dead code
* delete more dead code
* Add back a line of code I accidentally deleted in the cleanup
* Split up the basis options into a basis dropdown and a basis propagation override dropdown. Removed the not useful no diagonal basis options. Added ambient dice wrapped options to the propagation override modes
* Remove old option for SH from SG Mode: We now always use the correct SH From SG via zonal harmonic fit conversion. Changed the default propagation override to Basis Ambient Dice Wrapped Super Soft. Fixed a subtle bug with skylight propagation - use the current axis lobe direction for sampling the sky, not the neighbor direction. This makes it consistent with how hits are propagated (and cleans up a little code in the process)
Co-authored-by: pastasfuture <[email protected]>
Dynamic GI:
Dynamic GI: Fixed Dynamic GI and the neighborhood debug draw when there are 0 hits in a volume (no geometry was hit).
Renormalize axes of Dynamic GI bases to support different quality (#61)
* Added frame settings for Dynamic GI quality to be able to preview it in edit mode.
* Precalculate and normalize axis weights on CPU.
[Tooltip("Advanced control for probe propagation combine pass.\nSamplePeakAndProject: Spherical gaussians will simply be evaluated at their peak and projected to convert to spherical harmonics.\nSHFromSGFit: A spherical gaussian to spherical harmonic function fit is used, which is physically plausible.\nSHFromSGFitWithCosineWindow: A spherical gaussian with an additional cosine window to spherical harmonic function fit is used, which is physically plausible. Less directional blur than SHFromSGFit.")]
0 commit comments