
Sam Martin wrote:
I’ve been thinking about something similar for a while, and am toying with the idea of building the rendering pipeline as a typed expression. It’s all very hand-wavey thoughts at the moment, but I reckon it’s possible to define a function that describes the pipeline you want to establish and then ‘compile’ that expression into an executable object.
We've been working on this approach at Leeds. Last year we submitted an entry to the IEEE Visualization contest using a rendering framework where you create something akin to a scene graph as a data structure. Interfacing with OpenGL is done behind the scenes, including traversing the tree to render, and to respond to events. See our paper in PADL'09 - source code at www.comp.leeds.ac.uk/funvis/. We're currently extending this in two directions. One is better support for writing embedded interactors, which transform a tree in response to an event. We now have a nice parallel coordinates example with interactive brushing of the axes embedded directly into the scene, hope to put up on the web at some point. The other ...
It’s equivalent to defining the graph of the pipeline and compiling that into an executable sequence.
... is essentially that, though for vis pipelines rather than just graphics. Not yet at a point where we could answer Conal's questions, but also working towards it. David -- Dr. David Duke E: djd@comp.leeds.ac.uk School of Computing W: www.comp.leeds.ac.uk/djd/ University of Leeds T: +44 113 3436800 Leeds, LS2 9JT, U.K.