grape: an environment to build display processes
New modelling primitives and new rendering techniques are appearing at a rapid rate. To be able to implement and evaluate them easily, we need a very flexible display environment. We describe an environment which allows experimenting both with the basic modelling and rendering operations and with the process structure of the display system.The desired operations are implemented in nodes , coded in a traditional programming language, which can then be structured into arbitrary directed acyclic graphs. These nodes are all "plug compatible", and pass streams of appels , which are generalized pixels, that is data structures containing information necessary for pixel evaluation. In addition, synchronization parameters are used to allow the expansion or the reduction of the stream of appels.This approach allows the assembly of new display systems from existing modules without coding, making it easy to experiment with different architectures and display processes. Algorithm designers are also able to test an algorithm at any point of the display process with a minimum of new coding.We describe an implementation of the scheme with a library of nodes written in C and the assembly of the graphs made through the use of the directory manipulation tools provided under UNIX. We give examples of the uses of the implementation to build basic nodes, variations in compositing and texture mapping and special-purpose display systems.
environments process model rendering implementation evaluation flexibility experience operability structure systems code programming language direct graph streams general data structures informal synchronization use reduction assemblers module architecture algorithm test point scheme libraries manipulation tools examples variation compositing texture mapping