Pour effectuer un zoom avant ou arrière, il est recommandé d'utiliser glOrtho ou glScale?Zoom avant et arrière dans OpenGl ES
Répondre
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?)
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».
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.
- 1. Effectuer un zoom avant/arrière UIView
- 2. Image 3D (glisser-déposer, édition, rotation, redimensionnement, zoom avant et zoom arrière) à l'aide de silverlight
- 3. OpenGL à OpenGL-ES - glBegin();
- 4. OpenGL ES profondeur tampon
- 5. commande avant et en arrière
- 6. Grand fond de défilement dans OpenGL ES
- 7. transition Vue personnalisée dans OpenGL ES
- 8. Problèmes glTexCoordPointer avec OpenGL ES
- 9. Configuration de glFrustumf dans OpenGL ES
- 10. iPhone OpenGL ES mélange alpha incorrect
- 11. Avant personnalisé et arrière avec enregistrement Pantheios
- 12. Arrière ou architecture avant
- 13. Appliquer la luminosité et le contraste avec OpenGL ES
- 14. Objets de tampon Frame OpenGL ES + Android
- 15. Android OpenGL ES manque des composants?
- 16. OpenGl ES scrollable ListBox problème de clipping
- 17. Comment rendre une image avec OpenGL ES?
- 18. iPhone OpenGL ES 2d texture d'arrière-plan
- 19. Opengl ES - Rendu incorrect sur l'axe z?
- 20. Visionneuse de miniatures - Zoom arrière/In
- 21. Tracer une ligne blanche en opengl es
- 22. Permettre à l'utilisateur de faire un zoom avant/arrière sur une vue Web
- 23. Javascript zoom avant/arrière en superposition ne fonctionne pas sur la deuxième charge d'image
- 24. Utilisation de la molette de défilement pour effectuer un zoom avant/arrière
- 25. Dessiner des formes "point-like" dans OpenGL, indifférent au zoom
- 26. Défilement dans Open GL ES
- 27. Dans OpenGL ES sur iPhone, comment faire défiler deux images?
- 28. Aide pour dessiner une sphère dans OpenGL ES
- 29. Comment générer des images mipmap dans OpenGL ES?
- 30. Qu'est-ce qu'une surface dans OpenGL ES ou Direct3D?