Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 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 <pastasfuture@gmail.com>
- Loading branch information