[prev in list] [next in list] [prev in thread] [next in thread]
List: kwin
Subject: Blur effect
From: Rivo Laks <rivolaks () hot ! ee>
Date: 2007-04-28 15:36:48
Message-ID: 200704281836.49111.rivolaks () hot ! ee
[Download RAW message or body]
Hi
I've committed a blur effect into SVN.
Blur effect blurs background of translucent windows, thus making it possible
to actually read text on translucent windows (without blurring the background
may make it very difficult to make out smaller details such as text).
I've made some screenshots as well:
http://freehackers.org/~rivo/kwin/kwin-blur1.jpg shows konqueror with 75%
transparency on top of konsole and ark. As you can see, the konqi's text is
still very readable while you can also see when something happens in the
konsole window below. For comparision,
http://freehackers.org/~rivo/kwin/kwin-blur1-noblur.jpg shows the same scene
without blurring. It's much more difficult to read the text when it's on top
of konsole's text.
http://freehackers.org/~rivo/kwin/kwin-blur2.jpg (the dots are KSnapShot
artifact) shows that even with 50% translucency, text remains quite readable.
I won't even make a comparision shot for that ;-)
Which graphics card does it need?
It uses shaders and render targets, so ATM it needs GeForce 6000 or up (not so
sure about ATI cards, Radeon x500 or something and up may work).
Once I get our GLRenderTarget to work with ARB_texture_rectangle, it will also
work on cards not supporting NPOT textures, that is GeForce 5000 / Radeon
9500 and up. I'm not sure if those cards are fast enough for everyday usage
though...
Technical details follow:
It does not use stencil buffer. Instead it first checks whether there are any
translucent windows. If yes, then windows are rendered onto texture which is
then blurred and used as background for the translucent window. Problem is
that if there are multiple translucent windows, then blurring will be done
multiple times which tears performance down quite a bit. Further
optimizations should be possible though and if it turns out that stencil
approach is necessary for decent speed, then I might consider doing that as
well.
Blur is gaussian blur with radius of 4, but thanks to texture filtering tricks
it's quite fast. It might be possible to get it a bit faster by using smaller
radius, but I'm not sure it's worth it. Different blur method probably
wouldn't help much either.
Finally, there is a strange rendering bug when multiple translucent windows
are active (there's weird 1-pixel border around some widgets when/after
they're highlighted). Screenshot:
http://freehackers.org/~rivo/kwin/kwin-blur-bug.jpg Maybe someone can guess
what's causing this...
Rivo
_______________________________________________
Kwin mailing list
Kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic