Support DLSS Ray Reconstruction with orthographic cameras
- Dominant language
- Rust
- Stars
- 48.2k
- Forks
- 4.8k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 161
Description
## What problem does this solve or what need does it fill?
Bevy currently extracts DLSS components only when the camera projection is perspective:
https://github.com/bevyengine/bevy/blob/v0.19.1/crates/bevy_anti_alias/src/dlss/extract.rs#L21
As a result, DLSS and DLSS Ray Reconstruction are silently disabled for orthographic cameras. This is especially noticeable with Solari, because its noisy ray-traced output is then displayed without DLSS-RR denoising.
## What solution would you like?
Support orthographic cameras in the DLSS integration, including correct depth, motion-vector, and temporal-jitter handling.
If the underlying DLSS SDK cannot reliably support orthographic projections, Bevy should emit a clear warning when DLSS is attached to an orthographic camera instead of silently disabling it.
## What alternative(s) have you considered?
- Approximating an orthographic camera using a distant perspective camera with a very small field of view.
- Using TAA or another denoiser, although these do not provide the same Solari denoising quality as DLSS Ray Reconstruction.
- Removing the `is_perspective()` check in a downstream fork, but this is unverified and may produce temporal artifacts.
## Additional context
Tested with Bevy 0.19.1, Solari, Vulkan, and an RTX GPU that reports `DlssRayReconstructionSupported`.
The DLSS component is successfully inserted into the camera entity, but it is removed during render-world extraction because the camera uses `Projection::Orthographic`. The resulting Solari image contains clearly visible noise around contact shadows and indirect-lighting regions.
Contributor guide
Research direction
Start at crates/bevy_anti_alias/src/dlss/extract.rs, especially the perspective-projection check, and trace how orthographic cameras are removed during render-world extraction. Reproduce the setup described with Solari, Vulkan, and an RTX GPU, then verify whether the DLSS SDK supports orthographic projections and their depth, motion-vector, and temporal-jitter requirements. Done means orthographic DLSS and Ray Reconstruction work correctly, or a clear warning is emitted instead of silently disabling them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics, game-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100