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
* Scaffolding for testing how sampling neighbor probe volumes around edges of dynamic GI volumes can help with propagating GI from neighbors. Needs to be filled in
* typo
* work in progress
* Probe Volumes: Fix up case where ProbeVolume.hlsl is included and LIGHTLOOP_DISABLE_TILE_AND_CLUSTER is defined. Add support for dynamic GI border axes sampling all other probe volumes in order to propagate dynamic GI across volume boundaries.
* Fix fade calculation
* Fix warning about sign / unsign mismatch.
* cache and respect the HDRP asset Dynamic GI toggle at runtime for perf testing
* Probe Volumes: Dynamic GI: Add Neighboring Volume Propagation Mode to Probe Dynamic GI Volume Override for selecting which algorithm is used to inject dynamic GI from neighboring probe volumes at boundaries. Options include Disabled, Sample Neighbors Direction Only (reccomended), and Sample Neighbors Position and Direction
* Probe Volumes: Dynamic GI: If Dynamic GI is on, and Neighboring Volume Propagation is on, force probe volumes to upload to structured buffers and the atlas if they are within the rangeInFrontOfCamera or rangeBehindCamera distance.
* Probe Volume GI: neighboringVolumePropagationMode - change default to SampleNeighborsPositionAndDirection
Co-authored-by: Szymon Swistun <szymon@bonfirestudios.com>
Co-authored-by: pastasfuture <nickb@bonfirestudios.com>
[Tooltip("Advanced control for how probes at volume boundaries propagate light from neighboring Probe Volumes.\n\nDisabled: No light is propagated across neighbors.\n\nSample Neighbors Direction Only: Samples all probe volumes once per probe and evaluates light from the resulting probe data for each axis.\n\nSample Neighbors Position and Direction: Samples all probe volumes for all propagation axes at each axes neighboring probe position.\nPotentially more accurate than Sample Neighbors Direction Only, but significantly more expensive.")]
Copy file name to clipboardExpand all lines: com.unity.render-pipelines.high-definition/Runtime/Lighting/ProbeVolume/DynamicGI/ProbePropagationAxes.compute
posInput.positionWS = positionRWS; // TODO: Be careful about RWS here.
133
+
// float2 positionNDC; // unused in probe volumes.
134
+
// uint2 positionSS; // unused in probe volumes.
135
+
// uint2 tileCoord; // unused in probe volumes with light lists disabled.
136
+
// float deviceDepth; // unused in probe volumes.
137
+
posInput.linearDepth = abs(mul(GetWorldToViewMatrix(), float4(positionRWS, 1.0)).z); // needed for depth fade. TODO: Should be a max(0.0) but need to figure out the sign flip here.
138
+
139
+
// Completely disable normal and view bias in this context by setting the normal and view to zero.
// TODO: Rather than simply point sampling the incoming radiance, we could approximately evaluate the integral of the axis SG and the SH term using very similar math
177
+
// to what we use for converting from SGs to SH in ProbePropagationCombine.compute.
178
+
// In short, we would generate a zonal harmonic that approximately represents our SG, use it as a window for our SH data, compute the integral of our windowed SH term over the sphere,
179
+
// and use that as the amplitude for our axis SG (likely requires careful normalization).
180
+
// Point sampling might be good enough - would just be nice to have the option to compare.
Copy file name to clipboardExpand all lines: com.unity.render-pipelines.high-definition/Runtime/Lighting/ProbeVolume/DynamicGI/ProbeVolumeSphericalHarmonicsLighting.hlsl
0 commit comments