Filtre gaussien avec OpenGL Shaders

Je suis en train d'apprendre les Shaders à mettre en place quelque chose dans mon iPhone. Jusqu'à présent j'ai compris facilement des exemples comme la réalisation d'une image couleur en échelle de gris, de seuillage, etc. La plupart des exemples concernent des opérations simples en cas de traitement d'entrée de pixel de l'image I(x,y) résultats dans une simple modification des couleurs de la même pixel

Mais, comment sur Circonvolutions?. Par exemple, le plus simple exemple, le filtre Gaussien,

dans lesquels la production de pixel de l'image O(x,y) ne dépend pas seulement sur I(x,y) mais aussi sur les environs de 8 pixels.

O(x,y) = (I(x,y)+ surrounding 8 pixels values)/9;

Normalement, cela ne peut être fait avec une seule image de la mémoire tampon d'entrée ou de pixels va changer le filtre est effectué. Comment puis-je faire cela avec des shaders? Aussi, dois-je gérer les frontières de moi-même? ou il y a un construit-il la fonction ou quelque chose que l'enregistrement non valide pixel d'accès comme I(-1,-1) ?

Merci d'avance

PS: je vais être généreux(lire:donner beaucoup de points) 😉

source d'informationauteur nacho4d