In game engine development, what are ways of abstracting from a renderer to the graphics API-agnostic back-end?What I mean when asking this, is initially when developing a renderer can you provide C++ pseudo-code of various designs that is professionally thought of when it comes to rendering, and in details what should a renderer be capable of? Meaning in terms of a fully mature render in the context of wanting to expand an engine to being a multipurpose engine?What are C++ pseudo-code of how renderers have been implemented, just to get an idea of how other renderers have been implemented.Please including a specific overview of tasks (command buffers), submission-flow, swap chains, render passes, and rendering that actual scene (draw calls) in the context of renderer.An example of what I have seene are the following below, how do generally if working on a professional renderer would handle from basic rendering tasks here to rendering a more complex scenes?// While assuming that these tasks involve mesh generation, adding to command buffers, command queue, swap chains, and even the render pass that makes calls to the actual draw call.Renderer::DrawCube({10, 10}, {size.x, size.y}, {r, g, b, a});Renderer::DrawString("This is text", {0, 0});
In game engine development, what are ways of abstracting from a renderer to the graphics API-agnostic back-end?
What I mean when asking this, is initially when developing a renderer can you provide C++ pseudo-code of various designs that is professionally thought of when it comes to rendering, and in details what should a renderer be capable of? Meaning in terms of a fully mature render in the context of wanting to expand an engine to being a multipurpose engine?
What are C++ pseudo-code of how renderers have been implemented, just to get an idea of how other renderers have been implemented.
Please including a specific overview of tasks (command buffers), submission-flow, swap chains, render passes, and rendering that actual scene (draw calls) in the context of renderer.
An example of what I have seene are the following below, how do generally if working on a professional renderer would handle from basic rendering tasks here to rendering a more complex scenes?
// While assuming that these tasks involve mesh generation, adding to command buffers, command queue, swap chains, and even the render pass that makes calls to the actual draw call.
Renderer::DrawCube({10, 10}, {size.x, size.y}, {r, g, b, a});
Renderer::DrawString("This is text", {0, 0});
Step by step
Solved in 2 steps