Rendering Competition 07/08

A flexible file format

Instead of using cumbersome obj files to describe our scene, we decided to build our own XML-based file format.

Features

BZip2 compression

As the tags used with XML are of course far from optimal in storage and increase the size quite a bit, we added support for BZip2 compressed xml files.

Animation

We include support for defining the range of frames to render, and separation of static, affine and dynamic objects. Static objects only need information for the first frame and a world matrix. Affine objects need a world matrix for every frame. Dynamic objects are described in world coordinates (to reduce the number of matrix transformations at runtime) and include mesh information for every frame.

Materials

Objects can share material data, which is defined in an extra file, loading of currently implemented Materials is supported. In addition one can load UVs for vertices.

Cameras

Perspective cameras can have per frame positions and viewing directions.

Lights

Any kind of implemented light can be loaded.

Export

For quick exporting a Blender script has been written. (Can be found in the /xml subfolder of the project root)

As xml files become big very easily and DOM parsers are unable to handle such data (without unacceptable memory overhead), we use the xmlpullparser implementation from WSDLPull.