Use Interleaved gradient noise for shadow samples #45326
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Instead of using white noise for shadowmap lookup, rotate samples with interleaved gradient noise (IGN). IGN is described as being halfway between a dither pattern and noise. It is extremely fast to compute (about half the instructions of our previous noise), and most importantly has very little low frequency properties. This means that it looks more uniformly "random". White noise tends to have "clumping" artifacts making the noise more obvious.
I didn't go with this initially because I was afraid of the obvious dither pattern. But as I read more and use the engine more it is clear that white noise is just not as good.
Comparison image: Top is white noise, bottom is IGN