Rotation for brushes
This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.
This is a read-only list on gimpusers.com so this discussion thread is read-only, too.
Rotation for brushes | David G. | 16 Mar 07:02 |
Rotation for brushes | Bill Skaggs | 16 Mar 23:37 |
Rotation for brushes | David Gowers | 16 Mar 23:58 |
Rotation for brushes | Bill Skaggs | 17 Mar 01:15 |
Rotation for brushes | David Gowers | 17 Mar 01:48 |
Rotation for brushes | GSR - FR | 17 Mar 00:56 |
Rotation for brushes | David G. | 17 Mar 01:11 |
Rotation for brushes | Bill Skaggs | 17 Mar 01:29 |
Rotation for brushes | David Gowers | 17 Mar 02:36 |
Rotation for brushes | Alexandre Prokoudine | 17 Mar 14:05 |
Rotation for brushes | David Gowers | 17 Mar 14:42 |
Rotation for brushes | David G. | 17 Mar 12:34 |
Rotation for brushes | Sven Neumann | 18 Mar 08:38 |
Rotation for brushes | jbaker | 18 Mar 13:38 |
Rotation for brushes | Joao S. O. Bueno | 18 Mar 15:54 |
Rotation for brushes
Add a option to rotate brushes to compliment the scaling. I don't know if
this
has been requested but it would be very helpful than creating a layer +
using
the rotation tool.
This is a from http://bugzilla.gnome.org/show_bug.cgi?id=522705
Rotation for brushes
David G. wrote:
Add a option to rotate brushes to compliment the scaling. I don't know if this has been requested but it would be very helpful than creating a layer + using the rotation tool.
Wouldn't be all that hard to do. How often do you think this would be used? What kind of brushes would you want to use it for?
-- Bill
Rotation for brushes
Hi,
On Mon, Mar 17, 2008 at 9:07 AM, Bill Skaggs wrote:
David G. wrote:
>
> Add a option to rotate brushes to compliment the scaling. > I don't know if this has been requested but it would be very > helpful than creating a layer + using the rotation tool. >Wouldn't be all that hard to do. How often do you think this would be used? What kind of brushes would you want to use it for?
Myself, I would use it for nearly every non-symmetrical brush (and wish for the ability to v- or h-flip it, too), particularly when I'd just copied something and was using the clipboard brush. Every brush that is remotely 'directional' needs this (or, possibly the option to rotate the brush to match the movement direction -- that would work fairly well much of the time.)
Making aspect ratio controls independent of brush type also makes sense to me. "hardness' also makes sense independent of brush type (hardness specifying the middle point of a curve, 0 would be a linear curve, .5 would be a gamma-ish curve where a majority of midpoint values become much more opaque, -.5 would be a gamma-ish curve where a majority os midpoint values become much less opaque.
I may be getting a little OT, I believe that those controls do not belong in the VBR brush editor.
Rotation for brushes
Hi,
weskaggs@gmail.com (2008-03-16 at 1537.58 -0700):
David G. wrote:
Add a option to rotate brushes to compliment the scaling. I don't know if this has been requested but it would be very helpful than creating a layer + using the rotation tool.
Wouldn't be all that hard to do. How often do you think this would be used? What kind of brushes would you want to use it for?
Ohh, no, please, not yet another duplication. The system should avoid this, and try to unify instead. You can scale brush in one place (by means of a factor, so try and error) or two if the brush is editable (pixel size). It would be better thinking how to get things in one single place, with controls that are direct, instead of too many places, too many conditionals and too many indirect controls. I never understood why pixmaps were not made a possible source for the brush editor when it was added, and then all the ops that make sense (rotation, resizing, aspect...) be applied to them (from user PoV at least, even if internally it means different processing) for example.
GSR
Rotation for brushes
Bill Skaggs wrote:
David G. wrote:
Add a option to rotate brushes to compliment the scaling. I don't know if this has been requested but it would be very helpful than creating a layer + using the rotation tool.
Wouldn't be all that hard to do. How often do you think this would be used? What kind of brushes would you want to use it for?
-- Bill
_______________________________________________ Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer
Alright, I'll try to be brief as possible. I proposed this because it will actually boost the simplicity of managing brushes to adapt in effects and splashes, instead of doing the layer and rotation "technique". There are so many floral/grunge/splatter brushes that have been added in the GIMP. (ex http://gimp-tutorials.net/vinal-gimp-brushes )
How often will it be used? Well that's hard to calculate, globally speaking. An artist/amateur/customizer will probably use this, I dare to say they would use the rotation a lot.
Maybe in the eyes of a developer this might be considered 'bloat'.
Rotation for brushes
David Gowers wrote:
Myself, I would use it for nearly every non-symmetrical brush (and wish for the ability to v- or h-flip it, too), particularly when I'd just copied something and was using the clipboard brush. Every brush that is remotely 'directional' needs this (or, possibly the option to rotate the brush to match the movement direction -- that would work fairly well much of the time.)
If the major usage case is to rotate to match the direction of movement, it would make more sense to support that directly, since it would be a p.i.t.a. for users to have to go into the options to set a direction for each stroke.
This shouldn't be too hard in principle: it is already supported as a mode for "image pipe" brushes. In practice it hasn't worked all that well, because it's not so easy to cleanly estimate the direction of motion -- especially at turning points or the start of a stroke -- so it has been hard to avoid getting anomalies every so often. The new motion-smoothing code that Alexia recently contributed might actually make this work better -- this should be investigated.
-- Bill
Rotation for brushes
David G. wrote:
I proposed this because it will actually boost the simplicity of managing brushes to adapt in effects and splashes, instead of doing the layer and rotation "technique". ...
I gather from this that you would like to be able to pick an arbitrary rotation, and that simply rotating in the direction of motion wouldn't fit your needs.
Maybe in the eyes of a developer this might be considered 'bloat'.
It isn't a question of bloat, it's a question of keeping the user interface as simple as possible while providing the capabilities that are wanted. Adding an option that doesn't get used is not harmless: it makes it harder to find the things that are important. As an artist, you wouldn't want to have the controls you need buried amongst 20 useless buttons and sliders, would you? That's why everything like this needs discussion and careful consideration.
-- Bill
Rotation for brushes
On Mon, Mar 17, 2008 at 10:45 AM, Bill Skaggs wrote:
David Gowers wrote:
> Myself, I would use it for nearly every non-symmetrical brush (and > wish for the ability to v- or h-flip it, too), particularly when I'd > just copied something and was using the clipboard brush. > Every brush that is remotely 'directional' needs this > (or, possibly the option to rotate the brush to match the movement direction -- that would work fairly well much of the time.)
If the major usage case is to rotate to match the direction of movement, it would make more sense to support that directly, since it would be a p.i.t.a. for users to have to go into the options to set a direction for each stroke.
I was envisaging it being settable via the keyboard. You can currently set VBR angle by keyboard shortcuts.
In any case, you seem to have missed that the directional rotation requires a 'normative' rotation value -- since many brushes, while asymmetrical, have no obvious 'direction', we might want to allow a default rotation to be set per brush.. It *would* be necessary to allow normative rotation to be modified, in order for directional rotation to consistently remain sensible to the user.
This shouldn't be too hard in principle: it is already supported as a mode for "image pipe" brushes. In practice it hasn't worked all that well, because it's not so easy to cleanly estimate the direction of motion -- especially at turning points or the start of a stroke -- so it has been hard to avoid getting anomalies every so often. The new motion-smoothing code that Alexia
I think that we need some trickery to happen -- for example, the right thing for the start of a stroke is probably to match the angle for the first event to the angle of the following event, so we would need to draw the first dab, and then redraw it if the user continues the stroke.
recently contributed might actually make this work better -- this should be investigated.
Because it's inertia-based, it does.. as long as there is *some* smoothing happening, angle is much more coherent. (note: I'm currently using 2.4.2, rather than SVN trunk, sadly.
Rotation for brushes
On Mon, Mar 17, 2008 at 10:59 AM, Bill Skaggs wrote:
David G. wrote:
I proposed this because it will actually boost the simplicity
> of managing brushes to adapt in effects and splashes, instead > of doing the layer and rotation "technique". ...
I gather from this that you would like to be able to pick an arbitrary rotation, and that simply rotating in the direction of motion wouldn't fit your needs.
There are indeed many brushes which would work best with a specific angle control -- they are mainly 'edge-effect' brushes. Anyway, I've already stated my belief that if you have directional rotation, a normative rotation angle control is necessary.
Maybe in the eyes of a developer this might be considered 'bloat'.
It isn't a question of bloat, it's a question of keeping the user interface as simple as possible while providing the capabilities that are wanted. Adding an option that doesn't get used is not harmless: it makes it harder to find the things that are important. As an artist, you wouldn't want to have the
I believe that we can reduce the number of screen-real-estate-occupying options anyway, and use an interface like the ink tool nib adjuster to simultaneously set brush normative rotation and aspect ratio. Also possibly scale -- being able to use the scroll wheel on the nib adjuster to change brush scale makes sense to me, skew -- ctrl+drag to skew, flip -- shift-click near a border to flip on that axis, and aspect -- shift-drag.
(to be congruent with the rest of the GIMP, it would probably be better to put skew on shift and aspect+flip on control, since shift typically adds and control typically constrains.)
As far as the backend goes, I would expect values for skew, rotate, aspect, flip, scale to be independently stored and modifyable by keyboard shortcut*, and mostly combined** into one transform matrix after a value changes.
*by which I mean that they can be shortcutted, not that they are by default. ** looking at the brush code, differently scaled versions of the brush are cached. If directional rotation was implemented, we'd want to cache rotations as well, I expect. So the transform might work better in two steps.
An example of this kind of interface in a raster paint program is in Pixia (Windows).
controls you need buried amongst 20 useless buttons and sliders, would you? That's why everything like this needs discussion and careful consideration.
-- Bill
Rotation for brushes
This might be a duplicate, did a mistake while sending.
---
I understand very well that GIMP Developers must be cautious implementing
this or any other visual effect that touches the toolboox/interface in
general. Of course I leave this proposal and also suggest as a remedy to use
"hotkeys", sadly the drawback is that the user wouldn't be aware of the
hotkey without any toolbox reference
My "hotkey" proposal for the rotation is using
Shift + Right-Click to use the mouse as a guide.
Sadly, I'm just a normal user who uses GIMP for website/projects and so on. So I might be confused in some terms.
Rotation for brushes
On Mon, Mar 17, 2008 at 1:37 AM, Bill Skaggs wrote:
David G. wrote:
>
> Add a option to rotate brushes to compliment the scaling. > I don't know if this has been requested but it would be very > helpful than creating a layer + using the rotation tool.Wouldn't be all that hard to do. How often do you think this would be used? What kind of brushes would you want to use it for?
How much wrong would I be to suppose that this feature is a must for supporting rotation of wacom pen? ;-)
Alexandre
Rotation for brushes
On Mon, Mar 17, 2008 at 11:35 PM, Alexandre Prokoudine wrote:
On Mon, Mar 17, 2008 at 1:37 AM, Bill Skaggs wrote: > David G. wrote:
> >
> > Add a option to rotate brushes to compliment the scaling. > > I don't know if this has been requested but it would be very > > helpful than creating a layer + using the rotation tool. >
> Wouldn't be all that hard to do. How often do you think this > would be used? What kind of brushes would you want to > use it for?How much wrong would I be to suppose that this feature is a must for supporting rotation of wacom pen? ;-)
Or mice? mice.. you know.. have a movement direction too.. and wacom tilt does not map in an obvious way to rotation. (as far as i understand, tilt makes sense as a way to apply biased paint -- so it might work as an aspect ratio + scale + rotation modifier. I think we could do something nice automatically here.. as long as we still allowed GIH brushpipes to implement custom behaviour. Brushpipes currently support things such as selection based on angle, velocity, X and Y tilt, which are highly useful. They need to be made easier to create and edit, as they will be always more capable than any automatic modification we can devise.
something else to consider is, it's helpful for one input to map to
one output -- if rotation maps to movement angle (and I believe it
should by default), then it would be confusing for another factor to
effect the rotation.
)
Anyway, the proposition of David G related only to manual setting of brush angle, rather than modification during a stroke according to things like direction and tilt. so to be correct, such a behaviour (manually setting and drawing with a rotation) is entirely independent of the particular device being used.
Rotation for brushes
Hi,
On Sat, 2008-03-15 at 23:02 -0700, David G. wrote:
Add a option to rotate brushes to compliment the scaling.
In case someone wants to start working on this, here's a rough outline of what needs to be done:
(1) Rename the scale() method of GimpBrush to transform(). (2) Add an angle parameter to the transform method. (3) Implement the rotation for all derived brush classes. The difficult part is to do the rotation, efficiently, for pixmap brushes.
When we are this far, we can start to consider how the angle should be controlled by the user. As a start one would add methods to GimpContext to rotate the current brush so that keyboard shortcuts can be added for this. Later we can add more sophisticated things then.
The next logical step after adding rotation would be to change the GimpBrush::transform method to take a GimpMatrix3 parameter and to allow for arbitrary affine transformations (that includes shearing). I am sure that there is some efficient code for this out there that we could use...
Sven
Rotation for brushes
it would also be nice to tie in scale and rotate (and any other changes) with gimp-python...
Rotation for brushes
On Tue 18 Mar 2008 09:38:26 jbaker wrote:
it would also be nice to tie in scale and rotate (and any other changes) with gimp-python...
That part comes last - when it is implemented in the core, calls for this should be added to te PDB (there are missing PDB calls for controling brush scale, and paint parameters as jitter currently).
Once it is in the PDB, they wod be available from python, but also, I am working in implementing gimp brushes as python objects, and it would be trivial to add rotation support there once it is in the core.
As for the User Interface for this, I think mapping curves from input parameters to brush/tool properties is the way to go. (that is, I can think of a curve mapping painting angle to brush angle :-) )
http://wiki.gimp.org/gimp/SummerOfCode2008ideas http://bugzilla.gnome.org/show_bug.cgi?id=119240
js ->