Impasto discussion

Matthew Woehlke mw_triad at users.sourceforge.net
Fri Jul 9 22:41:10 CEST 2010


Dmitry Kazakov wrote:
>> I think, instead of rendering every layer, it is better to use
>>> COMPOSITE_ALPHA_DARKEN for impasto channel. It'll be much cheaper. In
>> such a
>>> case, the final impasto value of the point on projection will be equal to
>>> the value of the most opaque layer.
>>
>> No, that doesn't work well, as I explained:
>>> That technique has obvious problems, since it effectively amounts to
>>> carving an alpha-mask-shaped hole in the underlying layers' impasto,
>>> rather than letting the layer as a whole float above the layers beneath.
>
> Well, maybe I don't understand something... I meant the following:
> * every layer has an impasto channel
> * let's have three layers:
>
> Layer1: alpha=transparent; impasto=100;
> Layer2: alpha=opaque; impasto=125;
> Layer3: alpha=transparent; impasto=50;
>
> The result impasto value will be: 125
>
> Isn't it what expected?

I suppose... if you only do one stage of impasto rendering. However, say 
you have two layers, with impasto cross sections like this:

layer1
.
...
......
........
.......
.........
.......
........
......
...
.

layer2
..
.

..
.

.
..
..
..
.

Now, if layer1 is opaque, and layer2 is opaque in the middle but 
transparent in the outside, you end up with this:
(1) .
(1) ...
(1) ......
(1) ........
(2) .
(2)
(2) .
(1) ........
(1) ......
(1) ...
(1) .

...but now you have a deep crater in the middle of your canvas, and 
single-pass impasto is going to show that deep crater. But is that 
really what you wanted? In my experience it is not. (It's especially bad 
when you've overpainted an entire layer with a different base height for 
the impasto, which in my experience seems to happen whenever you try to 
erase impasto.)

I'm not sure how exactly to (aesthetically) describe the technique I'm 
describing (technically); partly I'm not sure exactly how (or how well) 
it would work without actually seeing it. The opaque parts of layer2 
will cover the impasto of layer1 (as desired), but I believe it would 
work better than single-pass impasto, as you won't have the pronounced 
(and not desired) height-change you would with single-pass.

Hope this makes sense!

> Btw, if we manage to implement impasto as a filter, per-layer impasto will
> be easily achieved with a usual Filter Mask.

True. I guess that means instead of having impasto as some global thing, 
you just slap a filter on at the stack top if you want it (and want 
single-pass). Though it would probably save quite some UI space to 
combine display of the filter with display of the impasto channel, and 
just be implicit that the filter is there (but can be disabled).

-- 
Matthew
Please do not quote my e-mail address unobfuscated in message bodies.
-- 
ENOWIT: .sig file temporarily unavailable



More information about the kimageshop mailing list