I am writing a game engine and I want people who use it allow to define the rendering pipeline. Just they can define the scene geometry, characters, items, light sources, and so on. So the term programmable pipeline doesn't refer to using custom shaders in OpenGL, which is the case anyway.

To provide a programmable pipeline, I want to abstract the OpenGL level so that people who use the engine don't directly have to struggle with framebuffers, render targets, and so on. The definition of the pipeline have to be done in scripting. The engine will then load the definition and create the framebuffers, render tagets and so on at initialization time.

Are the already approaches to this kind of a programmable pipeline in game engines? How can I let the people who use the engine define the pipeline on a sensible abstraction level? I do not want them to create all their render targets on their own. It would be better to just define connections beweent passes and the shaders which should be used.

Another problem is to connect geometry and lights with the pipeline if it is customizable. How can I approach this challenging goal? Every idea, as answer or comment, is appreciated.


1 Answer 1


I would recommend looking at as many other engines as you can to see how others have accomplished this task. Creating a general use/universal engine is much more of a challenging task than creating an engine used for smaller one time use projects.

  • \$\begingroup\$ You are right that it is much more challenging, that's why I enjoy it so much. Do you know of engine which provide programmable rendering pipelines? \$\endgroup\$
    – danijar
    Mar 28, 2013 at 14:40
  • \$\begingroup\$ I think Source does a neat job of abstracting out a lot of the rendering details. Of course, I could be damn wrong, so take my advice with a grain of salt. \$\endgroup\$ Mar 28, 2013 at 14:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .