J'essaie de faire un rendu indépendant de la résolution des sprites en mouvement dans un jeu 2D. Mon plan est de travailler dans un système de coordonnées fixe dans mon monde (par exemple 960x540) et d'utiliser une projection orthographique pour augmenter ou diminuer la taille de la fenêtre. Je fais du letterboxing pour gérer différents formats d'image.
Selon la plupart des tutoriels, je suis libre d'utiliser les dimensions que j'aime pour le tronc de vue, mais j'ai trouvé que dans de nombreux cas, cela conduit au problème que je finis par utiliser des valeurs de sous-pixels dans la fenêtre. Par exemple, un sommet en (62,62) dans un système de coordonnées de 960 x 540 se termine en (51,6666667,51,6666667) sur une fenêtre avec les dimensions 800 x 450.
J'ai remarqué deux types de problèmes avec cela:
- l'échantillonnage de texture change tout le temps pour les objets en mouvement en fonction de la position des sommets par rapport au centre des pixels
- mes objets sont étirés horizontalement ou verticalement d'un pixel de temps en temps en raison de l'arrondissement
Quelle est la meilleure pratique pour éviter cela (tout en conservant une indépendance de résolution en termes de vitesses de déplacement, etc.)? Et quel serait le meilleur endroit pour résoudre ce problème? Avant de passer les sommets aux shaders ou à l'intérieur du vertex shader?