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 :

OpenGL + Menu


Sujet :

OpenGL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut OpenGL + Menu
    Bonjour,

    Débutant depuis peu sous opengl, je souhaiterais faire une application dans laquelle il y aurait un menu au 1er plan.

    Comment gérer de la bonne manière la 3D au 2ème plan et de l'affichage de texte + images au 1er plan ? (Je voudrais faire quelque chose sur le même principe que les démos techniques de nvidia au niveau du menu)

  2. #2
    Membre expérimenté Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Par défaut
    Alors le mieux c'est de faire ton rendu 3D avec une projection normal koi, mais par contre pour rendre ton texte passe en vue ortho

  3. #3
    Invité
    Invité(e)
    Par défaut
    Tu dessines la 3D normalement, et puis tu fais un glOrtho2d() et tu dessines avec glVertex2d()

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut
    J'ai essayé ça

    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
     
    GLboolean RePaint () 
    {
    // Code 3D
     ...
     
    // Code 2D
    	glPushAttrib(GL_TRANSFORM_BIT | GL_VIEWPORT_BIT); 
    		glMatrixMode(GL_PROJECTION); 
    		glPushMatrix(); 
    		glLoadIdentity(); 
    		glMatrixMode(GL_MODELVIEW); 
    		glPushMatrix(); 
    		glLoadIdentity(); 
     
    		glViewport(0,0,width,height);
    		glRasterPos2i(0, 0); 
    		glDrawPixels(menu->sizeX, menu->sizeY, GL_RGB, GL_UNSIGNED_BYTE, menu);
     
    		glPopMatrix(); 
    		glMatrixMode(GL_PROJECTION); 
    		glPopMatrix(); 
     
    		glPopAttrib();
    }

    Ca plante complètement lorsqu'il y a le glRasterPos2i(0, 0); mais pour un glRasterPos2i(100, 100);, ça ne plante plus mais on ne vois pas l'image sur l'écran, que faire ?

    Je le met où le glOrtho ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    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
       glPushAttrib(GL_TRANSFORM_BIT | GL_VIEWPORT_BIT);
          glMatrixMode(GL_PROJECTION);
          glPushMatrix();
          glLoadIdentity();
          glMatrixMode(GL_MODELVIEW);
          glPushMatrix();
          glLoadIdentity();
     
          glViewport(0,0,width,height);
          glRasterPos2i(0, 0);
          glDrawPixels(menu->sizeX, menu->sizeY, GL_RGB, GL_UNSIGNED_BYTE, menu);
     
          glPopMatrix();
          glMatrixMode(GL_PROJECTION);
          glPopMatrix();
     
          glPopAttrib();
    Fais gaffe, tu oublies de revenir en matrice modelview... Sinon je connais pas glPushAttrib(), mais je pense que ce n'est pas nécessaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    glPushMatrix();
        // Mettre ici le ortho
        // Dessin en 2D
    glPopMatrix();
    Sinon, c'est quoi cette structure pour le menu ? T'es sur que tu peux mettre menu tout simplement en dernier paramètre de glDrawPixels() ?

  6. #6
    Acropole
    Invité(e)
    Par défaut
    Y'a glWindowPos qui te permet d'afficher une image à l'écran sans changer de mode de projection, mais il faut charger les extensions, sous window. Ca remplace glRasterPos.
    En suite tu fais glDrawPixels.
    Le pb c'est que je ne suis pas sûr que ça marche, j'arrive pas à charger les extensions correctement

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut
    glWindowPos semble faire parti de Mesa destiné au monde UNIX/Linux, si je ne me trompe pas (je n'ai rien trouvé de récent pour windows)...

    Quelqu'un pourrait-il afficher un code avec de la 3D en fond et de la 2D en 1er plan ???

    Je sais pas moi, un cube 3d qui tourne et une image en 1er plan... Avec le code qui va bien faisant bien apparaître l'étape de passage de la 3D à la 2D...

    ISIT POSSIBEUL 4 U ???

  8. #8
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 567
    Par défaut
    Sur la page de SDT_ttf :
    http://www.libsdl.org/projects/SDL_ttf/

    regardes dans les sources :
    http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.7.zip

    le programme glfont.c dessine un cube en 3D, passe e n2D pour afficher un texte puis repasse en 3D
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    * 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

  10. #10
    Acropole
    Invité(e)
    Par défaut
    dans le glext.h que j'ai téléchargé sur :

    http://oss.sgi.com/

    y'a glWindowPos seul, avec ARB et avec MESA.

    Ceci dit, lorsque j'essaye d'executer le glWindowPos2fARB ça me fait une erreur de lecture à l'emplacement 0x00000000...

    Du coup, ce glext.h ne serait pas compatible avec windows ?
    Je pouvait toujours essayer de l'utiliser

  11. #11
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 567
    Par défaut
    C'est une extension ARB
    il faut donc la détecter, la charger et initialiser la fonction avant de pouvoir l'utiliser
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  12. #12
    Acropole
    Invité(e)
    Par défaut
    je viens de trouver ça :

    http://nehe.gamedev.net/files/glsdk.zip

    y'a un glext spécial pour window apparemment, sans windoPos

  13. #13
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 567
    Par défaut
    Pour alors qu'on soit d'accord pour une chose, prévenez moi si je me trompe mais, à partir du moment où c'est standardisé, il n'y a pas de glext.h spécifique à windows, il y a juste plusieurs versions

    je te conseille donc fortement de te mettre à jour directement sur le site officiel opengl :
    http://oss.sgi.com/projects/ogl-sample/ABI/glext.h
    afin d'avoir toutes les extensions existantes

    source : http://opengl.org/documentation/extension.html
    cliquez sur "OpenGL Extension Registry"
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut
    Merci bocou @ tous !

    J'ai opté pour ça :

    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
     
    GLvoid glBeginOrtho()
    {
    	glPushAttrib(GL_TRANSFORM_BIT | GL_VIEWPORT_BIT); 
     
    	glMatrixMode(GL_PROJECTION); 
    	glPushMatrix(); 
    	glLoadIdentity(); 
    	gluOrtho2D(0,640,480,0);
    	glMatrixMode(GL_MODELVIEW); 
    	glPushMatrix(); 
    	glLoadIdentity();
     
    	GLfloat w = (GLfloat)width/640;
    	GLfloat h = (GLfloat)height/480;
    	glPixelZoom(w, h);
    }
     
    GLvoid glEndOrtho()
    {
    	glPopMatrix();
    	glMatrixMode(GL_PROJECTION);
    	glPopMatrix();
     
    	glPopAttrib();
    }
     
    GLvoid displayMenu()
    {
    	glBeginOrtho();
    	glRasterPos2i(0, 480);
    	glDrawPixels(menu->sizeX, menu->sizeY-315, GL_RGB, GL_UNSIGNED_BYTE, menu->data);
    	glEndOrtho();
    }
    Ca à l'air de marcher nickel apparement...

    Heu, question : mon menu est un bitmap de 640*480 (taille de ma fenêtre) et je voudrais l'afficher en entier sur l'écran avec un masque si je ne me trompe pas qui permettrai de n'afficher que la partie en noir du masque associé au bitmap (ce serait les parties supérieures et inférieures du bitmap):
    1 - comment bien le gérer (les chtites techniques qui me permettront d'éviter les pièges) ?
    2 - DrawPixels est si lent/inoptimal que ça ? Alors dans quels cas l'utiliser ?

  15. #15
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 567
    Par défaut
    Citation Envoyé par norwy
    Ca à l'air de marcher nickel apparement...

    Heu, question : mon menu est un bitmap de 640*480 (taille de ma fenêtre) et je voudrais l'afficher en entier sur l'écran avec un masque si je ne me trompe pas qui permettrai de n'afficher que la partie en noir du masque associé au bitmap (ce serait les parties supérieures et inférieures du bitmap):
    1 - comment bien le gérer (les chtites techniques qui me permettront d'éviter les pièges) ?
    2 - DrawPixels est si lent/inoptimal que ça ? Alors dans quels cas l'utiliser ?
    Cool si ça fonctionne, par contre tu ne repasses pas en glMatrixMode(GL_MODELVIEW) dans ton EndOrtho, c'est normal ?
    à moins que glPopAttrib() ne le fasse pour toi ?

    Honnêtement, je te déconseille l'utilisation des fonctions drawpixels et readpixels car comme tu sembles l'avoir remarqué elles sont lentes mais aussi et surtout si tu changes ta résolution, ton menu ne sera plus adapté

    je te conseillerai plutot de découper ton menu en blocs ou composants et d'afficher ces composants à partir de textures ou d'objets 2D
    au final, tu pourrais même afficher des objets 3D en mode 2D
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut
    Effectivement le glPopAttrib() repasse en mode GL_MODELVIEW (enfin, je crois vu ça semblait marcher...)

    J'essai d'afficher mon image (640*360) et son mask , mais ça ne semble pas marcher, à la place, j'ai droit à un rectangle au dimensions spécifiées, mais la texture et son masque ne semble pas s'appliquer et mon appli semble bloquée...

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    GLvoid LoadMenu()
    {
    	AUX_RGBImageRec * textureMenu[2];
        textureMenu[0] = auxDIBImageLoad("menu.bmp");
    	textureMenu[1] = auxDIBImageLoad("menuMask.bmp");
     
    	for (int i=0; i<2; i++)
    	{
    		glBindTexture(GL_TEXTURE_2D, menu[i]);
    		glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
    		glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
    		glTexImage2D(GL_TEXTURE_2D, 0, 3, textureMenu[i]->sizeX, textureMenu[i]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, textureMenu[i]->data);
    	}
     
    	for (i=0; i<2; i++)
    	{
    		free(textureMenu[i]->data);
    		free(textureMenu[i]);
    	}
    }
     
    ...
     
    GLvoid displayMenu()
    {
    	glBeginOrtho();
     
    	glEnable(GL_TEXTURE_2D);
    	glShadeModel(GL_SMOOTH);
     
      	glEnable(GL_BLEND);									// Enable Blending
    	glDisable(GL_DEPTH_TEST);							// Disable Depth Testing
     
    	glBlendFunc(GL_DST_COLOR,GL_ZERO);
     
    	glBindTexture(GL_TEXTURE_2D, menu[1]);			// Select The Second Mask Texture
    	glBegin(GL_QUADS);								// Start Drawing A Textured Quad
    			glTexCoord2i(0, 0);		glVertex2i(0, 0);		// Top Left
    			glTexCoord2i(640, 0);	glVertex2i(640, 0);		// Top Right
    			glTexCoord2i(640, 360); glVertex2i(640, 360);	// Bottom Right
    			glTexCoord2i(0, 360);	glVertex2i(0, 360);		// Bottom Left
    		glEnd();										// Done Drawing The Quad
    	}
     
    	glBlendFunc(GL_ONE, GL_ONE);						// Copy Image 2 Color To The Screen
    	glBindTexture(GL_TEXTURE_2D, menu[0]);				// Select The Second Image Texture
    	glBegin(GL_QUADS);									// Start Drawing A Textured Quad
    		glTexCoord2i(0, 0);		glVertex2i(0, 0);		// Top Left
    		glTexCoord2i(640, 0);	glVertex2i( 640, 0);	// Top Right
    		glTexCoord2i(640, 360); glVertex2i( 640, 360);	// Bottom Right
    		glTexCoord2i(0, 360);	glVertex2i(0, 360);		// Bottom Left
    	glEnd();
     
    	glEnable(GL_DEPTH_TEST);							// Enable Depth Testing
    	glDisable(GL_BLEND);								// Disable Blending
     
    	glDisable(GL_TEXTURE_2D);
     
     
    	glEndOrtho();
    }
    Le code d'affichage est fait à partir du tuto 20 de Nehe ici
    Ca doit être le détail qui tue, mais depuis ce matin je ne vois lequel est-ce...

  17. #17
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 567
    Par défaut
    Citation Envoyé par norwy
    Effectivement le glPopAttrib() repasse en mode GL_MODELVIEW (enfin, je crois vu ça semblait marcher...)

    J'essai d'afficher mon image (640*360) et son mask , mais ça ne semble pas marcher, à la place, j'ai droit à un rectangle au dimensions spécifiées, mais la texture et son masque ne semble pas s'appliquer et mon appli semble bloquée...
    Ta texture n'est pas en puissance de 2 (on parle bien de puissance et non de bit : 128, 256, 512...)
    pour les textures qui n'ont pas une puissance de 2 il faut utiliser uen extension (GL_ARB_texture_non_power_of_two) présente sur les cartes récentes (moi je l'ai pas avec une radeon9600...)

    glTexCoord2i(640, 0); ...
    Les coordonnés de textures sont des valeurs comprise dans un intervale entre 0 et 1, si tu met une valeur supérieure à 1 tu fais répéter ta texture

    et au cas où tu poserais la question du pourquoi de l'existance du glTexCoord2i alors que le glTexCoord2f serait suffisant, c'est pour transmettre les valeurs 0, 1 et supérieures
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut
    Effectivement, je comprend pourquoi il y avait ce "blocage"... la puissance de 2, je l'avais lu pourtant, halala...
    J'ai aussi rectifié le pb des textures avec des glTexCoord2f(1.0f, 0.0f), merci...

    MAIS, maintenant lorsque je veus appliquer ma texture à un rectangle avec l'effet de transparence, j'ai la transparence (si je retire glBlendFunc(GL_ONE, GL_ONE) sinon, pas de transparence mais du blanc) mais pas la texture, je ne vois que du noir (la bande de mon masque)...

    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
     
    GLvoid displayMenu()
    {
    	glColor3f(1.0f, 1.0f, 1.0f);
    	glBeginOrtho();
     
    	glEnable(GL_TEXTURE_2D);
    	glShadeModel(GL_SMOOTH);
     
    	glEnable(GL_BLEND);									// Enable Blending
    	glDisable(GL_DEPTH_TEST);							// Disable Depth Testing
     
    	glBlendFunc(GL_DST_COLOR,GL_ZERO);					// Blend Screen Color With Zero (Black)
     
    	glBindTexture(GL_TEXTURE_2D, menu[1]);				// Select The Second Mask Texture
    	glBegin(GL_QUADS);									// Start Drawing A Textured Quad
    		glTexCoord2f(1.0f, 0.0f); glVertex2i(256, 480);	// Bottom Right
    		glTexCoord2f(0.0f, 0.0f); glVertex2i(0, 480);	// Bottom Left
    		glTexCoord2f(0.0f, 1.0f); glVertex2i(0, 224);	// Top Left
    		glTexCoord2f(1.0f, 1.0f); glVertex2i(256, 224);	// Top Right
    	glEnd();											// Done Drawing The Quad
     
    	glBlendFunc(GL_ONE, GL_ONE);						// Copy Image 2 Color To The Screen
    	glBindTexture(GL_TEXTURE_2D, menu[0]);				// Select The Second Image Texture
    	glBegin(GL_QUADS);									// Start Drawing A Textured Quad
    		glTexCoord2f(1.0f, 0.0f); glVertex2i(256, 480);	// Bottom Right
    		glTexCoord2f(0.0f, 0.0f); glVertex2i(0, 480);	// Bottom Left
    		glTexCoord2f(0.0f, 1.0f); glVertex2i(0, 224);	// Top Left
    		glTexCoord2f(1.0f, 1.0f); glVertex2i(256, 224);	// Top Right
    	glEnd();
     
    	glEnable(GL_DEPTH_TEST);							// Enable Depth Testing
    	glDisable(GL_BLEND);								// Disable Blending
     
    	glDisable(GL_TEXTURE_2D);
     
    	glEndOrtho();
    }

  19. #19
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 567
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 567
    Par défaut
    Le plus couramment utilisé c'est :
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    en fait tu ne choisis pas la couleur à utiliser dans la fonction mais un facteur source et un facteur destination
    donc utiliser GL_SRC_ALPHA indique que le facteur source est la valeur alpha de ta source (donc de ton masque)
    et GL_ONE_MINUS_SRC_ALPHA indique que le pixel de destination sera diminiué de 1-SRC_ALPHA

    dans ton cas, si tu ne veux pas rendre ton menu transparent il faudrait essayer avec
    glBlendFunc(GL_SRC_ALPHA, GL_SRC_COLOR);

    le mieux est de faire quelques tests avec différentes valeurs parceque mes explications je ne les trouve jamais très claires moi même lol
    et puis cela te permettra de voir quels résultats tu peux obtenir et de prendre ce qui te conviendra le mieux
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 95
    Par défaut
    Outre le fait que je ne sais pour l'instant pas me servir de glBlendFunc, j'ai l'impression que cela vient de la profondeur de couleur de mes bitmaps faits sous Paint (en 24bits), parce que lorsque j'essai avec une texture 8bits (même mon photoshop ne sait pas en faire), je commence à voir du progrès (cad que je vois une texture et non plus juste du noir et du blanc).

    Si j'ai :
    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
     
    void InitPixelFormat (HDC hDC) 
    { 
          PIXELFORMATDESCRIPTOR pfd = 
          { 
               sizeof (PIXELFORMATDESCRIPTOR), 
               1, 
               PFD_SUPPORT_OPENGL | PFD_TYPE_RGBA | PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER, 
               16, 
               0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 
               16, 
               0, 0, 0, 0, 0, 0, 0 
          }; 
     
          SetPixelFormat (hDC, ChoosePixelFormat (hDC, &pfd), &pfd); 
    }
    ...alors quels types de bitmap je suis restreints de manipuler, seulement les 8bits et 16bits, ceux de 24 et 32 bits n'étant pas acceptés ???

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/04/2015, 02h02
  2. Réponses: 4
    Dernier message: 16/11/2009, 22h39
  3. [SDL OPENGL] Menu 2d et jeu en 3d
    Par devtroll dans le forum SDL
    Réponses: 4
    Dernier message: 11/06/2007, 16h40
  4. Menu avec SDL+OpenGL
    Par f56bre dans le forum SDL
    Réponses: 2
    Dernier message: 04/11/2006, 11h40
  5. menu en opengl
    Par iguanaute dans le forum OpenGL
    Réponses: 7
    Dernier message: 05/03/2004, 01h38

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