Accueil > Forum > > > > DIrectX Objet transparent !
DIrectX Objet transparent !
samedi 22 novembre 2008 à 17:17:16 |
DIrectX Objet transparent !

ansizak
|
Bonjour, Je me suis récemment initié à DirectX 9 avec l'idée de réaliser un moteur 3D Isométrique (vue 3e personne). J'arrive ainsi à générer une "carte" constituée de pavés. J'applique donc des textures à ces pavés mais ils s'avère que l'ont voit à travers mes objets, comme si la texture était transparente. Comment puis-je résoudre ce problème ? Merci par avance, Cordialement, Anz.
|
|
dimanche 23 novembre 2008 à 16:39:14 |
Re : DIrectX Objet transparent !

bubbathemaster
|
Salut: 1. Abandonne DirectX avec .NET: c'est un projet officiellement annulé par MS. 2. Pour ton probleme, as-tu vérifié que tu ne passe pas une couleur d'alpha quand tu dessine?
|
|
lundi 24 novembre 2008 à 00:20:23 |
Re : DIrectX Objet transparent !

ansizak
|
Ok... Je n'ai pas vraiment saisi ton point 2. Et qu'entend tu par "c'est un projet officiellement annulé par MS" exactement ?
|
|
lundi 24 novembre 2008 à 02:31:43 |
Re : DIrectX Objet transparent !

bubbathemaster
|
DirectX pour .NET est abandonné par MS. Les dernières versions du SDK ne le comporte pas: donc tu dev avec une technologie que microsoft ne compte pas supporter à l'avenir. Il va falloir revenir au C++ :)
Pour en revenir à la transparence, typiquement tes vertex ont un attribut color qui est un dword (donc 32bits), avec RGBA. Donc tu définis ça avec 0xRRGGBBAA
Si tu ne veux pas d'alpha mets AA à 0xFF. Pour appliquer une texture sur un quad (je suppose que c'est ce que tu fais), vérifie que la couleur de tes vertex est bien à 0xFFFFFFFF.
|
|
lundi 24 novembre 2008 à 15:58:27 |
Re : DIrectX Objet transparent !

ansizak
|
Et bien merci pour tes informations.. Je me mettrais au C++, mais je dois avouer que pour le moment je ne sais pas trop par où commencer. Par contre je n'applique pas réellement de texture directement sur un quadrillatère.. Je débute, je ne savais même ps qu'il était possible de définir un quadrillatère, je me contente de les créer des triangle strip via des CustomVertex.PositionTextured et j'applique une partie de la texture sur chaque triangle..
Je n'ai toujours pas vraiment compris quelle propriété contient l'information qui précise si ma texture contient un canal alpha...
Voici un extrait de code qui permet de générer un pavé:
VertexBuffer[,] buf = new VertexBuffer[i, j]; //Pour chaque ligne de la carte for (int l = 0;l<i;l++) { //pour chaque colonne de la carte for (int m = 0; m < j; m++) { //creation du buffer [ligne,colonne] correpondant à une tuile buf[l, m] = new VertexBuffer(typeof(CustomVertex.PositionTextured), 30, device, 0, CustomVertex.PositionTextured.Format, Pool.Default); CustomVertex.PositionTextured[] tile = (CustomVertex.PositionTextured[])buf[l, m].Lock(0, 0);
// 2 triangles par face tile[0].Position = new Vector3(l, 0.5f + (float)(0.2*hights[l,m]), -m); tile[0].Tv = 0.0f; tile[0].Tv = 0.0f;
tile[1].Position = new Vector3(l, 0.0f, -m); tile[1].Tu = 0.0f; tile[1].Tv = 1.0f;
tile[2].Position = new Vector3((l + 1), 0.5f + (float)(0.2*hights[l,m]), -m); tile[2].Tu = 1.0f; tile[2].Tv = 0.0f;
tile[3].Position = new Vector3((l + 1), 0.0f, -m); tile[3].Tu = 1.0f; tile[3].Tv = 1.0f;
tile[4].Position = new Vector3((l + 1), 0.5f + (float)(0.2*hights[l,m]), -(m + 1)); tile[4].Tu = 2.0f; tile[4].Tv = 0.0f;
tile[5].Position = new Vector3((l + 1), 0.0f, -(m + 1)); tile[5].Tu = 2.0f; tile[5].Tv = 1.0f;
tile[6].Position = new Vector3(l, 0.5f + (float)(0.2*hights[l,m]), -(m + 1)); tile[6].Tu = 3.0f; tile[6].Tv = 0.0f;
tile[7].Position = new Vector3(l, 0.0f, -(m + 1)); tile[7].Tu = 3.0f; tile[7].Tv = 1.0f;
tile[8].Position = new Vector3(l, 0.5f + (float)(0.2*hights[l,m]), -m); tile[8].Tu = 4.0f; tile[8].Tv = 0.0f;
tile[9].Position = new Vector3(l, 0.0f, -m); tile[9].Tu = 4.0f; tile[9].Tv = 1.0f;
//base tile[10].Position = new Vector3(l, 0.5f + (float)(0.2*hights[l,m]), -m); tile[10].Tu = 0.0f; tile[10].Tv = 0.0f;
tile[11].Position = new Vector3((l + 1), 0.5f + (float)(0.2*hights[l,m]), -m); tile[11].Tu = 0.0f; tile[11].Tv = 1.0f;
tile[12].Position = new Vector3(l, 0.5f + (float)(0.2*hights[l,m]), -(m + 1)); tile[12].Tu = 1.0f; tile[12].Tv = 0.0f;
tile[13].Position = new Vector3((l + 1), 0.5f + (float)(0.2*hights[l,m]), -(m + 1)); tile[13].Tu = 1.0f; tile[13].Tv = 1.0f;
buf[l, m].Unlock();
} }
Peut-être pourras tu me préciser ou je doit définir l'absence de canal alpha.
Merci à toi,
Cordialement, Anz
|
|
lundi 24 novembre 2008 à 16:29:18 |
Re : DIrectX Objet transparent !

