START PAGE
Products

Geofront - The *sert appliations

Software

TexMPEG

MPEG Z/Alpha

Gstsert

Consulting

Recently, there has been increased interest in the usage of streaming video textures in 3D applications. Streaming video textures are textures that continously change, mostly based on media data stored in a common video format.

The demo movies below demonstrate how the media component framework GStreamer and OpenGL 1.5 for Nvidia cards can be used to create surprising real-time video effects in Linux.

Figure 1. Video rendered as 3D pixels, each pixel is offset from its 2D video position, based on its luminance value.
Video footage from Singularity by Satori and Lackluster.
Conceptual idea based on Justin Manor's Key Grip system. See also his diploma thesis on Realtime Video Performance.

Technical background

Gstreamer provides YUV planes of the video frames that are uploaded as 3 luminance only textures (using Pixel Buffer Objects, PBO).
Instead of drawing a simple quad with these textures, an array of point primitives is being generated, one for each video pixel.

A Vertex Buffer Object (VBO), bound to the same memory area as the PBO, holds the original 2D positions of the points, and grants access to the Y (luminance) values.

A vertex shader reads the point array, and displaces them according to the provided Y values. The following fragment shader reconstructs the RGB pixel colors from the 3 given luminance textures, using a commonly known YUV->RGB conversion formula.

It is important to note that this video effect is not the only one achievable with this technology.
The software is able to provide PAL resolution (720x576) video textures at full framerate (25 Hz) on a decent PC. Only the GPU resources and the programmer's OpenGL capabilities set limits for what can be done, as soon as the texture is available in the 3D environment.

The sourcecode is available on request.

Comments and ideas are very welcome!


This page is maintained by info@geofront.eu.
Copyright © 2001-2005 by Geofront.
Corrections, Error reports, Suggestions are always welcome.