OpenGL interceptor implementing "Wide Area Visuals" arbitrary-surface multiprojector system.
I have been working for the past year on a project under the Office of the Future banner, specifically the A-Desk project (for which I can't find a current page; I'll make one if there isn't one). My part of this has been to port the current generation "Warp&Blend" library to Linux (done repeatedly) and integrate it with the Compiz compositing window manager to enable an immersive desktop projected onto an arbitrary surface. The specific surface used by the A-Desk is a custom curved workspace, of which there are currently two prototypes (in the Brooks G-Lab) - a two-projector, 90-degree model, and a 7-projector, 180-degree model. Last year I was able to successfully integrate an older version of Warp&Blend, and the current status is that the new, curve-supporting version works in Linux but not within Compiz. I am in the process of porting an updated Warp&Blend that should fix problems I encountered when trying to enable multiple displays. (Tyler Johnson is doing current research on continuous calibration of Warp&lend, and is therefore the primary developer.)
My current work is at this point largely bug-hunting and Compiz/X hacking, so it is not particularly relevant to COMP770. Once I have solved the current issues, I should have a fully functioning base system, and I will move on to fixing desktop, window, etc geometry (and eventually mouse redirection). Therefore, my course project is in a parallel direction that will hopefully expand the capabilities of the Warp&Blend library and *may* contribute back to my primary A-Desk desktop work.
I plan to create a intercepting OpenGL library that implements Warp&Blend, allowing use of the technology in applications to which we lack source-code access. This actually addresses a current desire within the A-Desk project group to be able to display interesting demo applications in the new A-desk space to interested parties (primarily as single applications, under Windows), as well as offering a possible alternate implementation method for the W&B core in Compiz (which may help to solve an anticipated problem moving to more than 2 displays using nVidia drivers). This will require becoming familiar with methods for OpenGL interception, implementing my own or adapting existing ones, adding support for required features (most importantly, off-axis projection and scene reprojection), probably making some edits to the W&B library (and therefore becoming more intimately familiar with its core), and then integrating the two. If it goes well, this could be merged back to trunk as a significant feature of Warp&Blend.
Possible Additional Goals:There has been significant work in OpenGL interception, generally with the aim of altering render styles, extracting model information, or rendering offset viewpoints for 2D-to-3D conversion. This is a list of a few informative papers and several existing implementations with different aims, with notes on what this project would add to the body of existing work.