The project is going smooth and we are beginning to get comfortable with the engine we have chosen, the G3D Innovation Engine! In this post we’ll give you a brief explanation of the engine, and the next couple of posts will concern Photon Mapping!
A Graphics Engine for Research
The one thing that is particularly cool about the G3D Innovation Engine is that it is actually built more or less as a research tool. Instead of building a full flexed game engine to be used for game development, or a mega-awesome renderer for architectural purposes, G3D focuses on boilerplate and flexibility.
G3D provides a set of routines and structures so common that they are needed in almost every graphics program. It makes low-level libraries like OpenGL, network sockets, and audio channels easier to use without limiting functionality or performance. G3D is a carefully designed, feature-rich base on which to prototype your 3D application.
When looking at projects that have been developed in G3D you get an idea of what kind of applications G3D is suitable for. We have a raytracer, a rasterizer, a photon mapper, tesselation, hull-shaders, geometry-shaders, and also the Image Space Photon Mapping (ISPM) that we want to re-implement (by the way, the source code of ISPM is only partly accessible).
Developing in G3D
A downside of developing in G3D is that the engine is not very big and thus does not have a big community. Unlike Unity, for instance, one can not count on the “someone must have had the same problem”-card. However, G3D is very well documented. This point is well worth stressing. Especially the API reference is well structured, consistent and also pedagogical. Here are some examples of G3D documentation:
This was a brief post about the G3D innovation engine, our engine of choice for this particual project! Our next few posts are going to be more technical and focus on the project itself and what we are currently working with! Next up is most likely a post on Photon Mapping!
// Philip and Axel