bevyengine / bevyengine/bevy

Support DLSS Ray Reconstruction with orthographic cameras

Open
#25,519 2 comments 0 reactions 0 assignees View on GitHub
A-Rendering C-Bug D-Straightforward S-Ready-For-Implementation X-Uncontroversial
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.

Image

Contributor guide

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.