Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement distance adaptive shadows on the CPU #22

Open
Dawoodoz opened this issue Aug 7, 2020 · 0 comments
Open

Implement distance adaptive shadows on the CPU #22

Dawoodoz opened this issue Aug 7, 2020 · 0 comments
Labels
enhancement New feature or request Low priority No rush to have this done, because other things are more urgent. Realism

Comments

@Dawoodoz
Copy link
Owner

Dawoodoz commented Aug 7, 2020

This can currently be done by using multiple light sources, but this is quite expensive. A combination of multiple light sources and temporal smoothing of shaking lights can improve the performance. If temporal filtering is applied as motion blur using a cyclic buffer on the final result (diffuse x light), it will look natural even if something moves. If the number of light positions in the loop equals the number of image in the cyclic buffer, the perceived image will be stable by subtracting the oldest image before adding the new image from the same relative translation offset.

If large blocks of illumination are known to have no shadows by not casting from the floor, sampling the depth based shadow maps can then be skipped and save around 80% of the computation time. Regions entirely in shadows can even be skipped completely.

The goal is to look better than Nvidia RTX enabled games (ugly noise filter) and run faster on a budget CPU.

@Dawoodoz Dawoodoz added enhancement New feature or request Realism labels Aug 7, 2020
@Dawoodoz Dawoodoz added the Low priority No rush to have this done, because other things are more urgent. label May 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Low priority No rush to have this done, because other things are more urgent. Realism
Projects
None yet
Development

No branches or pull requests

1 participant