A new Magnum example implements an analytic method for area light
shading presented in the paper “Real-Time Polygonal-Light Shading with
Linearly Transformed Cosines”, by Eric Heitz, Jonathan Dupuy, Stephen Hill
and David Neubelt.
The Magnum C++11/C++14 and OpenGL graphics engine gained OpenGEX
format support, a bunch of new importer plugins, cross-platform extension
loader, transform feedback support and new features from OpenGL ES 3.1 and
OpenGL 4.5, among other things.
The Magnum C++11 and OpenGL/OpenGL ES/WebGL graphics engine gained
experimental Android support, windowless applications on OS X and Windows,
uses SDL2 as the default toolkit, adds new texture and mesh features,
improves build system and got huge documentation review.
Since the previous October snapshot Magnum gained Visual Studio port,
font conversion utility, improved text rendering along with example
application, support for OpenGL debug output, documentation updates, better
test coverage and many more usability improvements and fixes.
Large C++ projects often suffer with very long times for both full
and incremental compilation, severely hurting productivity. The following
series will overview some techniques employed in Magnum to make iteration
times smaller, this article focuses on code-based optimizations.
Regardless to what language you use, you always need to think about
memory management. Garbage collectors might give you a sense that it’s done
automagically, but to get more performance you need to have control over
heap usage in code running at 60 FPS. C++11 helps to avoid many heap
allocations without sacrificing usability.