Filters "dialog" in 2.0
Boudewijn Rempt
boud at valdyas.org
Wed Jun 20 21:06:51 CEST 2007
On Wednesday 20 June 2007, Moritz Moeller wrote:
> I'd like the opportunity to place a plea for abandoning filters
> altogether and going for filter layers instead (basically allowing to
> put any filter on an adjustment layer and change it dynamically
> afterwards).
We have that :-). At least, as soon as I've finished the ui for manipulating
them. Currently we have effect masks (a per-layer set of masks associated
with a filter) and adjustment layers (a filter in between a stack of layers).
One problem here is that we have some filters that have a random effect: we
haven't figured out yet how to stop the filter being random after being
inserted as an effect mask or an adjustment layer.
Still, I also want to keep the ability to actually hard-change the pixels in a
certain layer -- it's a way of working that's very common.
> In terms of UI: one could have a palette which displays the options of
> the filter or be able to 'roll out' an adjustment layer in the layers
> palette directly like in Adobe AfterEffects.
I don't think I've seen AfterEffects -- however, both adjustment layers and
effect masks are and will be right in the layers palette, drag & droppable
and manipulatable.
One good thing about the docker palette idea is that it can be updated to show
the config of the current adj. layer or effect mask -- one problem is that
some filter config widgets are really big and don't fit into a docker.
> I think what he means is to roll out another palette in the right 'stow
> bar',
cool name :-)
> as I like to call it, possibly at the at the top. This would
> display the filter's options. When the user okays or cancels the filter,
> this palette collapses again. This might be confusing, since filters are
> currently not dynamic in Krita (hence my pleas above). But palettess on
> the right only do display dynamic adjustable document properties as it
> stands.
> However, if filters all were to become adjustment layers in the future,
> one could do this as a 'preparation'/'conditioning' of users to that
> UI... ;)
Yes, well -- we're going there, but I still want to be able to keep filters
that affect the pixels.
Of course, it could be as simple as always add an effect mask to a layer and
then optionally choose to merge the effect mask with the layer -- which would
be functionally equivalent to applying a filter now. That would obviate the
need for previews, apply, apply as mask or cancel buttons.
> I once, in another life, used to be the product manager of Alias Eclipse
> (the same Alias that makes the highend 3D software Maya, well now it's
> Autodesk, not Alias, they bought them)...
>
> Eclipse was an imaging app that allowed one to easily compose 4GB multi
> layer image files on machines with 128 MB of RAM at the time. I can
> elaborate on how it did that (including filters that weren't burned into
> the image), if you're interested.
How did it do that? I'm very interested. I mean, Krita does a lot of heavy
caching of pretty much everything (adj. layers keep a rendered cache of the
stack of layers beneath it, layers that have effect masks keep a rendered
cache of the result of applying all the masks to the layer's pixel data), but
that that's heavy on memory. On the other hand, not doing that makes Krita
really slow.
We've got a couple of performance bottlenecks right now, only some of which I
already have figured out how to solve. One problem is dirty marking: we only
want to recomposite (incl. re-applying dynamic filters) the areas that have
changed. We do this using regions, i.e., collections of non-overlapping
rects. But those degrade to scanlines really quickly -- see the thread with
the title QRegion.
Another problem is that is we don't yet use the hooks to only recomposite
visible area of the image -- I've added the code to our projection class, but
the canvas classes don't call it yet. But that should be basically solved.
The third is that we're not yet using pyramids for scaling and so on -- our
tile backend is up for a redesign. As soon as Bart's got some time again,
he's going to work on that. I'm sure he'd be grateful for any pointers you
can give him though :-).
--
Boudewijn Rempt
http://www.valdyas.org/fading/index.cgi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kimageshop/attachments/20070620/0c84a48a/attachment.pgp
More information about the kimageshop
mailing list