CppCon 2016: Alexandru Voicu “Optimally Shooting Furry Balls out of Vulkanoes"
Published on Oct 6, 2016
Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/cppcon/cppcon2016
Real-time 3D graphics rendering is commonly agreed upon as one of the more interesting haunting grounds for a programmer. Similarly, whether by way of presentations or canonical books, experts in the field talk about using C++ for rendering beautiful scenes. It is just that when looking at the "C++" bits they don't quite seem...right. In effect, they frequently look like anything but what has come to be accepted as idiomatic, modern, good quality C++. And this was before the advent of a new generation of graphics APIs whose claim to fame is being "low-level", and thus, in some sense, even more abstraction adverse. One must wonder, is this the only way to get pixels on our HiDPI screens to light up in pleasing patterns?
Having been on the receiving end of more than one "this uses modern C++, and no function-like macros, how can it possibly work for what we do?" tirades, the talk's author thinks that a better way exists. Attendees will see that it is possible to write beautiful, clean, portable C++ that yields beautiful graphics by leveraging the recently released Vulkan API. Using bottoms-up design, a minimal yet sufficient set of generic abstractions emerges, freeing programmers from the burden of dealing with API idiosyncrasies. The best part? These abstractions will be derived live, by the audience and the presenter, and we will see that the essence of things is straightforward, and not some mysterious ineffable quantity only known to a handful of gurus.
Watford, United Kingdom
Until recently, I was a Senior Software Engineer at Imagination Technologies, where I did my best to drive GPUs towards painting the prettiest pixels imaginable in no more than 16.6 milliseconds per masterpiece. A large part of my work concerned itself with obtaining generic C++ abstractions that optimally map to modern APIs, such as Vulkan or DirectX 12. Before joining Imagination Technologies, I spent a fair amount of time breaking things in Microsoft's Visual C++ libraries team, mostly in relation with C++ AMP.
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com