2009-10-06 6 views

Répondre

2

Cela dépend vraiment de ce que vous appelez le zoom. Dans une configuration de caméra typique, (disons, obtenue d'un point de vue), un zoom est obtenu en réduisant le champ de vision (comme sur un vrai appareil photo!). Voir la documentation de gluPerspective pour les mathématiques réelles d'un champ de vision à une matrice de perspective standard. GlOrtho ne génère pas de caméra perspective, donc vous n'imitez pas vraiment un zoom standard. Cela ressemble plus à un zoom en 2D de l'image (utilisez-vous actuellement glOrtho?)

1

Si vous avez configuré une projection parallèle avec glOrtho, vous pouvez, comme vous le suggérez, effectuer un zoom avant ou arrière en changeant les paramètres en glOrtho ou en utilisant glScale. J'ai tendance à utiliser glScale, car il est plus facile de penser à un zoom de 20% en augmentant de 1,2 plutôt qu'en recalculant vos plans gauche/droite/haut/bas.

Je ne dirais pas que ce soit «une bonne pratique».

0

glOrtho est généralement utilisé pour configurer une matrice de projection; glScale est généralement utilisé lors de la configuration d'une matrice de vue de modèle, en conjonction avec diverses autres transformations.

La plupart des développeurs mettent en place leur matrice de projection uniquement au début de la journée ou lorsque la fenêtre est redimensionnée. "Zoomer" implique que vous changiez la matrice à chaque image, donc il semble que cela devrait appartenir à la vue du modèle. Pour résumer: Zoomez sur la vue de votre modèle et utilisez glScale.

Questions connexes