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 :

Afficher PBO via texture


Sujet :

OpenGL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 19
    Points : 15
    Points
    15
    Par défaut Afficher PBO via texture
    Bonjour à tous,

    L'utilisation de glDrawPixels étant bannie, il faut maintenant mapper une texture depuis un PBO.

    J'ai donc un PBO bien rempli que je veux simplement afficher mais je n'ai trouvé aucun moyen simple de le faire.

    J'ai essayé ça mais j'ai une page blanche. Je ne suis pas sûr de savoir ce que je fais

    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
     
    void initgl(){
    	int c=1;
    	char* dummy = "";
    	glutInit( &c, &dummy );
    	glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGBA );
    	glutInitWindowSize( hauteur, largeur );
    	glutCreateWindow( "Test GL" );
     
     
    	glBindBuffer    = (PFNGLBINDBUFFERARBPROC)GET_PROC_ADDRESS("glBindBuffer");
    	glDeleteBuffers = (PFNGLDELETEBUFFERSARBPROC)GET_PROC_ADDRESS("glDeleteBuffers");
    	glGenBuffers    = (PFNGLGENBUFFERSARBPROC)GET_PROC_ADDRESS("glGenBuffers");
    	glBufferData    = (PFNGLBUFFERDATAARBPROC)GET_PROC_ADDRESS("glBufferData");
     
     
    	glGenBuffers( 1, &bufferObj );
    	glBindBuffer( GL_PIXEL_PACK_BUFFER, bufferObj );
     
    	glBufferData( GL_PIXEL_PACK_BUFFER, DIM*DIM* sizeof(uchar4),NULL, GL_STREAM_DRAW );
     
    	glBindBuffer( GL_PIXEL_PACK_BUFFER, 0 );
     
    	glGenTextures(1, &tex);
            glBindTexture(GL_TEXTURE_2D, tex);
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, DIM, DIM, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
            glBindTexture(GL_TEXTURE_2D, 0);
    }
     
     
    void draw(){
        glBindTexture(GL_TEXTURE_2D, tex);
        glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, bufferObj);
        glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, largeur, hauteur, GL_RGBA, GL_UNSIGNED_BYTE, 0);
     
        glBegin(GL_QUADS);
        glTexCoord2f(0.0f, 0.0f); glVertex2f(-1.0f, -1.0f);
        glTexCoord2f(1.0f, 0.0f); glVertex2f(1.0f, -1.0f);
        glTexCoord2f(1.0f, 1.0f); glVertex2f(1.0f, 1.0f);
        glTexCoord2f(0.0f, 1.0f); glVertex2f(-1.0f, 1.0f);
        glEnd();
        glutSwapBuffers();
        glutPostRedisplay();
    }

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


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    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 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Avec GLUT, il faut donner une fonction "Idle", sinon, il ne fait rien.
    Pourquoi ne pas utiliser les FrameBuffer Object, plutôt ?
    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 à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Désolé de ma réponse tardive mais merci beaucoup pour ces informations !

    J'ai finalement utilisé un autre code qui fonctionne. Je ne suis pas assez à l'aise en OpenGL pour changer de paradigme si facilement

Discussions similaires

  1. Afficher la même texture sur 2 écrans
    Par pa6simple dans le forum DirectX
    Réponses: 0
    Dernier message: 22/04/2010, 11h08
  2. AU SECOURS XML AFFICHER IMAGES VIA UN NUMERO ASP
    Par rebecca007 dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 14/04/2009, 15h46
  3. afficher valeur des textures des pixels d'une image
    Par Christinita dans le forum Images
    Réponses: 4
    Dernier message: 04/12/2008, 16h23
  4. impossible d'affiche une plane texturé
    Par Asmod_D dans le forum Ogre
    Réponses: 1
    Dernier message: 08/09/2008, 19h11
  5. afficher un objet texturé
    Par Asmod_D dans le forum Ogre
    Réponses: 9
    Dernier message: 21/07/2008, 23h42

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