Zeph
01-19-2012, 06:12 AM
Yeah, there are many other changes and no analogy is exact, but I keep finding aspects which sort of follow the paradigm shift of changing from a paint program to a vector illustration program.
With a paint program, you can draw fancy dots, lines, circles, polygons, etc (not unlike Vixen 2 effects) - and they then get "baked" into the basic raster pixel matrix. You can then overlay those with others, arbitrarily editing the raster (the grid). But once your object (eg: a circle) is baked into the raster in a pure raster editor, you can't modify it *as a circle* any more, it's just pixels. Imagine a circle partically behind a rectangle - you can't move the circle, resize it, pull it in front of the rectangle etc.
With a vector editor, you store (in memory and on disk) the concept and parameters of that circle. You can move it, resize it, bring it in front of the rectangle, change the color or make the border dashed lines.
Ultimately, the vectorized graphics will probably be rendered to a raster for use in many cases (eg: to a jpeg or printer or screen). Likewise, vixen 3 sequences will ultimately often be rendered into in effect a 2d grid/raster of channels vs time slots, for sending to controllers.
It seems that an effect is more like one of those vectorized circles, tho - retaining the abstraction in a more mallable form.
It's going to be hard to fully translate from Vixen 2 to vixen 3, because it's like translating a bitmap into the APPROPRIATE vectors. For example, that partially covered circle should be vectorized as a circle which is behind the rectangle, not as a polygon approximating the visible parts of the circle.
Of course, you could vectorize the raster by making every point a "vectorized dot" (or setlevel effect), but that would not capture the intent.
It may be possible to do something more than that - for example, perhaps scanning a channel's 50ms values one could infer that there was a fade effect. Or with more information, one might infer a chase sequence among channels. It's an imprecise art tho - subject to noise because information has been lost when the abstract circle became colored pixels. I would not count on much that way.
The other aspect is that some vector programs allow embedding a raster (like a photograph) within a vector space, as a type of object. This still might be one option in Vixen 3 - time will tell - that is, to take some channels over some time period from within a vixen 2 sequence (analogous to clipping from a 2d raster image) and pasting that into an equivalently size region of vixen 3 channels (like the raster embedding of a vector graphics editor). This is a slightly higher level approach (using a connected 3d block of values) than individual set-level effects.
I picture that as an effect module which cannot be resized easily because it's tied to the original vixen 2 sequence number of channels and time slots. One way to look at it would be to consider the Vixen 2 sequence to be the very detailed imported parameters of an effect.
Actually tho, as I think about it, this effect could sort of be resized (in channels or time) IF interpolation between channels or time slices is meaningful (like a matrix output or perhaps even a megatree) - but that would be like stretching a raster image with either stairstepping (nearest neighbor interpolation) or fuzzing (eg: linear interpolation). Imagine rescaling an image - use the same techniques in one or both dimensions. Not pretty. I would imagine this only as a last resort - or as a "background" template over which one could similar "draw" new effects. For example, some CAD programs will let you take a scanned raster image as background, over which you can trace a vector equivalent. Perhaps something like this would be possible in some later Vixen 3.X version (or in its third party modules).
From that perspective, it would seem, as some have requested, that it should be much easier to render a vixen 3 sequence into a vixen 2 sequence - it would be very similar to rendering it for DMX output - a conceptual grid of 0-255 values for each mapped channel and time slice. I'm sort of thinking that a vixen 3 output module could even be written which creates a basic .vix file. I see the logic of that request, as a lifeboat - tho hopefully it won't be needed for Halloween or Christmas 2012, given the progress being made by the team. It might be an interesting project for a third party tho.
OK, almost all the juice of this analogy has been squeezed out by now. This is just a conceptual exploration, not a feature request.
With a paint program, you can draw fancy dots, lines, circles, polygons, etc (not unlike Vixen 2 effects) - and they then get "baked" into the basic raster pixel matrix. You can then overlay those with others, arbitrarily editing the raster (the grid). But once your object (eg: a circle) is baked into the raster in a pure raster editor, you can't modify it *as a circle* any more, it's just pixels. Imagine a circle partically behind a rectangle - you can't move the circle, resize it, pull it in front of the rectangle etc.
With a vector editor, you store (in memory and on disk) the concept and parameters of that circle. You can move it, resize it, bring it in front of the rectangle, change the color or make the border dashed lines.
Ultimately, the vectorized graphics will probably be rendered to a raster for use in many cases (eg: to a jpeg or printer or screen). Likewise, vixen 3 sequences will ultimately often be rendered into in effect a 2d grid/raster of channels vs time slots, for sending to controllers.
It seems that an effect is more like one of those vectorized circles, tho - retaining the abstraction in a more mallable form.
It's going to be hard to fully translate from Vixen 2 to vixen 3, because it's like translating a bitmap into the APPROPRIATE vectors. For example, that partially covered circle should be vectorized as a circle which is behind the rectangle, not as a polygon approximating the visible parts of the circle.
Of course, you could vectorize the raster by making every point a "vectorized dot" (or setlevel effect), but that would not capture the intent.
It may be possible to do something more than that - for example, perhaps scanning a channel's 50ms values one could infer that there was a fade effect. Or with more information, one might infer a chase sequence among channels. It's an imprecise art tho - subject to noise because information has been lost when the abstract circle became colored pixels. I would not count on much that way.
The other aspect is that some vector programs allow embedding a raster (like a photograph) within a vector space, as a type of object. This still might be one option in Vixen 3 - time will tell - that is, to take some channels over some time period from within a vixen 2 sequence (analogous to clipping from a 2d raster image) and pasting that into an equivalently size region of vixen 3 channels (like the raster embedding of a vector graphics editor). This is a slightly higher level approach (using a connected 3d block of values) than individual set-level effects.
I picture that as an effect module which cannot be resized easily because it's tied to the original vixen 2 sequence number of channels and time slots. One way to look at it would be to consider the Vixen 2 sequence to be the very detailed imported parameters of an effect.
Actually tho, as I think about it, this effect could sort of be resized (in channels or time) IF interpolation between channels or time slices is meaningful (like a matrix output or perhaps even a megatree) - but that would be like stretching a raster image with either stairstepping (nearest neighbor interpolation) or fuzzing (eg: linear interpolation). Imagine rescaling an image - use the same techniques in one or both dimensions. Not pretty. I would imagine this only as a last resort - or as a "background" template over which one could similar "draw" new effects. For example, some CAD programs will let you take a scanned raster image as background, over which you can trace a vector equivalent. Perhaps something like this would be possible in some later Vixen 3.X version (or in its third party modules).
From that perspective, it would seem, as some have requested, that it should be much easier to render a vixen 3 sequence into a vixen 2 sequence - it would be very similar to rendering it for DMX output - a conceptual grid of 0-255 values for each mapped channel and time slice. I'm sort of thinking that a vixen 3 output module could even be written which creates a basic .vix file. I see the logic of that request, as a lifeboat - tho hopefully it won't be needed for Halloween or Christmas 2012, given the progress being made by the team. It might be an interesting project for a third party tho.
OK, almost all the juice of this analogy has been squeezed out by now. This is just a conceptual exploration, not a feature request.