engine icon indicating copy to clipboard operation
engine copied to clipboard

Refactor the main render pass used by the forward renderer

Open mvaligursky opened this issue 1 year ago • 1 comments

Current situation:

  • We have a LayerComposition, which contains an ordered list of layers, and also order list of cameras using those layers. From these lists, a list of render actions is created - each render action representing a camera rendering a single layer to a render target.
  • Forward renderer the analyses a list of render actions, and generates render passes for those, where each render pass renders multiple layers into a render target. In between as needed, other render passes are scheduled, for examples shadows, cookie atlas update, color / depth grab pass, post effects and similar.

Goal:

  • Main goal is to give users controls over render passes of the whole frame, to enable them also also the engine internally the effects we currently cannot easily do, for example depth pre-pass, SSAO that runs before the main scene, new modular post effects, SSR, TA and anything like this which involves many render passes for the content in the scene.
  • In order to do this, we need to make the main render pass more self-contained with a simpler interface, allowing it to be used to build custom render passes for the frame.

Work:

  • Refactor the current main forward render pass to be more flexible and self-contained.

mvaligursky avatar Sep 28 '23 12:09 mvaligursky

Note: This is mostly done, in an experimental stage, while more passes are added to handle additional effects the users might want (like depth pre-pass, TAA) ...

mvaligursky avatar Jan 16 '24 16:01 mvaligursky