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 :

DirectGraphic et les textures et surfaces


Sujet :

DirectX

  1. #1
    Membre du Club Avatar de Freakazoid
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Points : 65
    Points
    65
    Par défaut DirectGraphic et les textures et surfaces
    Je voulais savoir si l'on peux charger des fichiers images de n'importe quel taille comme c'etait le cas sous DirectDraw dans une texture.
    En fait quand j'affiche une image en 1024*768 dans mon pseudo-moteur graphique, les proportions de l'image ne sont pas respecté alors que si je charge une image carré cela fonctionne. C'est peut etre un bug mais je ne trouve pas l"erreur. Je me demandais aussi qu'elle etait la difference entre une texture et une surface, etont obliger d'associer une surface à une textures et vis versa.
    Je vais essayer de me metre ma source, il n'y a quasi rien dedant avec les images pour voir si quelqu'un peux truver l'erreur.

  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
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu peux charger des textures de n'importe quelle taille si ta carte le permet. Pour ça il faut aller voir du coté des caps D3DPTEXTURECAPS_POW2, D3DPTEXTURECAPS_NONPOW2CONDITIONAL ou encore D3DPTEXTURECAPS_SQUAREONLY.

    J'avais remarqué une chose bizarre, c'est que quand je spécifiais 0 comme dimensions à D3DXCreateTextureFromfile, il ne prenait pas les dimensions de l'image comme c'est pourtant indiqué dans le SDK. J'étais obligé de récupérer moi-même ces dimensions et de les spécifier lors de la création de la texture. Bug ou mauvaise manip de ma part ?

    La différence entre une texture et une surface, c'est qu'une texture possède plusieurs surfaces (les niveaux de mipmapping), et que bien sur tu ne pourras pas envoyer une surface à Device->SetTexture.

  3. #3
    Membre du Club Avatar de Freakazoid
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Points : 65
    Points
    65
    Par défaut
    Okk je vais essayer de voir sa.
    Merci pour la petite explication.

  4. #4
    Membre du Club Avatar de Freakazoid
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Points : 65
    Points
    65
    Par défaut
    J'ai essayer en specifiant la taille de l'image mais cela ne fonctionne pas. Je n'es pas trouver dans quelle fonction sont utlisé les caps.
    Voila ma source : http://perso.wanadoo.fr/vincent.deraet/Barbares.zip

  5. #5
    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
    Points : 15 920
    Points
    15 920
    Par défaut
    J'ai essayé ton programme, et en fait c'est très bizarre comme comportement.
    J'ai réussi à résoudre le problème, mais ne me demande pas le pourquoi du comment : il faut mettre le paramètre Filter à D3DX_DEFAULT dans D3DXCreateTextureFromFileEx (un bug de Dx ?). Je ne sais pas si ça marchera également chez toi, mais en tout cas chez moi ça a résolu le problème !
    Et essaie d'éviter le flag D3DUSAGE_RENDERTARGET aussi, c'est pas fait pour être utilisé comme ça et ça impose des contraintes supplémentaires

    Pour les caps, c'est IDirect3D9::GetDeviceCaps, ça te retourne une structure D3DCAPS avec laquelle tu peux tester tout un tas de flags pour voir ce que ton hardware supporte.

  6. #6
    Membre du Club Avatar de Freakazoid
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 116
    Points : 65
    Points
    65
    Par défaut
    Okk sa fonctionne, merci. Apparament le code est bizard mais j'ai fait du copier coller pour faire ce bous de code. Je vais garder sa en esperent que sa ne pose pas d'autres problèmes. Pour le D3DUSAGE_RENDERTARGET si j'ai suivi cela sert a copier une autre texture sur la texture crée donc cela n'est pas nécessaire pour un affichage sur la back buffer ??

  7. #7
    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
    Points : 15 920
    Points
    15 920
    Par défaut
    D3DUSAGE_RENDERTARGET indique que ta texture va servir de backbuffer (que tu vas afficher des primitives dessus, quoi). Donc à n'utiliser que dans des cas bien précis

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

Discussions similaires

  1. 3D en Java. Problème avec les textures !
    Par dotrungtien dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 07/04/2006, 20h43
  2. [GLScene] Ne pas redimentionner les texture
    Par Qapoka dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 09/09/2005, 13h04
  3. [OpenGL/C++] Opérations sur les Textures
    Par Bob.Killer dans le forum OpenGL
    Réponses: 6
    Dernier message: 10/08/2005, 11h27
  4. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 20h13

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