bubbathemaster
|
Oui un quad est formé de 2 triangles, donc c'est normal :)
Par contre tu as des coordonnées certaines UV supérieures à 1, ce n'est pas correct.
La couleur de tes vertex est un attribut de CustomVertex. Je ne sais aps comment tu as déclaré tes vertex, car tu peux mettre un peu ce que tu veux dedans.
Tiens un petit exemple en C++: http://www.two-kings.de/tutorials/dxgraphics/dxgraphics07.html
D'ailleurs je me suis mélangé les pinceaux avec OpenGL, dans directx les couleurs c'est ARGB, et non pas RGBA.
Tu devrais reprendre les tutoriaux de base fournis avec le SDK et reprendre morceau par morceau: dessiner un triangle, un quad, texturer un quad avec des coordonnées UV :p
|
|
lundi 24 novembre 2008 à 19:57:15 |
Re : DIrectX Objet transparent !

ansizak
|
Salut à toi, je vais regarder tes liens de ce pas. Pour les coordonnées de textures supérieures à 1, c'est possible, cela me permet de dupliquer la texture (en commençant à 1 et en allant juqu'à 2 c'est comme si j'allais de 0 à 1, cela peut paraitre tordu, mais ça me permet de mettre en relation les sommets de mon pavé avec leurs textures).
Tu m'a donnée un coup de motive, je me suis lancé dans le C++, je vais essayer de recréer mon projet dans ce langage. Mais pour le moment les tutos que j'ai suivis mentionnent surtout la SDL en ce qui concerne le traitement d'image. Pour la creation de fenetre dois-je passer par la SDL ou bien DirectX permet-t-il de gérer cela lui-même ?
|
|
mardi 25 novembre 2008 à 05:21:17 |
Re : DIrectX Objet transparent !
|
mardi 25 novembre 2008 à 16:10:27 |
Re : DIrectX Objet transparent !

bubbathemaster
|
Réponse acceptée !
ansizak ne perds pas ton temps à chercher des tutos directx sur le net: Télécharger le DirectX sdk directement sur Microsoft, après t'as TOUT ce que tu cherche, mais vraiment hein! Microsoft se casse le cul pour créer des tutos débutants comme des tutos super avancés sur les shaders, sers t-en! En plus à chaque fois c'est des projets Visual Studio tout près à être utilisés. Par exemple, créer une fenêtre, c'est un tuto disponible! Sers toi du browser: 
|
|
mardi 25 novembre 2008 à 16:12:35 |
Re : DIrectX Objet transparent !

bubbathemaster
|
Tu vas voir qu'en dehors de cette gestion de fenêtre très bas niveau tu vas retrouver +/- ce que tu as vu en C#. DirectX pour C# c'était juste une sorte de wrapper pour l'API native, tu ne seras pas perdu.
|
|
Cette discussion est classée dans : objet, transparent, directx, pavés
Répondre à ce message
Sujets en rapport avec ce message
PictureBox transparent [ par Chebitou ]
Bonjour, Voici mon problème : j'ai un PictureBox qui contient une image et je voudrais simuler le déplacement d'un objet sur l'image, mais je veux q
Capture audio [ par locus ]
Bonjour,j'essaie de faire un logiciel de visioconference avec une webcam pour acquerir un savoir faire.Pour cela je me sers de directshow.net et la li
insert et objet [ par babe59 ]
Bonjour,Hypothèse : - une table TBL_CLIENT : données es clients - un objet "Client" qui permet (entre autre) de géré un client. Cet objet contie
Reflection et Instances d'attributs [ par t00f ]
Bonjour,J'ai un objet List.Je veux que T soit en fonction d'un objet récupérer par réflexion. Je l'ai récupéré mais je sais pas comment l'écrire.Si mo
transformer un champ d'un objet sqlReader en DateTime [ par fabian86 ]
bonjour,J'ai besoin d'une âme charitable qui pourrait m'aider. Je réalise une application windows connecté à une DB. J'ai une table patient qui a 5 ch
Reflection sur une méthode statique [ par t00f ]
Bonjour à tous,Je viens vers vous pour une question concernant la réflection.Lorsque j'appelle une méthode normalement (non statique) je peux récupére
Drag and Drop TreeView vers DataGridView [ par ulysse1976 ]
BonjourVoila j'ai un treeview avec des noeud qui represante des objets et j'aimerais glisser-deposser l'un de ces noeud vers une DataGridView.Mon prob
SOS sur l'objet backgroundWorker [ par rocaro ]
J'ai crée une appli avec une forme dans laquelle j'utilise le composant backgroundWorker pour exécuter une tache en arriere plan.Or j'ai vérifié avec
DirectX insertion image [ par bolandfranck ]
Bonjour,Le code ci-après est une partie d'un projet de menu carousel récupéré sur le net.Mon problème est qu'il utilise du directX et que je ne connai
Reflection sur une liste [ par t00f ]
Bonjour à tous,Je reviens vers vous pour une nouvelle question sur la reflexion.J'ai une class qui possède une List d'objet B, avec B qui hérite de la
Livres en rapport
|
Derniers Blogs
[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|