Vorticity is a OpenGL 3D engine written in C++.
Early drafts of the and development were started by Michał Siejak
in 2009 and then continued in 2010 during the Arsen augmented reality
game project. I joined the project also in 2010 during Computer Graphics course where Vorticity was
our final project.
The engine is heavily based on a dynamic scene graph concept where each node performs computations
that lead to the synthesis of the final frame image. This approach allows for great flexibiity in
expanding the rendering pipeline by addition of Node classes like new light, geometry types or animation
controllers. The OpenGL renderer class uses NVIDIA Cg Toolkit for parsing CgFX effect files which allows
for fully programmable shading including multipass shaders or technique selection most suitable for
Support for OpenGL frame-buffer objects combined with a simple post-processing pipeline allows
for effects such as full screen gaussian bur or HDR rendering with bloom effect in bright areas.
My contributions to the project were:
- IO subsystem: 3dsmax exporter plugin to engine format, in-engine model loading code
- C++ Library for reading and writing engine's mesh format
- Moving build system from Visual Studio .sln files to CMake
- Porting the engine to Linux - implementation of Xlib event loop and GLX initialization.
- Improvements for different compilers compatibility (gcc, clang, VS)