[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