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 :

Couleurs et texture 800*600


Sujet :

DirectX

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Couleurs et texture 800*600
    Salut,

    Voici mon problème :

    J'ai une texture Bitmap XRGB en 800 * 600, je load ma texture, il se trouve qu'en mémoire elle fait 1024*1024 (des puissances de 2 pour optimiser qu'ils disent ^^ ) cependant le stretch de cette texture rajoute des couleurs intermédiaires (pour faire plus propre j'imagine)... Existe t'il un moyen simple de ne pas faire ce stretch ou bien de ne pas rajouter de couleur supplémentaire ?

    Merci d'avance !

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Le moyen le plus simple c'est de mettre toi-même ta texture en 1024x1024 (ou n'importe quelle autre dimension en puissance de 2). Ou alors, achète une carte qui supporte les dimensions non puissances de 2

    Sinon peut-être que tu peux aussi jouer sur le filtre utilisé pour le redimensionnement (l'un des paramètres de D3DXCreateTextureFromFile).

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci de ta réponse mais ... Arf !

    le problème c'est que mon soft doit accepter n'importe quel taille de texture et la plupart du temps (pour ne pas dire tout le temps) ça ne sera pas une résolution en puissance de 2 et ils n'auront pas forcement une carte qui sache le faire (ou bien ne pas le faire )

    Je viens de tester D3DXCreateTextureFromFileEx en ne précisant pas la taille de la texture pour qu'il lise sa taille dans le fichier mais il stretch quand même...

    Peut être que si je force la taille de la texture en 512 * 512, alors il fera le stretch mais en diminuant et je n'aurai pas de nouvelles couleurs ? Et en suite je copie pixel par pixel dans une texture de 1024 * 1024 sans faire d'interpolation ? Je vais tester ça ... J'espere que ça va fonctionner : /

    Go !

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Peut être que si je force la taille de la texture en 512 * 512, alors il fera le stretch mais en diminuant et je n'aurai pas de nouvelles couleurs ? Et en suite je copie pixel par pixel dans une texture de 1024 * 1024 sans faire d'interpolation ? Je vais tester ça ... J'espere que ça va fonctionner : /
    Essaye plutôt D3DX_FILTER_NONE comme filtre lors du chargement de ta texture.

  5. #5
    Membre expérimenté

    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
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par JuLiOoOoO
    le problème c'est que mon soft doit accepter n'importe quel taille de texture et la plupart du temps (pour ne pas dire tout le temps) ça ne sera pas une résolution en puissance de 2 et ils n'auront pas forcement une carte qui sache le faire (ou bien ne pas le faire )
    tu peux faire le redimensionnement toi meme.
    En bicubique (le défaut sous photoshop) ce sera mieux que le redimensionnement par défaut de D3DX.

    Par ailleurs beaucoup de cartes (au moins tous les modèles Nvidia) supportent les textures non puissance de deux, mais pas avec toutes les opérations (pas de wrapping, pas de mirroring, pas de mipmapping). Tout dépend de ce que tu veux faire avec tes textures.

    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

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Merci, ça fonctionne à merveilles !

    Je n'ai donc plus d'interpolation de couleur c'est nickel merci beaucoup !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Vraiment résolu cette fois
    avec le flag D3DX_FILTER_NONE il ne stretch pas la texture et il remplace les pixels "inutilisés" pas des pixels noir full alpha
    avec le flag D3DX_FILTER_POINT il stretch sans interpoler les couleurs

    Exactement ce que je voulais faire

    Merci pour le coup de pouce

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

Discussions similaires

  1. privilégier le 800*600 ou bien une taille plus large ?
    Par psychoBob dans le forum Webdesign & Ergonomie
    Réponses: 20
    Dernier message: 09/02/2006, 13h55
  2. Mise en page 800*600
    Par bolo dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 17/11/2004, 18h30
  3. Vitesse de transfert en mode VESA 800*600 256 couleurs
    Par chep dans le forum Assembleur
    Réponses: 9
    Dernier message: 28/05/2004, 11h53
  4. Couleur et texture
    Par MAGNUM_HEAD dans le forum OpenGL
    Réponses: 4
    Dernier message: 23/05/2003, 17h12
  5. Passer en mode 800*600
    Par flavien tetart dans le forum Assembleur
    Réponses: 8
    Dernier message: 30/05/2002, 23h05

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