En OpenGL, comment puis-je régler pour le redimensionnement de fenêtre?
Je dessine plusieurs formes (telles que des cercles) qui sont assorties hors de la hauteur de la fenêtre & largeur. Depuis la fenêtre commence toujours à une taille donnée, ils sont dessinés correctement, mais lorsque la fenêtre est redimensionnée, il sème le ratio d'aspect.
Comment puis-je dessiner les formes correctement, indépendamment de la taille de la fenêtre?
OriginalL'auteur samoz | 2010-07-16
Vous devez vous connecter pour publier un commentaire.
Vous ne voulez certainement pas à faire la taille de vos objets explicitement dépend de la taille de la fenêtre.
Comme l'a déjà suggéré genpfault, ajuster votre matrice de projection à chaque fois que la taille de la fenêtre change.
Choses à faire sur la fenêtre de redimensionnement:
Ajuster la fenêtre d'affichage
Ajuster ciseaux rectangle (uniquement si vous avez
GL_SCISSOR_TEST
activé)Ajuster la matrice de projection
En cas d'héritage (fixe fonction de pipeline), OpenGL, vous pouvez le faire de la manière suivante:
ou
ou
(en supposant que
left, right, bottom
ettop
sont tous égaux etratio=width/height
)glScissor()
. Voir ceci.OriginalL'auteur Greg S
Si vous utilisez quelque chose comme gluPerspective() suffit d'utiliser la fenêtre de rapport largeur/hauteur:
OriginalL'auteur genpfault
Vous devez configurer une sorte de gestionnaire de fenêtre de la fonction qui est appelée à chaque fois que votre OpenGL fenêtre est redimensionnée. Vous avez besoin de prendre soin de l'affaire quand aspectRatio > 1, et quand aspectRatio <= 1 séparément. Ne pas le faire peut entraîner la géométrie de tomber hors de l'écran après un redimensionnement de l'écran.
OriginalL'auteur Dustin Biser
Je suis en train d'apprendre opengl trop. J'ai été confronté à ce problème hier et je n'ai pas trouvé la bonne réponse. Aujourd'hui, j'ai à résoudre le problème. Dans mon petit programme, l'objet change de taille lors du redimensionnement de la fenêtre de modification de la largeur ou de la heigt. C'est mon code (s'il vous plaît, pardonnez-moi mes erreurs):
OriginalL'auteur José Antonio López Cano
Il existe de nombreuses méthodes pour le faire.
L'exemple suivant vous montre comment je vais le faire dans mes projets et son travail.
L'exemple montre simplement un rectangle qui ne sont pas des changements de taille lorsque la fenêtre est redimensionnée. Vous pouvez directement copier et coller dans votre projet(considérez que je suis un openGl débutant)
OriginalL'auteur Sathsara AM