Clockwork is a software renderer written to understand the nitty-gritties of the graphics pipeline.
Clockwork requires Qt version 5.5 and above, as well as a compiler that implements the C++14 standard, at least.
For GNU/Linux distros, open up a terminal and run the following commands
$ git clone https://github.com/othieno/clockwork.git --recursive
$ cd clockwork/
$ qmake
$ make
$ ./build/clockwork
The folders provided with this software are structured in the following manner:
- documentation contains research, design and implementation documentation;
- resources contains binary or data files such as 3D model assets;
- scripts contains scripts that automate various tasks;
- src contains the full source code tree;
- tests contains unit tests as well as benchmarks.
This is a work in progress and while I've done my best to make sure the code is void of nefarious intentions such as attempting to launch nuclear ABMs or, more realistically, destroying the content of your hard drive, a few bugs may still run wild. If you do find one, please don't hesitate to open an issue or create a pull request!
- The OpenGL Wiki, The Khronos (TM) Group.
- Graphics Programming Black Book, Michael Abrash.
- Designing the Framework of a Parallel Game Engine [PDF], Intel (R) Developer Zone.
- Understanding and Using Scene Graphs [PDF], David Woolford.
- Qt vs. Java - A Comparison of Qt and Java for Large-scale, Industrial-strength GUI Development [PDF], Matthias Kalle Dalheimer.
- Event-Driven Programming: Introduction, Tutorial, History v0.2 [PDF], Stephen Ferg.
- FXAA white paper [PDF], Timothy Lottes.
- The Inefficiency of C++ Fact or Fiction? [PDF], Anders Lundgren & Lotta Frimanson.
- Data alignment: Straighten up and fly right [PDF], Jonathan Rentzsch.