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 :

glReadPixel sur une face cachée


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 29
    Par défaut glReadPixel sur une face cachée
    Bonjour, Bonsoir

    Je souhaiterai récupérer la couleur d'une texture. Imaginez 1 plan en 2D et un autre qui se trouve sous ce premier plan. Je souhaiterai prendre la couleur à un certain endroit (x,y) de ce plan que l'on ne voit pas.

    Une idée de comment on peut réaliser ça ? Car glReadPixel(...) va lire sur le plan que l'on voit et pas sur celui de dessous.

    Merci d'avance

    Xash'

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 136
    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 136
    Billets dans le blog
    150
    Par défaut
    Bonjour,

    Dans quel but voulez faire avoir la couleur d'une texture que l'on ne voit pas.
    Vous pouvez toujours la méthode étape par étape:

    - Dessin surface 1 ( celle du fond que l'on ne verra pas )
    - glReadPixels
    - Dessin surface 2 ( qui recouvre )

    Si c'est plus pour faire des fondu, ou effet qui prenne en compte la texture 1, j'ai l'impression qu'il vous faut un shader, du multi texturing, ou un FBO.

    Mais pour que je précise mon idée ( car je peux être dans le faux ) il faudra précisé votre objectif.
    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 averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 29
    Par défaut
    Pour gérer des collisions. J'ai pensé à remettre le plan de dessous dessus et de lire puis de le remettre dessous. Mais j'voulais savoir si y'avait moins moche ^^

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 136
    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 136
    Billets dans le blog
    150
    Par défaut
    Plus rapide que mon glReadPixels() ça serait d'utiliser un FBO ( render to texture ) et après de vérifié les pixels de la texture.

    Mais je n'arrive plus à me rappeler qu'elle est la bonne méthode pour faire ce que vous voulez faire.
    Peut être en jouant sur un des canaux que vous n'utilisez pas ( Stencil buffer? )
    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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 29
    Par défaut
    Bon j'avoue que je bloque... deja le glReadPixels(...) me renvoie de la ...

    Genre j suis sur une texture blanche et il me renvoie { 255, 255, 255 }... et parfois autre chose genre { 212, 196, 141 }.

    En gros ce que je souhaiterai faire c'est juste pouvoir savoir la couleur d'une texture...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    QImage t;
    QImage b;
     
    b.load(":/img/class/images/collisions.png");
    t = QGLWidget::convertToGLFormat(b);
    glGenTextures(1, &texture[0]);
    glBindTexture(GL_TEXTURE_2D, texture[2]);
    glTexImage2D(GL_TEXTURE_2D, 0, 4, t.width(), t.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, t.bits());
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    Puis ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    glPushMatrix();
          glTranslatef(cam_x, cam_y, cam_z);
          glBindTexture(GL_TEXTURE_2D, texture[2]);
          glBegin(GL_POLYGON);
                glTexCoord2f(0.0f, 1.0f);   glVertex3d(-map_w, map_h, 0.02);
                glTexCoord2f(0.0f, 0.0f);   glVertex3d(-map_w, -map_h, 0.02);
                glTexCoord2f(1.0f, 0.0f);   glVertex3d( map_w, -map_h, 0.02);
                glTexCoord2f(1.0f, 1.0f);   glVertex3d( map_w, map_h, 0.02);
          glEnd();
    glPopMatrix();
    Ensuite j'aimerai savoir la couleur du point (x, y) sur cette texture[2]...

    Des idées ? Parce que là je coince grave !

    Merci d'avance,

    Xash

  6. #6
    Membre émérite

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450

Discussions similaires

  1. [XL-2000] Tri croissant sur une feuille cachée
    Par cobra38 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/12/2010, 21h12
  2. Affichage d'une div cachée en cliquant sur un lien
    Par anas.bah dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/03/2009, 20h38
  3. Réponses: 0
    Dernier message: 19/02/2009, 11h30
  4. Calcul lumière sur une seule face
    Par Pihtt dans le forum OpenGL
    Réponses: 1
    Dernier message: 16/11/2008, 23h27
  5. Réponses: 1
    Dernier message: 25/03/2007, 18h20

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