Rendering

Contents:

This is the Visualization team

Oliver Strutynski, Florian Echtler, Heike Kraft, Tobias Klug, Christian Hessmann, Stefan Metzger, Christian Reiser

Architecture of the visualization component for the FataMorgana System

Due to the requirements for a reliable and flexible AR system we have agreed on building a distributed rendering component. The wearable has two seperate components for receiving image data and displaying the image on the screen/HMD.

To get the image data the receiver contacts the renderer (locally or over a network) using a TCP/IP connection.

The renderer itself is again split up into two modules. The compute-server (currently called renderer) receives DWARF position events and waits for an incoming connection from a wearable. If that connection exists the renderer uses shared memory to send the position data to the rendering component (currently called glutrenderer) which in turn renders the model (received from the world model component) and writes back the resulting image to a shared memory area which will the be read by the compute server, who sends the image to the wearable using the TCP/IP connection initiated above.

Note that the glut renderer continuously renders images. It can therefore not be guaranteed that it will render an image for a given position. Instead, when finished with rendering for the last position read, the glut renderer will get the position currently in the shared memory area and will generate an image for this position. Images will be marked using timestamps and perhaps a unique sequence number.


Our tools

Our task

Our task is to build a car on a specific position and render it.

The implementation

We receive a matrix from the tracking team with the data of the markers and the position of the virtual car depending to the world model. With this matrix we build the camera-position and render the car.

Current status

The resolution

Here you can see the video.