Taking the High (res) Road
During production of Swing, we anticipated and encountered early the issue of resolution for the over-fifty 2D, alpha-channel videos that needed to be playing for the entire duration of the film. There were two major bottlenecks in regards to optimization, the 2D looping animations and the 2.5 Quill animation, exported as geometry and separated frame by frame in Maya. The “weight” of these assets made playback virtually impossible on certain systems, and even after the most recent and “final” optimization for distribution, I, the director of the film still cannot play Swing on my own personal headset, which is capable of playing most other Oculus downloads.
One of the problems that we ran into was having 54 animated souls spinning around the scene for the entire five minute duration while maintaining a high level of detail. One way to tackle the problem was to create a 4k video file and use that as a texture on a cylinder. The first attempt was to squeeze the aspect ratio into a square. When attached to the cylinder, the animation had a bit of aliasing. While being at 4k, the resolution was not as high quality as we would like. Larger than 4k and the whole animation experience would make the system slow down and stutter. The next option we tried was to make a square format video but have the images in a 16:9 format to then project on the cylinder. This ended up also not having enough resolution as well. The last option that enabled the higher quality while maintaining playability was to use flipbooks. Each soul was converted into a flipbook image using GlueIt2006. In Maya, every other polygon was deleted. Then on each of the remaining faces, we applied an individual shader with a UV space of (0,1). When brought into Unreal each shader was replaced with an animated flipbook. Each image is 3600×4800. We are currently researching how to lower the resolution for lower powered machines to check the frame rate and switch automatically to give the best playability.