2010-05-11 5 views
2

J'utilise GLOrtho pour configurer une vue 2D sur laquelle je peux restituer des textures. Cela fonctionne très bien, jusqu'à ce que j'essaie de faire un zoom sur l'image. Si je passe la moitié de la largeur et la moitié de la hauteur de la fenêtre à GLOrtho, je me retrouve avec toutes mes textures affichées deux fois plus grandes que la normale, ce qui est exactement ce que j'attends. Mais ensuite j'essaye de dessiner une boîte autour d'une partie de l'image et tout s'effondre. J'appelle le glBegin(GL_LINE_LOOP), place les quatre sommets, et appelle glEnd, et je m'attends à voir la même chose que je verrais si je l'ai dessiné au niveau de zoom normal, doublé. Au lieu de cela, j'obtiens des lignes qui ont toutes la bonne longueur, mais elles sortent toutes d'un pixel au lieu de deux, et ça a l'air vraiment mauvais.Comment redimensionner les lignes lors de l'utilisation de GLOrtho?

Qu'est-ce qui me manque?

Répondre

3

Eh bien, vous pouvez soit l'échelle vous-même en utilisant glLineWidth ou vous pouvez émuler la ligne comme 2 triangles.

+0

2 triangles! Probablement devra activer l'anti-aliasing aussi. Bonne idée. –

+0

Bonne réponse. Les lignes GL ont toujours une largeur fixe. – Bahbar

-1

glScale serait une meilleure solution pour la mise à l'échelle au lieu de changer les paramètres glOrtho. De cette façon, tout ce qui est dessiné évoluera comme prévu.

+0

En fait, glScale ne donnera pas deux fois la largeur. –

+0

Maintenant, je me rends compte que cela ne fonctionnerait pas pour les lignes. – tafa

Questions connexes