On 2010-09-08 05:45, Alex Kovac wrote:
Good day everyone,
The issue is not so much full control vs. ability to reuse. There are actually a few issues, but the main one is that the original definition assumed one (fixed-size) flat canvas
Does this mean that the size of the canvas influences the appearance? (excuse my ignorance)
In the original definition it does. Usually it shouldn't make a huge difference, but yes, it does matter. There are methods that would allow for a theoretically infinite canvas, but requiring support for that would restrict the possible implementations to one kind of method, or at least complicate other implementations.
One obvious way to make diffusion curves work within SVG would be to just see it as another kind of paint. So if you give an object a solid color the area affected by the color would be the area affected by the diffusion.
This seems to be consistent with the current user's mental model of painting. Will users be able to add color-controlling nodes arbitrarily? e.g. have more than 3 controlling nodes on a triangle?
Yes. As many as they would like. And they need not even coincide with nodes of the path, as long as they lie on the path.
The main restriction this would put on diffusion curves (as far as I can see) is that you can't (easily) have "soft" boundaries. However, in the original paper these are implemented by simply reblurring the result, so you could imagine also separating the two steps in Inkscape.
If the size of the canvas influences the appearance of the diff.curves, personally I'd rather re-blur in an additional step than risk messing up the artwork with every modification of the curve. But...
In principle the question of reblurring is separate from having the size of the canvas influence the result.
So, are there other problems people can see with this approach? Any important use cases you can think of that would not be able to benefit fully?
Imagine a filled rectangle. for example, I'd like to have the top and bottom edges of this rectangle sharp, but left and right to have smooth diffusion. If I understand correctly, This would be possible using diff.curves suggested by Orzan et al. Would it be possible using 'diff.curve as paint' approach?
If you mean that the left and right sides would be blurred while the top and bottom are sharp, yes, that is possible in Orzan et al's method. Whether it would be possible in the scheme I proposed would depend on whether we would indeed also have a spatially varying blur. Basically you'd first make a rectangle with the appropriate colors and then apply a spatially varying blur (this comes with a little handwaving, as it's not immediately clear how this would work outside the fill area).