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

DirectX Discussion :

Texture et palette


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Par défaut Texture et palette
    Salut c'est encore moi,

    Je voudrais changer la palette de ma texture en temps réel, j'ai lu la doc du sdk sur ce sujet mais je trouve que c'est tres peu documenté, en tout cas ce que je comprends c'est que je peux récupérer l'indice de la palette de la texture en cours avec GetCurrentTexurePalette(), et ensuite grace a GetPaletteEntries je peux récupérer un tableau de struct PALETTEENTRY, mon vrai problème c'est le plantage( segmentation fault ) qui arrive lorsque j'appelle cette fonction...

    Est ce que quelqu'un a deja utilisé ces fonctions ?

    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UINT l_NPalette;
    	if (FAILED(g_pd3dDevice->GetCurrentTexturePalette( &l_NPalette ) ) )
    	{
    		return E_FAIL;
    	}
    	PALETTEENTRY l_PaletteEntry[256];
    	g_pd3dDevice->GetPaletteEntries( l_NPalette, l_PaletteEntry ); //plante ici
    Bah merci d'avance pour les coups de pouce

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Par défaut
    Oh ben alors vraiment personne ne peut m'aider :'(

    En fait j'ai déjà fait un code pour modifier chaque couleur de ma texture en temps réel, le truc c'est que j'utilise la fonction Lock et donc j'accède à la mémoire vidéo, c'est pas que ca rame mais c'est pour faire plus propre juste en modifiant cette palette ca devrait etre moins couteux

    merci ...

  3. #3
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par JuLiOoOoO
    Oh ben alors vraiment personne ne peut m'aider :'(

    En fait j'ai déjà fait un code pour modifier chaque couleur de ma texture en temps réel, le truc c'est que j'utilise la fonction Lock et donc j'accède à la mémoire vidéo, c'est pas que ca rame mais c'est pour faire plus propre juste en modifiant cette palette ca devrait etre moins couteux

    merci ...
    ?? qu'est ce que Lock ?
    Est-ce que c'est avec DirectDraw ??
    Il faut gérer le message WM_PALETTECHANGED ( à vérifier )

    Avec Direct 3D je doute qu'on puisse gérer des graphiques en 256 couleurs (seulement 24 bits )pour la bonne raison qu'ils sont sur 8 bits on ne peut pas gérer des ombrages.
    Comment veux-tu faire des ombrages ( shadowing en anglais , phong ou gouraud ) si tu est en 256 couleurs ?
    Et avoir une couche de transparence ALPHA ?

    Pas étonnant que cela plante....

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Par défaut
    ?? qu'est ce que Lock ?
    IDirect3DTexture9::LockRect()

    Est-ce que c'est avec DirectDraw ??
    Non

    Avec Direct 3D je doute qu'on puisse gérer des graphiques en 256 couleurs (seulement 24 bits )pour la bonne raison qu'ils sont sur 8 bits on ne peut pas gérer des ombrages.
    Comment veux-tu faire des ombrages ( shadowing en anglais , phong ou gouraud ) si tu est en 256 couleurs ?
    Je veux pas gérer d'ombrage

    Et avoir une couche de transparence ALPHA ?
    Ca je veux ! :p

    Pas étonnant que cela plante....
    Je préfère les messages d'erreur

    Merci ++

  5. #5
    mat.M
    Invité(e)
    Par défaut
    Il faudrait être plus précis sinon on peut pas t'aider.
    Pourquoi t'obstines-tu à utiliser des palettes avec D3D ???

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Par défaut
    Euh bah je crois avoir dit en gros ce que je voulais faire ... c'est un soucis d'optimisation, plutot que de parcourir chaque pixel de ma texture pour les remplacer par une autre couleur j'aimerais pouvoir manipuler une palette et ne modifier en temps réel que cette palette ... voilou, je pense que c'est plus précis ...

    J'ai vu que dans la fonction D3DCreateTextureFromFileEx() je peux passer un tableau de PALETTEENTRY, tous les éléments sont remplis avec 0xFFFFFF ... de plus cette structure ne contient pas d'info sur l'alpha, je crois que je suis touffu ....

  7. #7
    Membre Expert

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Par défaut
    vérifies que ta carte supporte les textures palettisées.

    Les cartes récentes ne les supportent plus.

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  8. #8
    mat.M
    Invité(e)
    Par défaut
    Effectivement comme le dit Le Greg les cartes récentes ne supportent plus ce mode.

    Et le mode palettisé à tendance à être totalement obsolète.

    Et je doute que tu gagnes en performance en trifouillant les palettes.

    Et en plus ton programme risque d'être incompatible ou sujet à plantages sur une autre machine.

    A bon entendeur

Discussions similaires

  1. [c#] Texture et Palettes
    Par elguignardo dans le forum DirectX
    Réponses: 1
    Dernier message: 31/05/2006, 17h23
  2. Chargement d'une texture a partir de la mémoire
    Par logramme dans le forum DirectX
    Réponses: 6
    Dernier message: 27/01/2003, 14h57
  3. Mosaïque texturée
    Par Pode dans le forum OpenGL
    Réponses: 5
    Dernier message: 19/09/2002, 09h50
  4. Changer l'image d'une texture
    Par alltech dans le forum DirectX
    Réponses: 5
    Dernier message: 21/08/2002, 01h31
  5. [Kylix] la palette de composants de kylix
    Par ybouarour dans le forum EDI
    Réponses: 4
    Dernier message: 11/07/2002, 20h50

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