Il y a trois façons courantes de le faire. Il ne s'agit pas vraiment d'éliminer complètement les artefacts - ce qui est impossible, à moins que vous n'ayez une mémoire ou un temps processeur illimités - mais plutôt de les réduire au minimum d'une manière qui corresponde à votre code existant et aux plates-formes cibles.
Tout d'abord, utilisez simplement votre tramage de polices - généralement FreeType - pour pixelliser la police à la taille souhaitée lorsque vous effectuez un zoom avant. Cela aura fière allure dans les captures d'écran, mais c'est incroyablement lent. Vous pouvez résoudre la lenteur en mettant en cache les tailles, mais cela devient incroyablement gourmand en mémoire. Il n'a pas non plus fière allure en mouvement, car pour que les glyphes soient bons pour l'affichage statique, il faut les mettre à l'échelle de manière non uniforme. Pourtant, c'est une option si vous êtes sur une plate-forme avec suffisamment de mémoire (comme un PC) et que vos balances sont limitées à une petite plage, comme 10px à 30px. Cette méthode n'admet pas non plus beaucoup de bonbons pour les yeux en soi.
Deuxièmement, vous pouvez stocker votre texte sous forme de maillage. Certaines bibliothèques existent pour le faire, comme GLTT , ou vous pouvez écrire les vôtres. Maintenant, vous n'avez plus d'artefacts de pixels, mais vous aurez des artefacts polygonaux si vous zoomez très près - comme tout autre maillage dans un jeu 3D. Le texte de maillage admet beaucoup de plaisir pour les yeux car les vertex shaders peuvent être appliqués et le maillage peut être entrelacé avec tout autre dessin du monde que vous faites. Il est relativement léger en mémoire et en CPU, et facile à mesurer le coût car il s'agit juste d'un maillage standard. Il peut être difficile de l'intégrer dans un pipeline de rendu 2D basé sur un sprite normal.
Troisièmement, vous pouvez utiliser des champs de distance en combinaison avec un pixel shader . Il s'agit d'une technique relativement nouvelle qui est actuellement populaire, utilisant un simple shader pour échantillonner une texture prédéfinie et le filtrage bilinéaire "gratuit" sur votre carte vidéo pour augmenter proprement les glyphes. Il utilise peu de mémoire et facilement prévisible par rapport aux autres méthodes - une texture de 0,5 Mo à 1 Mo par jeu de caractères et police. Il s'intègre parfaitement dans les pipelines de rendu basés sur les sprites car il est basé sur les sprites; chaque glyphe est toujours un quad texturé. Il produit des artefacts de pixels, mais très peu par rapport à d'autres méthodes qui mettent à l'échelle les textures. Il existe également une solution de remplacement à fonction fixe si les shaders de pixels ne sont pas disponibles, mais le texte se retrouve très aliasé. Étant donné que l'échantillonnage est effectué dans un pixel shader, il admet des bonbons pour les yeux, comme le contour et l'ombrage, pour pas cher.