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

Basic implementation of RenderPass based architecture #4272

Merged
merged 9 commits into from
May 26, 2022

Conversation

mvaligursky
Copy link
Contributor

@mvaligursky mvaligursky commented May 25, 2022

This is a first step in the implementation of #4271. ForwardRenderer, instead of directly rendering the scene, performs two steps:

  1. analyses the scene, and constructs a FrameGraph of rendering passes. Only layers rendered by the cameras are fully split into render passes, other rendering systems (shadows, grab passes, post-effects and similar) are inserted into the frame graph as black boxes. Those will be further broken down into actual render passes in the future.
  2. renders the generated render passes

Other changes:

  • making Debug.setTrace public, to allow external applications to enable log tracing
  • added few trace ids for debug logging related to render passes

example of the trace output for post-effects engine example
Screenshot 2022-05-25 at 11 47 48

and here are the frame passes from the same example when postprocessing is disabled - this results in a smaller number of render passes, which in the future PRs will translate to a smaller number of multi-sampled resolves:
Screenshot 2022-05-25 at 11 49 41

@mvaligursky mvaligursky marked this pull request as draft May 25, 2022 10:02
Martin Valigursky added 2 commits May 25, 2022 11:08
@mvaligursky mvaligursky requested a review from a team May 25, 2022 10:42
@mvaligursky mvaligursky marked this pull request as ready for review May 25, 2022 10:43
@mvaligursky mvaligursky self-assigned this May 25, 2022
@willeastcott willeastcott added enhancement area: graphics Graphics related issue labels May 25, 2022
@willeastcott willeastcott changed the title Basic implementation of RenderPass based architexture Basic implementation of RenderPass based architecture May 26, 2022
src/core/debug.js Outdated Show resolved Hide resolved
mvaligursky and others added 2 commits May 26, 2022 07:25
Co-authored-by: Will Eastcott <will@playcanvas.com>
@mvaligursky mvaligursky merged commit 8659454 into main May 26, 2022
@mvaligursky mvaligursky deleted the mvaligursky-render-pass branch May 26, 2022 14:49
@mvaligursky mvaligursky mentioned this pull request Jul 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: graphics Graphics related issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants