A simplistic cross-platform scene graph based OpenGL 3D graphics and physics engine
Written in C++ to maximize portability and performance. Currently implemented support for Desktop (using GLUT as window manager) and iOS.
Rather then referencing Drawable object from each node, this engine utilises somewhat inverted approach. Each object (Drawable or some other) that can occur multiple times in scene is called Occurable. Those kind of objects contain list of all scene nodes at which instance of object should appear. This makes rendering of simple scenes that contain many instances of the same object very efficient.
All rendering is done by shaders and system is designed to make use of shaders user-friendly.
A simple but very useful Resource manager class and concept.
Many properties can be manipulated through XML file so system can be used to achieve broad set of effects like fire, rain/snow, jet engines, explosions, etc...
Collision detection and particle simulations.
- libpng
- GLUT
- TinyXML
- Inherit Application class.
- In constructor add scene content- use getScene() and getResourceManager() to do so
- Instanciate your class and call base mathod run() on it.
See Example.hpp/cpp
(new d3::Example("/path/to/resources"))->run();
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
This is a work in progress.