IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

GlOrtho, pbm de coordonnées


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Par défaut GlOrtho, pbm de coordonnées
    eeeuh et voila encore un problème !!

    1/ Je lance mon appli 3D en 800x600
    2/ Je fais un glOrtho(0, 800, 600, 0, 0, 100) a la fin de ma boucle principale
    3/ Quand j'affiche un carré ayant pour centre (0,0), cela ne semble pas correspondre exactement au coin supérieur gauche, qui sera situé à qqc plutot du genre (90,84)...

    C'est assez embetant car comme c'est pour faire un menu, je teste si la souris est sur un élément en X, Y... donc si on parle pas du même système de coordonnées... ça le fait pas :s

    J'ai trouvé très peu d'infos et surtout très peu parlantes (en GLUT souvent aussi...) sur la fonction GlOrtho, et je pense que c'est elle que j'utilise mal et qui cause ce soucis.


    Si quelqu'un sait... :s

  2. #2
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par adrien357
    Je fais un glOrtho(0, 800, 600, 0, 0, 100) a la fin de ma boucle principale
    A part que je mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glOrtho(0, 800, 600, 0, -1, 1)
    Je fais pareil

    3/ Quand j'affiche un carré ayant pour centre (0,0), cela ne semble pas correspondre exactement au coin supérieur gauche, qui sera situé à qqc plutot du genre (90,84)...
    Montre le code complet, concis et compilable qui affiche le carré avec cette erreur...

    C'est assez embetant car comme c'est pour faire un menu, je teste si la souris est sur un élément en X, Y... donc si on parle pas du même système de coordonnées... ça le fait pas :s
    C'est clair

    et je pense que c'est elle que j'utilise mal et qui cause ce soucis.
    Pas à ce que je vois,
    Jc

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
     
    procedure OnResize(width, height : integer); STDCALL;
    begin
        glViewPort(0, 0, width, height);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity;
        gluPerspective(60, width/height, 1.0, 3000.0);
    end;
     
     
    begin
     
    glfwInit;
    glfwOpenWindow(800,600, 0, 0, 0, 0, 0, 0, GLFW_WINDOW );
    glClearColor( 0.0, 0.0, 0.0, 0.0 );
    glfwSetWindowSizeCallBack(OnResize);
    glfwEnable( GLFW_STICKY_KEYS );
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    glDepthFunc(GL_LESS);
     
    glClear( GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT );
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity;
    glBlendFunc(GL_SRC_ALPHA, GL_ONE);
     
     
    // chargement de chaque boutton
     
    glGenTextures(1, @ta);
    glBindTexture(GL_TEXTURE_2D,ta);
    glfwLoadTexture2D('Textures/menu/jouer.tga', GLFW_BUILD_MIPMAPS_BIT);
    running := 1;
     
    while running <> 0 do begin
     
        gluLookAt(0, 0, 0, 1, 0, 0, 0,0,1);
     
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glOrtho(0, 800, 600, 0, 0, 100);
     
        glBindTexture(GL_TEXTURE_2D, ta);
        glBegin(GL_QUADS);
            glTexCoord2f(0,0);      glVertex2i(90, 500);
            glTexCoord2f(0,1);      glVertex2i(90,90);
            glTexCoord2f(1,1);      glVertex2i(720,90);
            glTexCoord2f(1,0);      glVertex2i(720,500);
        glEnd;
     
        glfwGetMousePos(MouseX,MouseY);
        writeln(inttostr(MouseX)+' ; '+inttostr(MouseY));
     
        if glfwGetKey(GLFW_KEY_ESC) = 1 then running := 0;
    end;
    glfwTerminate;
    end.
    voila ce qui pourrait peut être influer...

  4. #4
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Ces deux lignes, n'ont rien à faire là...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        gluLookAt(0, 0, 0, 1, 0, 0, 0,0,1);
    A virer...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       gluPerspective(60, width/height, 1.0, 3000.0);
    Mais plutôt :
    glOrtho(0, width, height, 0, 0, 100);[/CODE]


    Pourquoi avoir mis ceci dans la boucle?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glOrtho(0, 800, 600, 0, 0, 100);
    Jc

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Une image pour illustrer le problème?

    Jc

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Par défaut
    J'ai inclus toutes les modifications sur les matrices / sur l'affichage qui interviennent dans le projet final, c'est pour ca qu'il y a ces lignes... qui bien sur sont totalement inutiles ici, mais comme je ne connais pas le fonctionnement réel de glortho, je les ai mises des fois que ça ai un sens... apparemment non ^^.

    image à venir... beeh en 0,0 y a pas d'image justement
    en prenant 90,90 comme dans l'exemple ça me met le carré quasiment dans l'angle supérieur gauche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récuperer les coordonnées d'un vecteur
    Par kerzut dans le forum OpenGL
    Réponses: 5
    Dernier message: 15/04/2003, 11h51
  2. [ PostgreSQL ] Pbm migration base d'un serveur à un autre
    Par TiSteph dans le forum Administration
    Réponses: 3
    Dernier message: 06/03/2003, 18h04
  3. [Crystal Report 8.5 + VB6] Pbm déploiment
    Par La Gillasse dans le forum SDK
    Réponses: 2
    Dernier message: 14/10/2002, 15h19
  4. Coordonnées du curseur ???
    Par LE CHAKAL dans le forum Composants VCL
    Réponses: 3
    Dernier message: 27/08/2002, 17h28
  5. Pbm avec les '&'...
    Par AmaX dans le forum Composants VCL
    Réponses: 2
    Dernier message: 19/08/2002, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo