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 OpenGL offscreen sous Windows


Sujet :

OpenGL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 17
    Points : 30
    Points
    30
    Par défaut Rendu OpenGL offscreen sous Windows
    Bonjour, j'aimerais savoir comment il faut faire avec OpenGL pour caculer une image directement en mémoire sans l'afficher à l'écran. Le but serait de pouvoir calculer la scène OpenGL dans une image bitmap afin de la sauvegarder. Pour cela j'ai créé un bitmap avec 'CreateDIBSection', j'ai choisi un format de pixel avec PFD_DRAW_TO_BITMAP, PFD_SUPPORT_OPENGL, PFD_SUPPORT_GDI, puis j'ai créé un contexte WGL avec 'wglCreateContext' mais cela ne fonctionne pas.
    Si quelq'un pouvait me montrer un exemple de code permettant de faire cela je lui serais très reconnaissant.

  2. #2
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Si tu veux juste sauvegarder une image calculer via OpenGL, il faut faire un glReadPixels()
    Il va lire les données du buffer au moment ou tu l'appel, il renvoie une image dans le format que tu spéccifies, ensuite il suffit de sauvegarder les données qui forme ton image.

  3. #3
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    et si tu ne veut pas l'afficher tu ne faut pas de glSwapBuffer() a la fin de ton rendu
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Tu peut aussi faire un rendu dans une texture avec les RENDER_TO_TEXTURE : va voir sur le site de nVidia.

    Ensuite tu peut faire une requete avec OpenGL pour récupérer le buffer de la texture et l'enregistrer!(je ne me souvient plus de la commande)

Discussions similaires

  1. Rendu avec ie10 sous windows 7
    Par barale61 dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 14/05/2013, 12h43
  2. Rendu OpenGl Offscreen
    Par mrshadow dans le forum OpenGL
    Réponses: 10
    Dernier message: 19/06/2007, 12h39
  3. [Cal3D] OpenGL/Cal3D 20x plus lents sous windows
    Par nicoenz dans le forum Moteurs 3D
    Réponses: 2
    Dernier message: 17/11/2006, 12h36
  4. OpenGL sous Windows sand le SDK?
    Par Cheps dans le forum OpenGL
    Réponses: 11
    Dernier message: 16/11/2005, 12h35
  5. Sauvons OpenGL sous Windows Vista
    Par Groove dans le forum OpenGL
    Réponses: 2
    Dernier message: 19/08/2005, 13h29

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