Je souhaite afficher des modèles de différentes tailles dans une vue, de sorte que le modèle entier soit visible à l'intérieur de l'écran.
Quelle est la meilleure façon de le faire? Je essayé de mise à l'échelle (à l'aide glScale) le modèle en utilisant cette formuleAjuster le modèle 3D à l'intérieur d'une fenêtre
scaleFactor = (screenSize/(maxModelSize * constant))
où la taille est la hauteur ou la largeur, en fonction de ce qui est plus grand.
Constant est 1/(length of one screen pixel in OpenGL units)
Il y a deux problèmes:
1. Après avoir fait quelques transformations, je veux être en mesure de revenir à cette échelle initiale (modèle est redimensionnée à la taille fenêtre) à l'aide d'identité. L'identité en cours d'appel amènera le modèle à ses dimensions d'origine (avant l'échelle de "fixation").
2. La "constante" est quelque chose que j'ai obtenu par essais et erreurs, je me sens mal méthode. Je soupçonne également que ce n'est pas une constante du tout, et dépend de la résolution de l'écran et dieu sait quoi d'autre.
« Après avoir fait quelques transformations, je veux être en mesure de revenir à cette échelle initiale (modèle L'identité d'appel en cours ramène le modèle à ses dimensions d'origine (avant l'échelle de "fixation"). " Cela me suggère que vous mettez à l'échelle la matrice ModelView. Peut-être devriez-vous essayer de mettre à l'échelle la matrice de projection à la place? En d'autres termes, faites un appareil photo plus grand, pas un modèle plus petit. – Zecc