After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 163049 - gimp should allow "jitter" when painting with the paint tools.
gimp should allow "jitter" when painting with the paint tools.
Status: RESOLVED FIXED
Product: GIMP
Classification: Other
Component: Tools
git master
Other Linux
: Normal enhancement
: 2.4
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2005-01-05 20:04 UTC by Adrian Likins
Modified: 2005-10-25 16:42 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch to add "jitter" to paint tools (13.03 KB, patch)
2005-08-02 23:00 UTC, Adrian Likins
none Details | Review

Description Adrian Likins 2005-01-05 20:04:37 UTC
Some of the other paint applications allow adding
a random "jitter" to brush strokes to help create
more "human" results. 

http://adrian.gimp.org/patches/gimp-jitter-paint/
has a patch to allow this. 

There are a couple things that could be tweaked
yet. Rather or not to jitter before or after
stroke interpolatin (Painter seems to do latter,
so thats what the patch does currently).

You could also allow the "jitter" in X/Y to
be adjusted independtly. Or possibly even
in the direction or normal to a stroke. 

But the patch above seems to behave basically
the same way Painter does.
Comment 1 Sven Neumann 2005-01-06 15:16:57 UTC
Interesting. A lot of people asked for a way to remove jitter from their
strokes. Adding jitter is a concept that's new to me.
Comment 2 Adrian Likins 2005-01-06 16:29:27 UTC
Check out any of the current generation proprietary paint apps
that digital artists are using. They all support adding
jitter.

Theres a small distinction between the type of jitter
folks complain about, and the type Painter allows you
to add. Namely, the current stoke jitter problems in
GIMP seem to be before stroke interpolation, causing
what should be smooth strokes to have irregularities. 

The painter style jitter randomly displaces the paint
"dab" from where the stroke computation would of put it. 
So the "stroke" is still smooth (in theory... current
gimp has issues with this) but the actual placement of
the compositing of the brush is randomized. 

To confuse matters slightly, the terminology to describe
this feature others apps use isn't very consistent. Painter
uses the term "jitter" to do what the above patch does. (aka,
add randomize perturbations to the location of the brush dab).
However, PS7 tends to use "jitter" in a more generic sense. They
use it to descibe any sort of paramaters that has random modulation.
So in PS7, you have "size jitter", "color jitter", "opacity jitter". 
Painter supports these same options, they just use it as a 
"random" expression input. 
Comment 3 Sven Neumann 2005-01-07 11:58:44 UTC
I'd like to suggest a small change to the UI for this feature. Please consider
using a scale entry and I also don't see a need for a boolean toggle. It should
be sufficient to set the jitter amount to 0 in order to disable it. That would
remove the need for a frame to hold the slider.
Comment 4 Michael Schumacher 2005-03-31 13:48:36 UTC
I can imagine that you want to be able to quickly switch between jittered and
non-jittered painting, so the toogle can be useful.

Comment 5 Adrian Likins 2005-08-02 23:00:08 UTC
Created attachment 50153 [details] [review]
patch to add "jitter" to paint tools

attaching the current patch, just for kicks. nothings changed really. If I get
to it, I'll play with the ui and see what I like better
Comment 6 weskaggs 2005-10-02 17:20:14 UTC
I've applied the patch and played around with it a bit -- and I definitely like
this feature, especially for the airbrush.  There are issues with the ui, but it
already seems usable, so I would favor applying the patch and then working
within cvs to improve it.
Comment 7 Michael Schumacher 2005-10-02 17:30:53 UTC
I second this - have this in my local tree, too, and I like it. Didn't notice
any ill effects yet. As for improvements, setting the value should be similiar
to setting the opacity, using a scale.
Comment 8 Sven Neumann 2005-10-02 22:03:13 UTC
It can be applied after the coding style issues have been fixed, in particular
but not limited to the use of // for comments.
Comment 9 weskaggs 2005-10-03 19:05:45 UTC
Okay, I have committed the patch, with the coding style fixed (I hope).  I also
changed the default jitter level from 0.0 to 0.2, since with the toggle switch,
0.0 is completely useless.

2005-10-03  Bill Skaggs <weskaggs@primate.ucdavis.edu>

	* gimp/app/paint/gimpbrushcore.c
	* gimp/app/paint/gimpbrushcore.h
	* gimp/app/paint/gimpclone.c
	* gimp/app/paint/gimppaintbrush.c
	* gimp/app/paint/gimppaintoptions.c
	* gimp/app/paint/gimppaintoptions.h
	* gimp/app/tools/gimppaintoptions-gui.c: Apply patch from
	Adrian Likins to add "jitter" to paint tools (bug #163049),
	with small fixes for coding style and default jitter set
	to 0.2 instead of 0.0.
Comment 10 david gowers 2005-10-04 13:11:24 UTC
It's a little odd that this works with some paint tools but not others.

Compare pencil/paintbrush/airbrush/clone to dodgeburn/eraser/smudge/convolve.
IMO it should apply to all brush-based paint tools, even the ones where it has a
somewhat odd effect (smudge), because that's more intuitive.

The effect with clone is rather interesting, though.

It seems particularly strange that it doesn't work for eraser; I thought eraser
worked very similarly to paintbrush except it effected the alpha channel.
Comment 11 Michael Natterer 2005-10-04 13:25:52 UTC
I did some cleanups/fixes to this in my local tree. Will commit later today.
Comment 12 Joao S. O. Bueno 2005-10-04 14:54:28 UTC
Hey..this is cool!  
 
Mich, I hope you had noted that it can't be turned off as of the commit in #9 
(neither set back to zero). 
Comment 13 Michael Natterer 2005-10-04 20:18:39 UTC
Enabled jitter for all brush tools and set core->jitter always, so it
can be switched off again.

2005-10-04  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.c (gimp_brush_core_start): set
	core->jitter here for all brush-based paint tools.

	(gimp_brush_core_interpolate): cleanup.

	* app/paint/gimpbrushcore.h: removed trailing whitespace.

	* app/paint/gimpclone.c (gimp_clone_motion)
	* app/paint/gimppaintbrush.c (_gimp_paintbrush_motion): removed
	jitter stuff here.
Comment 14 Sven Neumann 2005-10-20 10:27:13 UTC
Anything left to do here or can this bug be closed as FIXED?
Comment 15 Michael Schumacher 2005-10-24 08:31:55 UTC
I still think that this control should have a scale entry, like opacity.
Comment 16 weskaggs 2005-10-25 16:42:23 UTC
Okay, I changed it to a scale entry:

2005-10-25  Bill Skaggs  <weskaggs@primate.ucdavis.edu>

	* app/tools/gimppaintoptions-gui.c (jitter_options_gui):
	Use a scale entry instead of spinbutton for jitter amount,
	as discussed in bug #163049.

I made the range of the scale 0 - 2, because that seems like the region
that people will most commonly want to work in.  The range of the 
spinbutton is 0 - 50.  These values can easily be changed if they
don't seem appropriate to people.

Calling this fixed on the basis of comments, then.  But feel free
to add more comments if changes seem desirable.