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
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|