-
flouer une texture
Bonjour à tous.
J'ai fait un rendu sur texture (FBO) et j'aimerais flouer tous les contours des polygones qui sont sur ma texture. Donc il faudrait que j'applique un flou gaussien, je croit.
J'ai vu que l'ont pouvait afficher la texture plusieurs fois avec un petit décalage et du blending pour avoir un effet de flou mais :
:arrow: C'est bof bof comme résultat
:arrow: Je perd pas mal d'image par seconde quand j'affiche 4 fois la texture ou plus
N'y a t-il pas une solution qui donne de meilleurs résultats et qui est plus performant ? A base de GLSL ? Si oui comment faire ? Avez-vous des tuto ?
Merci
-
Salut,
Présentation du filtre gaussien avec shaders ici :
http://ozone3d.net/tutorials/image_f..._p2.php#part_2
Fais-le en plusieurs passes, oui, mais penses à redimensionner ta texture pour :
- gagner en performances ;
- obtenir un effet de flou plus prononcé.
Par exemple, soit deux FBOs, A et B, avec respectivement les résolutions suivantes : 512*512, 256*256, tu peux faire ceci :
- activer le shader de filtre gaussien ;
- rendre la scène sur A ;
- rendre A sur B ;
- rendre B sur A.
Au final, A donne quelque chose de pas trop mal. Après il faudra régler le nombre de passes, les résolutions, les paramètes dans ton shader, etc...
Attention : l'utilisation du filtre gaussien sur de "grosses" résolutions de texture (comme 1024*1024) provoque des pertes de performance assez conséquentes.
Je te conseille de prendre des résolutions puissances de 2 (2^n) pour tes FBOs, afin de gagner encore en performance.
-
Merci, ça fonctionne trop bien 8-)