Skip to content

How to design a flexible framework for rendering algorithms demo

Yaochuang edited this page Jan 14, 2019 · 4 revisions

practical for GlobalIllumination code

  • A self-contained assert system to check parameter and conditions. It would give a unified feeling.
    • It requires a detailed plan about return value of function call.
  • Different Camera, Camera Parameter leads to Uniform Buffer Update.
    • Camera holds a device resource to update by itself ?
    • Camera notify 3rd module to do that ?
  • Different Render Target: Final Scene, Scene Depth, Shadow Map, G-Buffer
  • Mesh Data & Device Buffer
  • Different Render Pass & Different Render Target & Different Vertex Layout
  • UI system and Font Rendering
  • Separate Init Stage to make it more flexible

Case Study

There is a small framework for D3D12 in DeferredTexturing in github. I would give a review and hope to learn something.

Window and swap chain update

  • a class Window to handle stuff involving with windows system.
  • a class App register a call back function to handle swap chain rebuild.

User options

  • It is a little complicated design.
  • It Put it in framework to make it deeply involved with application. It should give a way and let app to do it.
    • Perhaps by pure virtual function to enforce app to implement its own way.

It takes a long time to startup

Shader Management