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

Développement 2D, 3D et Jeux Discussion :

Hud pour avion


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Points : 71
    Points
    71
    Par défaut Hud pour avion
    Bonjour,

    Je souhaiterais developper un hub d'avion sous opengl. Pour le moment j'apprends les base de opengl. Mon but dans un premier temps serait de faire quelquechose de similaire à ca:
    http://www.gearthblog.com/blog/archi...lay_guide.html
    C'est quelque chose de tres basique mais ca serait juste pour manipuler opengl.

    Pour le moment je bute la maniere de gérer les variations d'angles de tanguage ou l'inclinaison. Mon idée était de faire une image composé d'inscription entre -90 et +90 par exemple et de le rotater ou de le translater en fonction de l'atittude de l'avion. L'image dépasserait de la fenetre mais ca ne serait pas grave.

    Je ne sais pas si je parts sur une bonne piste ou avez-vous des idées plus simple de mise en oeuvre??

    Si quelqu'un pouvait m'aider.

    D'avance merci.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 862
    Points : 219 061
    Points
    219 061
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    De base, l'idée ne me semble pas trop mal. Il faut que vous appreniez à afficher une image "en 2D" dans le sens, coller à l'écran (sur google on peut trouver cela en cherchant : "afficher image fond d'écran opengl").

    Pour le reste, cela semble bon dans le principe.

    Finalement, je conseillerai toujours l'utilisation d'une bibliothèque un peu plus avancée, sachant que OpenGL est très bas niveau.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Points : 71
    Points
    71
    Par défaut Re
    Merci pour ta réponse.
    En fait j'utilise opengl parce que j'utilise qt. Comme opengl est déja ajouté de base à qt, c'est pour ca que j'ai pensais développer sous opengl.

    Je commence à voir comment gérer sous opengl. Ce que je veux faire parait faisable en tout cas sous opengl...

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 862
    Points : 219 061
    Points
    219 061
    Billets dans le blog
    120
    Par défaut
    Dans ce cas, vous pouvez faire l'interface (le HUD), avec Qt et faire le rendu du jeu avec OpenGL (pour tout ce qui est 3D).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 563
    Points
    4 563
    Par défaut
    Tu peux également chercher avec le terme "overlay"
    PXL le retro-gaming facile: Essayez-le

    Yildiz-Engine an open-source modular game engine: Website
    Yildiz-Online a 3D MMORTS in alpha: Facebook page / Youtube page

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Points : 71
    Points
    71
    Par défaut Re
    Merci pour votre réponse.

    Je suis en train de galére sur une partie. J'arrive a ajouter un objet avec une texture, un objet avec des couleurs mais des que je veux mettre les deux ca coince. Faut-il activer quelque chose?

    Voici mon bout de programme:
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    #include <iostream>
    using namespace std;
     
    #include <QtGui/QMouseEvent>
    #include <glwidget.h>
    #include <QtOpenGL/QGLWidget>
     
    #include <QtOpenGL>
    #include "GL/glu.h"
     
    double fovy = 45.0;
    double znear = 0.5,zfar = 100;
    double ratio = 1;
     
     
    GLWidget::GLWidget(QWidget *parent):
        QGLWidget(parent)
    {
        rquad =25;
        setMouseTracking(true);
        startTimer(1);
     
    }
     
    void GLWidget::initializeGL()
    {
        loadTexture("./images/HUD-RVBA.png");
        glEnable(GL_TEXTURE_2D);
        glShadeModel(GL_SMOOTH);
        glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        glClearDepth(1.0f);
        glEnable(GL_DEPTH_TEST);
        glDepthFunc(GL_LEQUAL);
        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
     
    }
    void initializeGL2()
    {
        glShadeModel(GL_SMOOTH);
        glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
        glClearDepth(1.0f);
        glEnable(GL_DEPTH_TEST);
        glDepthFunc(GL_LEQUAL);
        glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
    }
     
     
    void GLWidget::resizeGL(int width, int height)
    {
        if(height == 0)
            height = 1;
     
        glViewport(0, 0, width, height);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluPerspective(fovy, ratio, znear, zfar);
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
     
    }
     
    void GLWidget::paintGL()
    {
     
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glLoadIdentity();
     
        double alpha = 0;
        double translation = (1.0/tan(45.0/2.0*M_PI/180.0)*1.125);
     
        glTranslatef(0.0f, alpha/(45.0/2)*1.125, -translation);
     
        glBindTexture(GL_TEXTURE_2D, texture[0]);
     
        glEnable(GL_ALPHA_TEST);
        glAlphaFunc(GL_EQUIV, 0);
       glBegin(GL_QUADS);
           // Face Avant
           glTexCoord2f(0.0f, 0.0f);
           glVertex3f(-2.0f, -4.0f,  0.0f);
           glTexCoord2f(1.0f, 0.0f);
           glVertex3f( 2.0f, -4.0f,  0.0f);
           glTexCoord2f(1.0f, 1.0f);
           glVertex3f( 2.0f,  4.0f,  0.0f);
           glTexCoord2f(0.0f, 1.0f);
           glVertex3f(-2.0f,  4.0f,  0.0f);
       glEnd();
       glDisable(GL_ALPHA_TEST);
     
     
       glTranslatef(0.0f, 0.0f, -1);
    //    glColor3f(1.0f, 1.0f, 1.0f);
       glBegin(GL_QUADS);
           // Face Avant
       glTexCoord2f(0.0f, 0.0f);
           glVertex3f(-1.125f, -1.125f,  0.0f);
           glTexCoord2f(1.0f, 0.0f);
    //       glColor3f(1.0,0.0,0.0);
           glVertex3f( 1.125f, -1.125f,  0.0f);
           glTexCoord2f(1.0f, 1.0f);
    //       glColor3f(1.0,0.0,0.0);
           glVertex3f( 1.125f,  0.0f,  0.0f);
           glTexCoord2f(0.0f, 1.0f);
    //       glColor3f(1.0,0.0,0.0);
           glVertex3f(-1.125f,  0.0f,  0.0f);
     
       glEnd();
     
    }
     
    void GLWidget::loadTexture(QString textureName)
    {
        QImage qim_Texture;
        QImage qim_TempTexture;
        qim_TempTexture.load(textureName);
        qim_Texture = QGLWidget::convertToGLFormat( qim_TempTexture );
        glGenTextures( 1, &texture[0] );
        glBindTexture( GL_TEXTURE_2D, texture[0] );
        glTexImage2D( GL_TEXTURE_2D, 0, 3, qim_Texture.width(), qim_Texture.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, qim_Texture.bits() );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    }
    Ensuite je voudrais intégrer des textures transparentes. J'ai donc mis en place un alpha_test. J'ai généré une image de test mais visiblement soit ca m'affiche la texture soit ca ne me l'affiche pas..

    Je sais pas trop pourquoi...

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 862
    Points : 219 061
    Points
    219 061
    Billets dans le blog
    120
    Par défaut
    Si j'ai bien compris votre problème, vous pouvez trouver une solution ici : http://nehe.gamedev.net/tutorial/display_lists/15003/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    glEnable(GL_COLOR_MATERIAL);
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/06/2015, 11h45
  2. Réponses: 9
    Dernier message: 26/02/2013, 03h35
  3. [MCD] Gestion de pièces pour avions
    Par Cefiroth dans le forum Schéma
    Réponses: 7
    Dernier message: 09/05/2012, 15h29
  4. Overlay pour faire un HUD
    Par S4milli4 dans le forum Android
    Réponses: 1
    Dernier message: 05/07/2011, 17h21
  5. HUD Pour FPS
    Par b4cksp4ce dans le forum DirectX
    Réponses: 6
    Dernier message: 13/02/2008, 23h37

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