Re: [Inkscape-devel] Recursive Drawing
Don't let that worry you too much :) First of all, rendering a bunch of shapes isn't necessarily that slow, and secondly, there are usually some tricks to make the speed acceptable when it is.
True, though I wonder if you'll still be saying that once people start stacking symmetry templates on top of tiling templates on top of perspective templates, with extrude templates in-between.
What am I talking about? - A person draws half a window, then uses a symmetry template to make the other half. - Then drops that group onto a tiling template to make a whole bunch of windows. - Then drops That group onto a perspective template to make a wall full of windows. - And somewhere in-between, uses an extrude template to extrude windows, balconies etc. - He also drops an L-system templates to create vine-looking objects on-canvas. Then drops that onto the perspective template as well (vines along the wall). - On another side, he drops a whole picture (a poster) onto a deform template (for slightly wavy paper), and drops that onto another perspective template.
(this is just an example, in case you're asking why the user isn't learning how to use a 3D program instead)
All the while, every function in-between can still be edited: he can change the number of windows on-canvas (tiling), can change the perspective on-canvas, can change the extrude values on-canvas, can edit the vines on-canvas too. He can turn templates on and off, for example turning off the perspective template temporarily to edit the poster.
There's been a lot of head-scratching regarding the proper interface for LPE-stacking. The current interface is not on-canvas enough, and the lack of reusability is a pity (for perspective, for example, or custom wavy flags). There's been another proposal for connecting function boxes, and I'm not sure users would like that either.
On-canvas templates may be a new approach, but seems to open up a lot of possibilities. Are there any other programs where you drop all sorts of functions to be accessed on-canvas?
(previously I was also thinking about adding functions to guides for various effects, but now I think some of those could be snap modes: snap to parallel i.e. straight lines snap into directions parallel to guides-, snap to orthogonal, snap towards guide points)
(Frankly, it's more the "sounds stupid, but involves a whole lot of code refactoring" tasks that usually don't get done.)
Yeah... there are a few fundamental operations that Inkscape can't do yet, like a number of group operations: - You can't perform boolean operations like substract or cut on a group - You can't cycle through color hue for a group (like you do with hue/saturation in Gimp) - You can't perform perspective deform on a group, nevermind make perspective templates...
I'm also trying to think for a proper GUI proposal for on-canvas Pattern Along Path editing combined with line shape presets management (the presets could probably be accessed from a separate dialogue, like brush presets in MyPaint and Krita). This means Inkscape could ship with custom line shapes like chains, zippers etc., and then the user would be able to modify their size etc. without accessing a scary LPE dialogue. Presets won't just apply to Pattern Along Path, users can save their own powerstroke settings and dotted lines + markers settings for quick access.
I don't suppose someone could bring this layer clip extension into the main branch, by the way? Layer masks (or just clipping) happens to be quite high on many people's wishlist: http://www.pernsteiner.org/inkscape/layerclip/
I really got off-topic. Oops?
On 2012-05-17 02:08, Valerie wrote:
Don't let that worry you too much :) First of all, rendering a bunch of shapes isn't necessarily that slow, and secondly, there are usually some tricks to make the speed acceptable when it is.
True, though I wonder if you'll still be saying that once people start stacking symmetry templates on top of tiling templates on top of perspective templates, with extrude templates in-between.
Yes, there are always things that will take "too much" time, but initially it's usually a good idea to think about what you'd really want. If you start thinking too early about performance you often end up with something that might(!) be fast, but isn't really what you want... So ideally you start to think about what you want, then identify where the performance problems might lie and try to fix that. Of course it's never that black and white, if you know beforehand that something will be truely outrageously slow (taking hours, or even days or more in typical use cases), then yeah, just forget about it.
What am I talking about? ... (long list of compound operations)
All the while, every function in-between can still be edited: he can change the number of windows on-canvas (tiling), can change the perspective on-canvas, can change the extrude values on-canvas, can edit the vines on-canvas too. He can turn templates on and off, for example turning off the perspective template temporarily to edit the poster.
Sure, that's taxing, but I wouldn't say beforehand that it is impossibly slow. Sure, if the window is extremely complex, and the user makes hundreds of copies, etc., etc., then it might become too slow, but that's not exactly a surprise, and a simple consequence of the image being quite complex. Put another way, it would still be /much/ faster than creating the same image by hand (it might even render faster).
Also, if this kind of complicated work would become a typical use case, then it might pay to implement some tricks. For example, we could allow the user to (temporarily) limit propagation of changes to (all) elements. Or update the image progressively (this has its issues, but in some form it might make sense).
And remember, this is before we've even thought about all the ways in which this kind of thing could be optimized. (In many cases we could get by with just stamping bitmaps for example.)
There's been a lot of head-scratching regarding the proper interface for LPE-stacking. The current interface is not on-canvas enough, and the lack of reusability is a pity (for perspective, for example, or custom wavy flags). There's been another proposal for connecting function boxes, and I'm not sure users would like that either.
On-canvas templates may be a new approach, but seems to open up a lot of possibilities. Are there any other programs where you drop all sorts of functions to be accessed on-canvas?
Have a look at laidout (http://laidout.org/). Admittedly this is not exactly a main-stream application, but it has some really interesting features. The alignment tool was demonstrated at LGM and is in my opinion definitely something to have in Inkscape as well (in some form or other).
participants (2)
-
Jasper van de Gronde
-
Valerie