playcanvas / playcanvas/engine

Implement progressive multi-frame rendering

Open
#3,361 6 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: graphics enhancement performance
Dominant language
JavaScript
Stars
16.8k
Forks
2k
Avg merge
4h 32m
Merged PRs (30d)
222

Description

The algorithm is described in GPU Pro 7, chapter 3.1
Screenshot 2021-07-23 at 13 52 47

It allows for image quality to improve when the camera is static (and the scene is not animated) by accumulation of slightly shifted frames. This generates high quality antialiasing (TAA), and can also be used to generate soft shadows. All this without requiring (many) additional resources.

Additionally, we could possibly add support for progressive scaling here .. rendering the scene in lower resolution when the camera moves to keep the performance higher, and use full resolution when the camera stops.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with GPU Pro 7, chapter 3.1, then trace the engine's rendering path to determine where shifted-frame accumulation belongs. Clarify whether the scope includes temporal antialiasing, soft shadows, progressive resolution scaling, or all three; done should include a working progressive-rendering result with quality improving while the camera and scene remain static.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
computer-graphics, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.