Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm planning to use a component based architecture for a new 3D game engine I plan to work on, however I don't know how to approach the rendering side of things.

I can see two options here:

  • Every renderable game object has a RenderComponent, which stores a mesh and OpenGL-specific stuff like VBOs and VAOs. When the time comes to have update() called, it will use OpenGL to render itself.
  • Every renderable game object has a MeshComponent. When it's time to render, the Renderer would go through a list of all MeshComponents, extract vertex and material information, and render it.

Which option would be most flexible if I want to implement things like post-processing (bloom, motion blur), skyboxes, LOD, blending/transparency or implementing a deferred renderer?

share|improve this question
Might interest you: gamedev.stackexchange.com/questions/47117/… –  Luke B. May 26 '13 at 20:23
@LukeB. That's a fantastic post, and it solved my question. If you're allowed to post that link as an answer, I'll mark it as solved. :) –  Jishaxe May 26 '13 at 23:13
Maybe you could explain your solution in an answer and accept that, I would love to see your interpretation of that answer :) –  Luke B. May 27 '13 at 1:09
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.