Sur Twitter, j'ai trouvé cette capture d'écran d'un jeu en développement:
L'image sur le dessus semble être sans aucune limitation de couleur. Mais les deux autres images en bas ont une palette de 256 couleurs.
Je veux obtenir un effet similaire dans mon jeu (j'utilise OpenGL). Comment faire?
Réponses:
Je suis le créateur de cette image.
L'image de droite est rendue à l'aide d'une texture de recherche de couleur. Dans le shader GLSL final, j'applique le tramage, puis convertis les valeurs RVB en entiers dans la plage 0 <= x <40, les combine en un seul index, puis recherche la valeur de couleur résultante dans cette image:
La rangée la plus basse est la palette brute.
L'image de gauche est créée uniquement dans le shader en sous-échantillonnant les canaux rouge et vert à 8 valeurs, et le canal bleu à 4 valeurs après application du tramage, ce qui donne RGB332. J'ai également joué avec 7 teintes rouges, 9 vertes et 4 bleues, ce qui ne donne que 252 couleurs, mais en mettant davantage l'accent sur le vert, auquel l'œil humain est le plus sensible.
la source
Vous pouvez utiliser une table de recherche d'étalonnage des couleurs dans une étape de post-traitement comme décrit ici et probablement ici .
Après avoir implémenté cela, tout ce que vous aurez à faire est de faire une capture d'écran, de superposer la texture de recherche sur celle-ci, puis de la modifier dans un logiciel graphique arbitraire jusqu'à ce que vous l'aimiez - puis de récupérer à nouveau la texture de recherche modifiée. Cela peut inclure ou non la réduction de la table de recherche récupérée à un sous-ensemble de couleurs.
Lors du chargement de la texture de recherche en gardant à l'esprit la limitation des couleurs, assurez-vous simplement de désactiver tout le filtrage, afin qu'il ne produise pas de couleurs supplémentaires.
la source