Lors du rendu de graphiques en pixels 2D rétro, il est courant d'utiliser une résolution interne inférieure pour la pixellisation et de redimensionner la sortie à une résolution plus grande pour afficher. Cependant, la mise à l'échelle des primitives GL_LINE_LOOP peut entraîner des lignes non pixellisées.
La fonction glOrtho d'OpenGL définit un système de coordonnées 2D où l'origine se trouve dans le coin inférieur gauche et s'étend jusqu'au coin inférieur gauche. en haut à droite. En appelant glOrtho(0, 320, 240, 0, 0, 1), vous définissez un canevas virtuel de 320 x 240.
Cependant, lorsque la fonction glViewport est utilisée pour mettre à l'échelle la sortie, le canevas virtuel n'est pas physiquement redimensionné. . Au lieu de cela, les primitives sont dessinées sur la pleine résolution de sortie (par exemple, 960 x 720), puis mises à l'échelle. Cela donne des rectangles pixélisés mais des lignes non pixellisées.
La solution recommandée est de rendre une texture de la résolution virtuelle souhaitée (320x240 dans ce cas), puis de dessiner cette texture à la fenêtre à la résolution de sortie souhaitée (960x720). Cela garantit que les primitives sont rendues à la résolution virtuelle, en conservant leur apparence pixellisée.
Cette approche garantit que les lignes sont dessinées à la résolution virtuelle, conservant leur apparence pixélisée même lorsqu'elles sont mises à l'échelle à une résolution plus élevée. résolution de sortie.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!