Re: [Inkscape-devel] New tiling interface proposal
It's the guy who made the fancy alignment tool! :D I hope it gets ported over one day!
In fact, it turns out that Jasper's suggestion of an "interpolation gradient" was genius! Here's the current setup:
http://postimage.org/image/velcy91a9/
You can add linear, grid or radial interpolation gradients.
The example shown here is a grid gradient. This interpolation tool can eventually be ported to be applied to just about any group of objects (but let's just stick to tiling for now...)
Veronika, I didn't see your mail before I finished the current mock-ups. I do think what you're proposing could be quite useful for a general interpolation tool. :) We could start thinking about it separately from the tiling tool.
Anyway, here's how the interpolation gradient would work with tiling (grid example): - Here, you have to define a Row stop and a Column stop. - By default, applying a grid interpolation gradient will place the stops on the tiles neighbouring the base tile. - You can drag that extremity to other tiles. - You can add Multiple stops! Just like a gradient!
The other tiles aren't updated, this saves some processing power and avoids some clutter.
Now the handle form is where it gets a bit trickier. I think the best would be to have a specialized handle of some sort. Anybody can think of a design?
For blur and opacity, now that we have a few free controllers (maybe), we could maybe assign Ctrl to Opacity and Shift to Blur. The user just drags over the frame. Also hold down Alt to add/remove jitter values.
For HLS interpolation: by default the ghost tile or handle is without fill, but fill etc. can be added like with any normal object to launch HLS interpolation. In fact, the user can switch to the eyedropper tool and take the values of a target object. Alt-click with the eyedropper to take a second set of values as jitter reference?
So, the "optimal" work flow is to create sets of two coloured dots beforehand to set select color interpolation and jitter values. Of course you can also open up the full editor.
To answer a few questions by Tom: 1. Yes, I've also decided that just Normal and Fuse modes are enough.
2. I want a separate Radial tiling because it's more intuitive for angle control. In the case of the render frames, you can manually set a start and end point, and snap to full circle (and maybe specify if you want more than 1 circle).
When it's snapped to full circle: when editing the angle of the base tile, it will automatically take values to make a full circle. Small stuff like that.
3. The thing about guide points and guide segments is that others have noted the usefulness of placing them elsewhere than on the tile sides.
4. Skew will be allowed for P1 and P2. If you drag the handles in certains ways, they will automatically become upright.
5. The problem with live preview is that these tiles take potentially a long time to render. :S
Since you're here, I don't suppose you'd have an idea as to the form of the handle for interpolation gradients, would you? :)
On 30-03-12 09:13, Valerie wrote:
It's the guy who made the fancy alignment tool! :D I hope it gets ported over one day!
In fact, it turns out that Jasper's suggestion of an "interpolation gradient" was genius! Here's the current setup:
I'm not sure that it makes sense to have the transformations symmetrical around the base tile. There is no particular reason why they could not simply be extended. If you really want to mirror gradients, then I would recommend having an option for how to handle "boundaries". But this does get slightly more complicated in the explicitly 2D layout you have. One obvious option that comes to my evil mind is that this could lead to tilings of gradients :) (But I seriously would not recommend that. If someone really wanted to do that they could just make a tiling, create a group of it and tile that again.)
As for the interface for actually adjusting the transforms (as well as opacity and such). Is it necessary to do it with "tiles" shown on screen, or would it suffice to allow transforming actual tiled clones? As Tom mentioned, live preview of the tiled clones is probably important (although it might make sense to limit them somewhat while editing the tiling). And all the tools are there already to allow transforming clones (just like any other object). On the other hand, I guess we could use it to distinguish between transforms that affect the entire tiling and "individual" transforms.
As for jitter, it feels a bit awkward to edit that on-canvas, as essentially it leads to objects ending up somewhere else in a completely unexpected way... I guess if you did make the tiling transform/individual transform distinction, that you could then allow changing jitter values on the tile and making that only alter the "individual" transforms (even though it affects all tiles). You could then apply the jitter only on the tiled clone and not on the "tile". But I'm not sure it's that natural.
In general, I think the system is very interesting, but I would be interested in making it a bit "leaner". After all, someone has to implement it, and (more importantly), a lot of someone's have to learn it. So the more we can leverage existing tools/infrastructure/concepts, the better.
I think I might have a closer look on Sunday. Especially to take a proper look at the mathematics behind the interpolations, to see how the proposed scheme corresponds to Inkscape existing functionality for example.
... 5. The problem with live preview is that these tiles take potentially a long time to render. :S
I do hear your argument about performance, but on the other hand, it might be better to solve that by limiting the amount of clones rendered and/or by not updating all clones instantaneously, etc.
participants (2)
-
Jasper van de Gronde
-
Valerie