After exploring texture mapping images copied
from the incoming captured video stream,
we decided to use the
VMR-9 video mixing renderer
introduced in DirectX 9,
that allows for allocating 3D objects as its rendering surface,
thus avoiding the overhead of
explicit copies taken from a video processing stream
running in a separate thread.
Although flexible and efficient,
DirectX is a low-level toolkit,
which means that we had to create our own
facilities for processing a scenegraph,
world and viewpoint transformations, and, even more importantly,
structuring our mixed reality presentations in time.
