bevyengine / bevyengine/bevy

TAA followup tracking issue

Open
#8,423 2 comments 0 reactions 1 assignee Claimed by @JMS55 View on GitHub
A-Rendering C-Bug C-Feature C-Performance C-Tracking-Issue
Dominant language
Rust
Stars
48.2k
Forks
4.8k
Avg merge
3d 22h
Merged PRs (30d)
161

Description

TAA got merged in https://github.com/bevyengine/bevy/pull/7291, but there's a couple of things we could do better.

## Compatibility
- [x] Write motion vectors for skinned meshes correctly
- [x] Write motion vectors for morph targets correctly
- [ ] Write motion vectors for materials with parallax mapping correctly
- [ ] Support jittering orthographic cameras

## Quality
- [x] Mip biasing for sharper textures https://github.com/bevyengine/bevy/pull/7614 https://github.com/bevyengine/bevy/issues/7323
- [ ] Investigate FSR techniques and more advanced TAA disocclusion heuristics to replace the rather naive history confidence mechanism we currently have (https://github.com/GPUOpen-Effects/FidelityFX-FSR2#the-technique, plane validation https://diharaw.github.io/post/adventures_in_hybrid_rendering)
- [ ] Extra input filter to improve sharpness (Blackman-Harris or Mitchell-Netravali)
- [ ] Flicker reduction
- [ ] Investigate YCbCr vs YCoCg
- [ ] Investigate whether variance(clipping) is necessary in YCoCg, vs just min/max clamp or clip
- [ ] Consider moving TAA to be after the opaque pass, but before the transparent pass.

## Performance
- [ ] Use a uniform buffer for reset instead of shader defs
- [ ] Move TAA to a compute shader instead of a fragment shader (threads can collaborate to load history and other textures into workgroup shared memory)
- [ ] Double buffer mesh/view transform uniforms, rather than writing new buffers for the past-frame's values each frame
- [ ] Figure out COD's 1-tap bicubic filter https://www.activision.com/cdn/research/Dynamic_Temporal_Antialiasing_and_Upsampling_in_Call_of_Duty_v4.pdf#page=64

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.