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 :

[C# DX9] Taille de texture


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut [C# DX9] Taille de texture
    Bonjour,

    J'essai de charger des lightmap provenant des fichiers bsp d'half-life 2...
    Le probleme que j'ai, c'est que ces lightmaps ont des tailles pas du tout conventionnelle (10*4, 30*28, 4*15, etc...).

    J'ai essayé "naivement" de les charger comme ca :

    pLightmapTex = new Texture(dev, sizeX, sizeY, 1, Usage.Dynamic, Format.A8R8G8B8, Pool.Default);
    GraphicsStream stream = pLightmapTex.LockRectangle(0, LockFlags.Discard);
    for (int i = 0; i < sizeX * sizeY ; i++)
    {
    stream.WriteByte(tabLighting[ofs + i].B); // B
    stream.WriteByte(tabLighting[ofs + i].V); // V
    stream.WriteByte(tabLighting[ofs + i].R); // R
    stream.WriteByte(0); // A
    }
    pLightmapTex.UnlockRectangle(0);
    stream.Dispose();
    Mais avec des tailles non multiple de puissance de 2 on obtient un peu n'importe quoi comme resultat...(c'etait previsible^^)

    Comment feriez vous ? Faut il redimensionner les lightmap avant ? Voyez vous un moyen simple de faire cela ? sachant qu'a la source je n'ai pas un fichier image mais juste des données RGB bruttes...(pas moyen de redimenssioner les images a la source donc...)

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 267
    Par défaut
    'Alut.

    A ma connaissance DiretcX ne fait pas "n'import quoi"... avec les textures non puissance de 2. Il crée une texture de taille en puissance de 2 suffisamment grande pour contenir ta texture (par exemple une texture 4*10 va en donner une de taille 4*16)

    Tu peux donc bêtement copier ta texture tout en sachant que seule une partie de la texture créée sera utile. Tu joue ensuite avec les coordonnées de textures.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    Tu peux donc bêtement copier ta texture tout en sachant que seule une partie de la texture créée sera utile. Tu joue ensuite avec les coordonnées de textures.
    Oui j'y ai pensé aussi...mais ca ne marche que si la texture n'est pas "repeté"...sinon la partie "inutile" de la texture devient visible

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par Clickator
    Oui j'y ai pensé aussi...mais ca ne marche que si la texture n'est pas "repeté"...sinon la partie "inutile" de la texture devient visible
    Je ne suis pas certain que la répétition de textures soit utilisée pour des lightmaps.
    Sinon plutôt que de charger tout un tas de textures minuscules avec des pixels inutiles, moi je les placerais toutes dans un nombre limité de très grosses textures.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Par défaut
    Je ne suis pas certain que la répétition de textures soit utilisée pour des lightmaps.
    Oui je suis plutot d'accord...mais il y a parfois des tailles du genre 12x1 ! et dans ce cas si il n'y a pas de repetition je ne vois pas trop l'interet d'une texture d'un pixel de large :S

    Sinon...est ce qu'il y a un moyen pour dire a DirectX de ne pas repeter les textures ? Comme ca au moins je verais vite si les lightmaps en on besoin !


    Sinon plutôt que de charger tout un tas de textures minuscules avec des pixels inutiles, moi je les placerais toutes dans un nombre limité de très grosses textures.
    Oui ca me plairait tres bien comme solution ca...mais une fois les grosses textures faites il faut jouer avec les tu/tv pour bien plaquer les textures...et du coup on se retrouve avec les mêmes problemes en cas de répétition.

  6. #6
    Membre expérimenté Avatar de ShadowTzu
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2005
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2005
    Messages : 243
    Par défaut
    oui tu peut empecher la répétition avec:
    device.SamplerState(X).AddressU = TextureAddress.Border
    device.SamplerState(X).AddressV = TextureAddress.Border

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

Discussions similaires

  1. problème de taille des textures
    Par darkdindon dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 29/01/2007, 10h47
  2. [DX9] Render To Texture + ZBuffer
    Par funkydata dans le forum DirectX
    Réponses: 7
    Dernier message: 19/08/2006, 11h45
  3. [C#][DX9] Render to texture
    Par funkydata dans le forum DirectX
    Réponses: 12
    Dernier message: 23/06/2006, 19h11
  4. Taille des textures <-> performances
    Par MatRem dans le forum OpenGL
    Réponses: 27
    Dernier message: 21/04/2006, 17h14
  5. pb taille de texture
    Par batosai dans le forum DirectX
    Réponses: 6
    Dernier message: 21/12/2005, 18h44

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