noise generators (forked from: Krita user community?)

Boudewijn Rempt boud at
Thu Feb 28 21:06:57 CET 2008

On Thursday 28 February 2008, Matthew Woehlke wrote:

> So... what I was actually thinking is to have a generator for the data
> channel outputting K (grayscale, no alpha), with a different generator
> outputting M (the mask)... possibly as separate layers, so long as there
> is a reasonable way to combine them to achieve the desired effect.

Hm... That could be rather difficult to achieve.

> Ok, clearly our terminology is different... I'm calling a "node" what
> you get when you take a layer plus optional masks, i.e. a "line item" in
> the stack (at least, as it would be in PS/GIMP).

All the masks are items in the layer stack, too -- and until we find someone 
to fix the layerbox they will be lines in the layerbox. The difference 
between layers and masks is that all the child layers of a layer group will 
be composited together onto one projection, while all the masks in a layer 
will be applied to the projection -- the distinction is not a strong one, and 
right now Krita is limited in that you cannot mix and match masks and layers.

I.e., you can have

root layer
	group layer 1
		paint layer 1
		adjustment layer 1
		paint layer 2
			transparency mask 1
			filter mask 1
			filter mask 2
		paint layer 3
	group layer 2
		clone layer 1 (cloning adjustment layer 1)
			filter mask 1

And not

root layer
	group layer 1
		paint layer 1
		filter mask 1
		paint layer 2
		transparency mask 1
		filter mask 2

It would not be hard to remove this limitation, though I do not intend to 
remove it before the next release. I've got problems enough getting the 
layerbox to work, not to mention the crashes when painting and all the 
feature regressions from 1.6.

> > layers: group, adjustment, paint, copy (and, potentially, generated)
> Copy?

I should have said "clone" -- it clones the output of another node in a 
different place in the layer stack -- taking care that we don't

> > masks: transparency, filter, transformation, selection
> Um... ok, I guess I don't get how a filter works, then, or why a filter
> is a mask and an adjustment is a layer. For that matter, how is an
> adjustment not a filter?

Both adjustment layers and filter masks are a combination of a grayscale paint 
device that defines the selection on which they work and a filter. It's just 
that a filter mask operates on a single layer, while the adjustment layer 
sits in between layers. The distinction is pretty artificial and is only here 
because otherwise the layer tree would be more difficult for people to work 

> (A group layer is one which combines two projections?)

A group layer contains layers; a layer contains masks. Masks are, at the 
moment, always leaf nodes. It isn't yet possible to add a blur filter mask to 
a transparency mask. 

> This would be good information to have on that wiki page I want to start
> :-).
> :
> > Wether we'll allow mask nodes to be nested remains to be decided, I think
> > it could be useful, but it could also be too hard for users to work with.
> PS lets you nest paint and vector masks (not sure how that would work
> with krita since I assume we have karbon flakes), but... I would
> definitely like to be able to apply a paint mask to a filter. Maybe,
> nesting of masks should be allowed with the caveat that you cannot nest
> more than one of a type.

All masks contain a selection paint device that defines on which pixels of 
their parent layer they operate.

> Alternatively, do as I suggested earlier and have a composition mode
> that is equivalent to nesting, but with separate nodes :-).

Well, we're pretty late as is, so unless it turns out that we absolutely need 
to do it, I don't want to rework the node stack design before we manage a 
first release. We can always open up the other possibilities for the next 

Boudewijn Rempt

More information about the kimageshop mailing list