relationship between the model and the renderer
Posted
by
acrilige
on Game Development
See other posts from Game Development
or by acrilige
Published on 2012-11-18T17:04:49Z
Indexed on
2012/11/18
17:25 UTC
Read the original article
Hit count: 281
I tried to build a simple graphics engine, and faced with this problems:
i have a list of models that i need to draw, and object (renderer) that implements IRenderer interface with method DrawObject(Object* obj). Implementation of renderer depends on using graphics library (opengl/directx).
1st question: model should not know nothing about renderer implementation, but in this case where can i hold (cache) information that depends on renderer implementation? For example, if model have this definition:
class Model { public: Model(); Vertex* GetVertices() const; private: Vertex* m_vertices; };
what is the best way to cache, for example, vertex buffer of this model for dx11? Hold it in renderer object?
2nd question: what is the best way for model to say renderer HOW it must be rendered (for example with texture, bump mapping, or may be just in one color). I thought it can be done with flags, like this:
model->SetRenderOptions(RENDER_TEXTURE | RENDER_BUMPMAPPING | RENDER_LIGHTING);
and in Renderer::DrawModel method check for each flag.
But looks like it will become uncomfortable with the options count growth...
© Game Development or respective owner