We recently finished a project for the Cisco Live event in San-Diego.
A project where we build the “you make possible logo” out of dancing people.
Since it was build in Cinder, some tech info.
When zoomed out at maximum the logo uses 24000 videos.
We made a program to preview the animations and render them.
To speed up this process we did the following:
- moved all the resizing tasks to threads which works great on our 12 core cpu.
- cached frequently used frames in memory (our machine had 32Gb of ram)
- created thumbnails at different size per video frame and start from there.
At first the mosaic logo didn’t look very good.
We implemented AA around the edges and rendered the whole thing at double the size and than scaled it back to desired size.
These improvements slowed things down but the result was much better.
As for the capturing we used a Kinect v2 and instancing for rendering the particles.
It was the first time we used PBO’s for capturing the FBO of the people dancing.
We had to upgrade our cinder to Paul Houx’s glad version in order to use the glNamedFramebufferReadBuffer function which is only available from OpenGL 4.5.
Asides this we also used the imagemagick cpp library for rendering GIF files for the e-mail.
All video was done in DXT5 format. Large files but very flexible for playing multiple files at once without gaps.
Feel free to ask for more info.