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/C++] Couleur sur un DWORD ?


Sujet :

OpenGL

  1. #1
    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 [OPENGL/C++] Couleur sur un DWORD ?
    Oyo Bon je vais encore vous casser les pieds avec une question Vous allez vous dire pk lui il fait jamais comme les autres ???

    bon le but c de pouvoir stoquer la couleur sur un DWORD et qu'opengl arrive à la récupérer (en gros faire comme dans directX)

    G une structure de vertex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    struct VERTEX2 {
    	float x,y,z;
    	float nx,ny,nz;
    	DWORD Color;
    };
    je crée donc un vertex buffer ARB avec et je veux lire la couleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int nOffsetForColor = offset;
    				glColorPointer( 4, GL_UNSIGNED_BYTE, nVertexStride, BUFFER_OFFSET(nOffsetForColor) );
    				glEnableClientState( GL_COLOR_ARRAY );
    mais pb !!! il inverse le rouge et le bleu :'(

    voilà la macro que j'utilise pour crée ma couleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define M3D_RGBA(r, g, b, a) ((((long)((a) * 255)) << 24) | (((long)((r) * 255)) << 16) | (((long)((g) * 255)) << 8) | (long)((b) * 255))
    En fait c pour mon moteur qui doit afficher OpenGL et DirectX de la même façon donc en D3D pas de pbs car lui il sait comment lire la couleur, mais en opengl pourrait on pas lui dire d'inverser certaines couleur ?

    merci si qq un arrive à répondre !

  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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Ce n'est pas qu'OpenGL ne sait pas lire ta couleur, c'est simplement qu'il prend des ABGR et non des ARGB. Il faudra donc systématiquement effectuer la conversion si tu veux bosser avec les 2 APIs.

    Un petit exemple ici

    http://loulou.developpez.com/tutorie.../partie2/#L3.3

  3. #3
    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
    bas oui je sais que la couleur est lu lol mais il l a lit à l enver je voulais juste savoir comment la convertir si y avait un truc dans opengl direct koi

  4. #4
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Oui oui, ce que je voulais dire c'est qu'il ne la lit pas à l'envers, il la lit simplement comme il a besoin de la lire

    OpenGL ne supporte pas le format Dx (ARGB), donc la conversion à la main est inévitable je pense.

  5. #5
    Membre Expert
    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 : 45
    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
    Par défaut
    Bob.killer rien ne t'empêche de faire une macro qui suivant la compil switch vers le bon define

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #ifdef __DIRECTX__
        #define M3D_RGBA
    #endif __DIRECTX__
    #ifdef __OPENGL__
        #define M3D_RGBA
    #endif __OPENGL__
    Sinon tu fais une fonction et un pointeur de fonction que tu switch suivant le mode...

  6. #6
    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
    je peut pas faire de macro selon compilation car mon prog passe de DX à opengl en appuyant sur 1 touche

    je vais peut etre etre obligé de me pendre

    la lecture DX n'est pas BGRA ? loulou

    sinon je vais qd meme utiliser ta méthode de re-transciption

  7. #7
    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
    c bon ça marche nikel merci loulou

  8. #8
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par Bob.Killer
    la lecture DX n'est pas BGRA ? loulou
    Aussi, oui. Ca dépend où tu mets ton bit de poids fort.

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

Discussions similaires

  1. [OpenGL/C++] Opérations sur les Textures
    Par Bob.Killer dans le forum OpenGL
    Réponses: 6
    Dernier message: 10/08/2005, 10h27
  2. [CR 8.5] Attribution couleur sur un graphique
    Par Silvinho42 dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 30/06/2005, 15h00
  3. [JButton] getContenPane() et couleur sur les boutons
    Par harris_macken dans le forum Composants
    Réponses: 4
    Dernier message: 05/06/2005, 06h31
  4. Réponses: 8
    Dernier message: 17/05/2005, 18h08
  5. Aide pour changer de couleur sur les primitifs GLUT
    Par romainhoarau2764 dans le forum GLUT
    Réponses: 3
    Dernier message: 19/03/2005, 13h30

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