From: Olivier D. <oli...@ca...> - 2002-07-19 14:57:43
|
In trying to work out some design for Gopher, I wrote the following requirement: - An effect has 0 or more input buffers and 1 or more output buffers. As an example, a plasma that is drawn from intersections of cosine lookups need no input buffers and will (usually) produce output for one output buffer. You control the plasma with a few parameters. There are also effects that manipulate/distort one input and produce one output. (ie: raindrop effect, overlaying a logo, etc..) Then there are effects that take two input buffers, blend them together somehow and produce one output. I've even written an effect that takes three input buffers and uses the first two to decide how to third one will be distorted/rendered in the output buffer. So far, all these effects have only had one output. I'm looking for a case where multiple outputs are necessary and would mean uncomfortable (impossible?) work-arounds if the requirement was re-written as: - An effect has 0 or more input buffers and exactly 1 output buffer ie: an effect that takes a RGB input buffer and produces an output buffer for each of the primary colours. Would it be the case that the three seperate "colour buffers" would be fed to three seperate effects or do they just end up being translated/offset from each other and then blended back, something the effect could have done on its own using only one input and one output buffer? It looks as though it would be easier if effects only had one output, because then we could tie the output to a track, a bit like DemoPaja ties effects to "Layers". This means authoring the output of an effect is implicit and all a user needs to do is wire the inputs, although my mind is blank as to a good/intuitive way of allowing users to do this in the same interface that they author effect parameters. (ie: should it be arrows crossing tracks or you pick numbers or it is based on the order of the channels or what?) ---------------------------------------------------------------------- Olivier A. Dagenais - Software Architect and Developer |