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 :

rendu hors du main [OpenGL 3.x]


Sujet :

OpenGL

  1. #1
    Membre très actif Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Par défaut rendu hors du main
    J'aimerais deplacer le rendu dans une méthode de classe dédié mais dès que je met un fonction opengl dans la méthode de classe, plus rien ne s' affiche.

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 053
    Billets dans le blog
    141
    Par défaut
    Bonjour,

    OK. Vérifiez bien que la nouvelle méthode est appelée.
    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
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 145
    Billets dans le blog
    4
    Par défaut
    Est-ce que les appels sont faits dans le même thread ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre très actif Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Par défaut
    Même thread, j'ai bien appelé la fonction
    Peut être qu'il faut que je passe les arguments par référence, ce que je ferai de toute façon car ce sont des objets que j'ai créé

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 053
    Billets dans le blog
    141
    Par défaut
    Si vous n'utilisez pas de référence (ni pointeur) alors vous faites des copies de vos objets. Du coup, si vous avez une fonction modifiant certaines variables, seules la copie (temporaire) sera impactée et les changements ne seront pas appliqués au reste du programme.
    Mais, si cela vous amène à de telle interrogation, je ne peux que vous conseiller de relire un cours de programmation, car ce n'est pas lié à OpenGL.
    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.

  6. #6
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 525
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 525
    Par défaut
    salut il faudrait préciser l'OS : est-ce que c'est en win32 ?

  7. #7
    Membre très actif Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Par défaut
    je suis sur Windows 10 64bits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
            glUseProgram(renderer.programID);
            glUniformMatrix4fv(glGetUniformLocation(renderer.programID, "projection"), 1, GL_FALSE, value_ptr(renderer.projection));
            glBindVertexArray(chunk.GetvaoID());
            glBindTexture(GL_TEXTURE_2D,renderer.texID);
     
            renderer.modelview = translate(camera.view, vec3(0.0f, 0.0f,0.0f));
     
            glUniformMatrix4fv(glGetUniformLocation(renderer.programID, "modelview"), 1, GL_FALSE, value_ptr(renderer.modelview));
            glDrawArrays(GL_TRIANGLES, 0,chunk.vertices.size()/3);
            glBindTexture(GL_TEXTURE_2D, 0);
            glBindVertexArray(0);
            glUseProgram(0);
    là ça marche
    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
    void Renderer::drawChunk(Chunk Ch,Camera cam){
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glUseProgram(programID);
        glUniformMatrix4fv(glGetUniformLocation(programID, "projection"), 1, GL_FALSE, value_ptr(projection));
        glBindVertexArray(Ch.GetvaoID());
        glBindTexture(GL_TEXTURE_2D,texID);
     
        modelview = translate(cam.view, vec3(0.0f, 0.0f,0.0f));
     
        glUniformMatrix4fv(glGetUniformLocation(programID, "modelview"), 1, GL_FALSE, value_ptr(modelview));
        glDrawArrays(GL_TRIANGLES, 0,Ch.vertices.size()/3);
        glBindTexture(GL_TEXTURE_2D, 0);
        glBindVertexArray(0);
        glUseProgram(0);
    }
    mais pas là,quand je l'appelle dans le main

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 145
    Billets dans le blog
    4
    Par défaut
    C'est quoi Chunk et Camera ? Pourquoi les passer en copie ? Sont-ils correctement copiables ? Où sont les glGetError ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  9. #9
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 525
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 525
    Par défaut
    ce n'est pas un problème de HDC ( Device Context) obtenu dans WM_PAINT par hasard ?

  10. #10
    Membre très actif Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Par défaut
    en fait il suffisait de passer par référence,peut etre a cause des vectors qui étaient des les classes et qui se copient mal

  11. #11
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 032
    Billets dans le blog
    12
    Par défaut
    Pour rebondir sur glGetError (message de Bousk) : on ne l'utilise plus, on utilise les callbacks de debug fournis par OpenGL qui au pire fournissent la même info que glGetError, mais qui ont l'énorme avantage de pouvoir se plugger sans effectuer un seul changement dans le reste du code.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

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


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

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 053
    Billets dans le blog
    141
    Par défaut
    Citation Envoyé par fifafou Voir le message
    en fait il suffisait de passer par référence,peut etre a cause des vectors qui étaient des les classes et qui se copient mal
    Lorsque je lis vos incertitudes sur ce qui se passe, j'ai obligatoirement l'envie de vous conseiller de relire un tutoriel de programmation C/C++, notamment sur le passage d'arguments d'une fonction.
    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.

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

Discussions similaires

  1. nohup : rendu de main dans un shell ?
    Par Lamy D dans le forum AIX
    Réponses: 2
    Dernier message: 16/06/2016, 12h24
  2. Main Container hors localhost? -Jade-
    Par omomthings dans le forum Programmation par agent
    Réponses: 1
    Dernier message: 27/03/2016, 14h44
  3. LoadLibrary / GetProcAddress hors main()
    Par _sini_ dans le forum Débuter
    Réponses: 3
    Dernier message: 13/01/2009, 01h55
  4. [avancé] rendu hors-écran FBO vers PBO
    Par Kurisu dans le forum OpenGL
    Réponses: 0
    Dernier message: 05/12/2008, 17h20
  5. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08

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