CatDogEngine icon indicating copy to clipboard operation
CatDogEngine copied to clipboard

[FrameGraph] Improve high level rendering usages

Open T-rvw opened this issue 3 years ago • 4 comments
trafficstars

1.A resource manager holds every resource handles in bgfx. Any renderers can use string to find the expected one. 2.As RenderGraph talk said, I need to split resource compile stage away from render logic!

T-rvw avatar Oct 17 '22 05:10 T-rvw

The first step was done easily by adding StringHash support and moving resource creation apis to RenderContext. FrameGraph / RenderGraph is on the way!

T-rvw avatar Nov 02 '22 10:11 T-rvw

  • Posts except the source talk in GDC.
    • Machinery Post : https://ruby0x1.github.io/machinery_blog_archive/post/high-level-rendering-using-render-graphs/index.html
    • Ubi DX12 Talk : https://www.gdcvault.com/play/1024656/Advanced-Graphics-Tech-Moving-to

T-rvw avatar Dec 02 '22 16:12 T-rvw

  • Reference Projects
    • https://github.com/acdemiralp/fg
    • https://github.com/Themaister/Granite
    • https://github.com/skaarj1989/FrameGraph-Example

T-rvw avatar Dec 02 '22 17:12 T-rvw

Current understanding to implement Render Graph on top of bgfx. The requirement is:

  • Manage transient or other kinds of Resources Lifetime.
  • Convert RTV and SRV automatically if need to blit.
  • Input Effects, Passes, Resource Dependencies and output sorted passes in high performance.
  • Submit structed/uniform buffers automatically.
  • Support multiple rendering pipelines.
  • [Optional] Insert Fence/Barrier to reasonable positions. But it is only for modern backends.

T-rvw avatar Apr 17 '23 16:04 T-rvw