Closed JosephCottam closed 10 years ago
Marching cubes could be considered "rendering," but it is from discrete space to a continuous space instead of from a continuous to a discrete space. This fits in nicely with the "abstract" part of "abstract rendering." Is the generalized discrete->continuous transformation a generalizable rendering tool in its own right?
Done. Parallel except for stitching together the final contour. DOES NOT do sub-pixel interpolation.
Sweet! Do you have some contour line examples?
Contour transfer functions produce filled regions at given ISO levels. These can be converted to lines by setting the 'fill' parameter to 'false' on the transfer. Alternatively, using 'simplify' on the results of a filled ISO contour gives contour lines where both the high and low values are represented at each boundary. Its a cool, but non-standard effect.
Examples can be seen in the simple ARDemoApp for both the census and the synthetic scatterplot. I don't have a really killer dataset (or subset) for it though. A region-based sub-setting control (similar to "enhance") would be a slick way to do it....
The naive way is to do a marching-squares (or meandering triangles) approximation at each aggregate cell directly and produces the a classification index number and interpolation coefficients in one pass. Then a separate step produces the actual geometry from the resulting aggregate.
The single-step approach leads to multiple-computation of the interpolations for each cell edge. Doing it as a four-phase is more time efficient. Phase 1 computes the interpolation for the top and left edge for each cell (in truth, any two orthogonal edges will do, as long as all cells get the same two computed). Phase 2 spreads the computed coefficients to the neighboring cells that share the computed edge. Phase 3 does classification. Phase four creates the actual geometry.
Note: Creating the final geometry is not strictly a transfer function, but it takes aggregates as an input so it terminates a transfer chain. These terminal items might need their own classification. Interactive transfer-function definition often involves a a fork in the transfer chain where one branch is similar terminated and used to create the control. Maybe this is a "terminal transfer" ?