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 sans passer par Structure vertex


Sujet :

DirectX

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Texture sans passer par Structure vertex
    Bonjour,
    voic ila structure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	struct TERRAINVERTEX
    	{
    		D3DXVECTOR3 Position; // The position
    		D3DCOLOR    Color;    // The color
    		FLOAT       tu, tv;   // The texture coordinates
    		FLOAT       tu2, tv2; //2eme texture
    	};
    Je voudrais savoir si cela est possible de répéter une texture sur une surface de plusieurs milliers de triangle.
    Imaginez un quadrillage le tu et tv vont de 0 a 1 pour la texture principale
    et le tu2 et tv2 de 0 a 8 pour avoir 8 fois la texture secondaire
    Y a t il une autre methode pour afficher 8 fois la seconde texture dans passer par le tu2 et tv2 ?

    pour supprimer le tu et tv je vais recupérer les couleur de chaque point

    Ceci est dans le but d economiser de la memoire
    Et je ne veux pas de phrase du style .. mais la memoire on en a plus qu il nous faut
    la non je parle de plus d'1 million de 200 000 triangle qui sont dans un buffer et que j affiche grace a l indice les triangle visible.

    Merci pour votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 76
    Points : 82
    Points
    82
    Par défaut
    Avec le calcul de tu2 = 8 * tu dans le vertex shader je ne vois pas réellement le problème, tu2 n'éxisterais qu'au niveau du pixel shader. Donc en gros, avec les shaders tu pourrais le calculer dynamiquement au lieu de l'enregistrer. Mais si tu n'as même plus les coordonnées tu et tv alors là tu mets un chiffre au pif et tu pries pour que ça marche.

    Si c'est une height map que tu fais les coordonnées de textures sont dans x et y (divisé par la longueur et largeur), enfin si c'est ça : "mais la memoire on en a plus qu il nous faut" parcequ'un million de 200 000 vertices ça n'éxiste pas pour une height map.

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    en faite tout fonctionne sur mon moteur mais je voudrais savoir si il y a une autre solution que de passer par une Texture 2
    en faite j ai mis la couleur sur les points du buffer ca fonctionne a merveille sauf petit hic... des que j active la lumiere ... pouf plus de couleur
    la texture garde sa propre couleur est n est plus modifier par la couleur du vertices
    pour info je travail sur des map de 512 x512 c est petit mais avant quand je travaillais sur des carte de 4096 .. le proc travaillais un peut trop sur le decoupage des triangle donc en faite je suis redecsendu pour voir ce que je peux faire

    pour voir un petit appercu http://phenixar.free.fr/
    j ai malheureusement pas pu continuer par manque de temps mais je compte bien l ameliorer a fond

    nouvelle structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct TERRAINVERTEX
    	{
    		D3DXVECTOR3 Position; // The position
    		D3DCOLOR    Color;    // The color
    		FLOAT       tu, tv;   // The texture coordinates
    	};
    parametrage de l image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	pd3dDevice->SetTexture( 0, TerrainDetailsTexture );
    	pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE  );
    	pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
        //pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
        //pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );
    	pd3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
    	pd3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
    	pd3dDevice->SetSamplerState( 0, D3DSAMP_MIPFILTER, D3DTEXF_POINT );

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 76
    Points : 82
    Points
    82
    Par défaut
    J'ai regardé ton éxécutable qui date de janvier, donc il ne doit pas être a jour. A mon avis charger l'intégralité de la map au début et non dynamiquement ce n'est pas la meilleures des idées. Les tutoriaux sur les terrains sont vraiment nombreux sur le net, et n'hésites pas a regarder ceux d'opengl (il y en a plus et souvent meilleurs) la transposition en Directx n'est pas compliqué.

    Enfin, pour la couleur je crains que ça vienne des matériaux qui sont utilisés lorsque la lumière est allumé. J'avais solutionné le problème parceque j'affichais avec des effects. Mais avec le pipline normal je n'ai aucune idée des bons states à positionner. A propos de la lumière, il manque des normales à ta structure de vertex pour un affichage correct.

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par blastou
    J'ai regardé ton éxécutable qui date de janvier, donc il ne doit pas être a jour. A mon avis charger l'intégralité de la map au début et non dynamiquement ce n'est pas la meilleures des idées. Les tutoriaux sur les terrains sont vraiment nombreux sur le net, et n'hésites pas a regarder ceux d'opengl (il y en a plus et souvent meilleurs) la transposition en Directx n'est pas compliqué.

    Enfin, pour la couleur je crains que ça vienne des matériaux qui sont utilisés lorsque la lumière est allumé. J'avais solutionné le problème parceque j'affichais avec des effects. Mais avec le pipline normal je n'ai aucune idée des bons states à positionner. A propos de la lumière, il manque des normales à ta structure de vertex pour un affichage correct.
    oui les normal ont été enlevé
    honnetement j ai bcp travaillé sur des decoupage de terrain ca fait 2 ans 12 que je travail sur des truc comme ca et la j arrive a afficher 550 000 triangles a plus de 110FPS donc ca va je suis assez content ej sais jusqu a ou je peut allez.

    mais si je veux faire la meme chose avec le decoupage ... je tombe a 10images secondes donc y a un premachage a faire

    pour la lumiere je vais voir et je pense en effet qu enlever les normal n'arrange rien.

    En tout cas merci pour les infos.
    je vais malheureusement repartir sur un decoupage un peu plus élaboré et meilleurs voir en utilsant des jupes si c'est pas mieu.

    Je recherche toujours la perfection dans le decoupage pour eviter les bugs donc le nombre d image chute vite.

    et en effet en opengl c'est beaucoup mieu mais j'utilise directx donc je fait avec. avec opengl je tournais a 60FPS et en dx je tournais a 15 ... tout etait intentique dans le moteur mais y a une difference

    il existe une technologie dans directx pour géré les patchs et la teslation de triangle mais il n'y a aucune aide dessus .. meme chez msdn y a rien pourtant les fonctions existe ..... a étudier ...

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/01/2013, 12h04
  2. Réponses: 10
    Dernier message: 24/02/2004, 12h28
  3. Réponses: 4
    Dernier message: 05/02/2004, 18h18
  4. Afficher une image sans passer par les textures
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/05/2003, 19h13
  5. [Kylix] Débrider Kylix sans passer par le Net
    Par BXDSPORT dans le forum EDI
    Réponses: 1
    Dernier message: 23/03/2003, 10h52

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