mohdaef
Messages postés68Date d'inscriptionvendredi 23 novembre 2007StatutMembreDernière intervention14 mars 2012
-
4 sept. 2010 à 18:00
mohdaef
Messages postés68Date d'inscriptionvendredi 23 novembre 2007StatutMembreDernière intervention14 mars 2012
-
25 sept. 2010 à 21:16
Bonjour
Je programme avec les bibliothèques OpenGL et GLUT, et je me trouve confronté à quelque chose d'un peu génant.
Je dessine plusieurs objets(cube, sphère...) dans ma scène 3D à l'aide la la fonction glutSolid...().
Tout les objets se trouvant au bord de l'écran sont déformés, par exemple dans le cas de la sphère on dirait qu'elle n'est plus construite à partir de cercles mais d'éllipses.
J'utilise un angle de vision de 45 degrés, j'ai essayer de le changer mais pour avoir quelque chose de presque correct il me faut une valeur inférieure à 10 degrés.
Est-ce que ce phénomène est normal ? Puis-je faire quelque chose pour éviter cette déformation ?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 7 sept. 2010 à 12:43
Salut,
Tu es sûr d'avoir mis en place le ratio largeur / hauteur correctement si tu utilises gluPerspective ? Si tu n'utilises pas gluPerspective, qu'utilises tu ?
mohdaef
Messages postés68Date d'inscriptionvendredi 23 novembre 2007StatutMembreDernière intervention14 mars 2012 7 sept. 2010 à 18:28
Salut
Oui oui j'ai bien mis en place le ratio avec cette fonction, tout les objets proches du centre de l'écran sont impécables et plus on se raproche des bords plus c'est déformé.
shorzy
Messages postés94Date d'inscriptionjeudi 23 novembre 2000StatutMembreDernière intervention 1 juin 2013 13 sept. 2010 à 10:19
[b]Salut
Premièrement la déformation est normale !!! /b
Pour etre sur de ta valeur de Ratio. Essaye ceci :
// Fonction Redimensionnement de la Fenetre
void MyReshape(int width, int height)
{
gFenetreWidth = width; // Variable Globale.
gFenetreHeight = height; // Variable Globale.
}
/*...Puis dans ta fonction pointé par glutDisplayFunc ...*/
gluPerspective(50.0f,(GLfloat) gFenetreWidth/(GLfloat)gFenetreHeight,0.1,50);
sinon tu as : void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat near, GLfloat far)
pour définir ton volume de Visu.
Mais gluPerspective donne de bon résultat.
Sinon, envoie une photo de ton réultat, je ne vois pas bien ton problème:
La perspective induit une Déformation, mais avec 45° cela ne devrait pas être génant !!!!
Si la percpective te cause problème renplace :
gluPerspective()
par gluOrtho2D() ou glOrtho().
++
Yeeh Baby
Vous n’avez pas trouvé la réponse que vous recherchez ?
mohdaef
Messages postés68Date d'inscriptionvendredi 23 novembre 2007StatutMembreDernière intervention14 mars 2012 25 sept. 2010 à 21:16
Salut
Je sais bien que la perspective implique une déformation, mais c'est simplement que je la trouve un peu trop importante.
Comme tu me l'a conseillé j'ai fait une prise d'écran, il s'agit du menu principal. Lorsque que l'on survole les boutons il apparait à gauche et à droite de ceux-ci une sphère. Pour que tu puisse mieux voir la déformation j'ai désactivé l'éclairage sur la sphère de droite.
Normalement en désactivant la lumière on perd l'effet de profondeur et on devrait obtenir un cercle, ce qui n'est pas vraiment le cas.