Bonjour !

Je me retrouve embêté avec la création d'un effet extrêmement simple à partir d'une texture SDL en openGL4 : une bordure à une texture.
En effet, tout fonctionne mais alors ce n'est pas optimisé pour un sou.

Je me focalise sur l'affichage du texte :

Nom : spacecrafter-17.11.29-23.33.52.jpg
Affichages : 296
Taille : 239,9 Ko

Voici mon souci

Nom : pb_bordure.jpg
Affichages : 247
Taille : 13,0 Ko

Si je demande à openGL d'afficher la texture simplement, j'obtiens le résultat de gauche.
(le texte est généré à partir de SDL_ttf puis transformé en texture openGL et déformé par les shaders.)


Si je zoome, j'obtiens ceci:

Nom : pb_bordureZOOM.jpg
Affichages : 267
Taille : 67,0 Ko

Pour afficher la partie de droite, le logiciel utilise alors la technique suivante pour créer le rendu :

Si (x,y) désigne la position de l'image à afficher:
DEBUT
Affiche cette texture en noir à la position en (x - 1,y)
Affiche cette texture en noir à la position en (x +1,y)
Affiche cette texture en noir à la position en (x,y - 1)
Affiche cette texture en noir à la position en (x,y +1)
Affiche cette texture en vert à la position (x,y)
FIN

Le debugger NVIDIA me le montre bien:

Nom : debugger.png
Affichages : 299
Taille : 110,4 Ko


Sans bordure, l'affichage est moins voyant, aussi je me focalise sur la partie avec bordure.
Peut on gérer une bordure similaire de manière moderne ? (5 appels au même shader pour afficher une même texture, c'est ... du médiéval !)

Pourriez vous m'indiquer la démarche m'indiquant comment je devrais m'y prendre ?

Cordialement