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 :

lecture du Z-Buffer


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par défaut lecture du Z-Buffer
    bonjour,

    je suis a la recherche d'une routine c++ permettant de relire le Z-BUFFER et de l'afficher avec un dégradé de couleur suivant la hauteur Z.

    Merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Qu'est-ce qui te pose problème exactement ? Tu n'as fait aucune recherche ?

    Si tu ne sais pas par où commencer fais des recherches sur glReadPixels, ça devrait te donner un bon point de départ.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par défaut
    en fait je bloque sur glCopyPixels(200,200,400,400,GL_DEPTH);
    voici le process que j'utilise :
    - selection GL_FRONT
    - affichage sphere
    - relecture du z-buffer avec glCopyPixels

    cette relecture s'affiche sur l'ecran, j'ai un cercle tout blanc, je cherche maintenant a afficher un degrader de couleur sur ce cercle blanc correspondant a une valeur du z-buffer.

    voici le resultat auquel je voudrais arriver :

    Frame COLOR



    Frame Z-BUFFER


  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par défaut
    bonjour,

    j'ai trouvé la solution a mon probleme. Vu les docs sur internet, j'ai l'impression que seule une minorité du programmeur maitrise en fait le sujet des frames buffers. Je suis donc un peu decu de ne pas avoir trouver un interlocuteur a la hauteur. Merci quand meme.

    Bonne continuation.

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Et bien donne la solution, ou le lien qui t'a permis de la trouver, ça permettra aux prochains de trouver leur réponse plus facilement

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 13
    Par défaut
    voici le code pour relire le Z-BUFFER

    // Recuperation de la profondeur
    GLfloat * depth = malloc(WIDTH * HEIGHT *sizeof(GL_FLOAT));
    glReadPixels (0, 0, WIDTH, HEIGHT, GL_DEPTH_COMPONENT, GL_FLOAT, depth);

    Biensur les valeurs retournées dans depth sont dependantes du clipping, paramètres znear et zfar de la fonction glDepthRange. Avant d'afficher les valeurs il faut normaliser les données dans depth en cherchant le max et le min, cela permet d'exploiter toute la dynamique des couleurs.

    Voila, ca parait simple au premier coup d'oeil, mais cela peut devenir complique selon l'application.

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

Discussions similaires

  1. lecture dans un buffer binaire
    Par rikau2 dans le forum C++
    Réponses: 7
    Dernier message: 21/08/2007, 14h29
  2. [HLSL][C++] Lecture du Depth Buffer dans un PS3.0
    Par xterminhate dans le forum DirectX
    Réponses: 6
    Dernier message: 26/09/2006, 00h34
  3. méthode de lecture d'un fichier dans un buffer
    Par Mestoph dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/02/2006, 10h07
  4. [Débutant][Win32] : Lecture ds un fichier ac buffer
    Par silver_dragoon dans le forum Windows
    Réponses: 3
    Dernier message: 24/03/2004, 19h34
  5. [fread] Problème de lecture de buffer
    Par karl3i dans le forum C
    Réponses: 2
    Dernier message: 25/09/2003, 09h21

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