Accueil > Forum > > > > Face transparente
Face transparente
samedi 17 mars 2007 à 03:09:05 |
Face transparente

bizzard4
|
Bonjour J'explique mon problème. J'ai fait un cube à la main avec 36 vertex. J'ai mit une couleur différente sur chaque face mais j'ai bizarement j'ai des faces transparentes. Comme si DirectX n'était pas capable de savoir quelle face est dévant et derrière. Pourtant : g_pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE); Mon cullmode est configurer de façon a afficher les 2 faces de mes triangles. Ici j'ai une image :  Le face délémité en rouge devrait être verte mais bizarement je vois les 2 faces d'en dessous sont verte sauf elle du bas  Je ne comprend vraiment pas. Et la face délémiter en blanc devrait elle être rouge. Mais nous devrions pas la voir parce qu'elle est en arrière. Si quelqu'un connaît la solution. ~~ Cordialement Francois Gingras
|
|
samedi 17 mars 2007 à 13:33:59 |
Re : Face transparente

juju12
|
Je comprends pas trop ce que tu veux faire : pour que justement seules les faces visibles soient affichées, il faut utiliser le culling. Sinon DX va même pas chercher à savoir ce qu'on est censé voir, il va tout afficher. Si tu pouvais spécifier le résultat que tu aimerais obtenir... Autre chose en passant : utilise un indexbuffer, y aura que 8 points à stocker...
|
|
samedi 17 mars 2007 à 13:37:34 |
Re : Face transparente

sam20
|
Fait voir ton code. Tu es sur de ne pas avoir dessiner de faces a l'envers?.
|
|
samedi 17 mars 2007 à 14:35:21 |
Re : Face transparente

bizzard4
|
Bonjour
Je veux seulement faire un cube opaque. Parce que la comme tu le voie sur le screen shot le carré délémiter en rouge on le voie pas mais sa couleur est sur la face du fond et sur la face du côté.
Voici le code pour mon cube :
CUSTOMVERTEX g_Vertices[3600];
// Création de Vertices Manuelle int k = 0; // Fond :: Rouge g_Vertices[0].position = D3DXVECTOR3(-5.0f, -5.0f, 0.0f); g_Vertices[1].position = D3DXVECTOR3(5.0f, -5.0f, 0.0f); g_Vertices[2].position = D3DXVECTOR3(-5.0f, 5.0f, 0.0f);
g_Vertices[3].position = D3DXVECTOR3(5.0f, -5.0f, 0.0f); g_Vertices[4].position = D3DXVECTOR3(5.0f, 5.0f, 0.0f); g_Vertices[5].position = D3DXVECTOR3(-5.0f, 5.0f, 0.0f); for (k = 0; k < 6; k++) { g_Vertices[k].color = D3DCOLOR_XRGB(255, 0, 0); }
// Top :: Vert g_Vertices[6].position = D3DXVECTOR3(-5.0f, -5.0f, -10.0f); g_Vertices[7].position = D3DXVECTOR3(5.0f, -5.0f, -10.0f); g_Vertices[8].position = D3DXVECTOR3(-5.0f, 5.0f, -10.0f);
g_Vertices[9].position = D3DXVECTOR3(5.0f, -5.0f, -10.0f); g_Vertices[10].position = D3DXVECTOR3(5.0f, 5.0f, -10.0f); g_Vertices[11].position = D3DXVECTOR3(-5.0f, 5.0f, -10.0f); for (k = 6; k < 12; k++) { g_Vertices[k].color = D3DCOLOR_XRGB(0, 255, 0); }
// Face Devant :: Bleu g_Vertices[12].position = D3DXVECTOR3(-5.0f, -5.0f, 0.0f); g_Vertices[13].position = D3DXVECTOR3(5.0f, -5.0f, 0.0f); g_Vertices[14].position = D3DXVECTOR3(-5.0f, -5.0f, -10.0f);
g_Vertices[15].position = D3DXVECTOR3(5.0f, -5.0f, 0.0f); g_Vertices[16].position = D3DXVECTOR3(5.0f, -5.0f, -10.0f); g_Vertices[17].position = D3DXVECTOR3(-5.0f, -5.0f, -10.0f); for (k = 12; k < 18; k++) { g_Vertices[k].color = D3DCOLOR_XRGB(0, 0, 255); }
// Face derrìère :: Rose g_Vertices[18].position = D3DXVECTOR3(-5.0f, 5.0f, 0.0f); g_Vertices[19].position = D3DXVECTOR3(5.0f, 5.0f, 0.0f); g_Vertices[20].position = D3DXVECTOR3(-5.0f, 5.0f, -10.0f);
g_Vertices[21].position = D3DXVECTOR3(5.0f, 5.0f, 0.0f); g_Vertices[22].position = D3DXVECTOR3(5.0f, 5.0f, -10.0f); g_Vertices[23].position = D3DXVECTOR3(-5.0f, 5.0f, -10.0f); for (k = 18; k < 24; k++) { g_Vertices[k].color = D3DCOLOR_XRGB(255, 0, 255); }
// Face Gauche :: Cyan g_Vertices[24].position = D3DXVECTOR3(-5.0f, 5.0f, 0.0f); g_Vertices[25].position = D3DXVECTOR3(-5.0f, -5.0f, 0.0f); g_Vertices[26].position = D3DXVECTOR3(-5.0f, 5.0f, -10.0f);
g_Vertices[27].position = D3DXVECTOR3(-5.0f, -5.0f, 0.0f); g_Vertices[28].position = D3DXVECTOR3(-5.0f, -5.0f, -10.0f); g_Vertices[29].position = D3DXVECTOR3(-5.0f, 5.0f, -10.0f); for (k = 24; k < 30; k++) { g_Vertices[k].color = D3DCOLOR_XRGB(0, 255, 255); }
// Face Droite g_Vertices[30].position = D3DXVECTOR3(5.0f, 5.0f, -10.0f); g_Vertices[31].position = D3DXVECTOR3(5.0f, -5.0f, 0.0f); g_Vertices[32].position = D3DXVECTOR3(5.0f, -5.0f, -10.0f);
g_Vertices[33].position = D3DXVECTOR3(5.0f, -5.0f, 0.0f); g_Vertices[34].position = D3DXVECTOR3(5.0f, 5.0f, 0.0f); g_Vertices[35].position = D3DXVECTOR3(5.0f, 5.0f, -10.0f); for (k = 30; k < 36; k++) { g_Vertices[k].color = D3DCOLOR_XRGB(255, 255, 0); }
// Create the vertex buffer. if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3600*sizeof(CUSTOMVERTEX), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVB, NULL ) ) ) { return E_FAIL; }
~~ Cordialement Francois Gingras
|
|
samedi 17 mars 2007 à 15:28:47 |
Re : Face transparente

sam20
|
Vertex g_Vertices[] = { {-1.0f, 1.0f,-1.0f}, { 1.0f, 1.0f,-1.0f}, {-1.0f,-1.0f,-1.0f }, { 1.0f,-1.0f,-1.0f}, {-1.0f, 1.0f, 1.0f}, {-1.0f,-1.0f, 1.0f}, { 1.0f, 1.0f, 1.0f}, { 1.0f,-1.0f, 1.0f}, {-1.0f, 1.0f, 1.0f}, { 1.0f, 1.0f, 1.0f}, {-1.0f, 1.0f,-1.0f }, { 1.0f, 1.0f,-1.0f}, {-1.0f,-1.0f, 1.0f}, {-1.0f,-1.0f,-1.0f}, { 1.0f,-1.0f, 1.0f,}, { 1.0f,-1.0f,-1.0f,}, { 1.0f, 1.0f,-1.0f }, { 1.0f, 1.0f, 1.0f}, { 1.0f,-1.0f,-1.0f}, { 1.0f,-1.0f, 1.0f}, {-1.0f, 1.0f,-1.0f}, {-1.0f,-1.0f,-1.0f}, {-1.0f, 1.0f, 1.0f }, {-1.0f,-1.0f, 1.0f } };
g_pd3dDevice->CreateVertexBuffer( 24*sizeof(Vertex),0, CUSTOMVERTEX, D3DPOOL_DEFAULT, &g_pVertexBuffer, NULL );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP
|
|
samedi 17 mars 2007 à 17:44:00 |
Re : Face transparente

juju12
|
Réponse acceptée !
Comme je disais auparavant,il faut utiliser le culling car ici comme tu affiches tout, il dessine les faces supposées non visibles par dessus les visibles et c'est le bazard. Faut utiliser D3DCULL_NONE seulement quand on veut voir ce qu'il y a derrière (ex.faces translucides etc..) Ici : g_pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_CCW); et déclarer tes triangles en conséquence (sens trigo ici).
|
|
samedi 17 mars 2007 à 20:14:53 |
Re : Face transparente

bizzard4
|
Parfait j'ai comprit maintenant !
~~ Cordialement Francois Gingras
|
|
samedi 17 mars 2007 à 21:13:40 |
Re : Face transparente

bizzard4
|
Pour sam20 :
Merci mais pour les besoins de la cause je suis en D3DPT_TRIANGLELIST
~~ Cordialement Francois Gingras
|
|
Cette discussion est classée dans : faces, transparente, face, bizarement, cullmode
Répondre à ce message
Sujets en rapport avec ce message
[cull facing] Besoin d'une petite précision [ par jcloupgarou ]
Bonjour,Je fait un modeleur 3d et dans ce cadre les objets, ainsi que la camera ne sont pas fixes et peuvent notemment tourner. Dans ce sens, que sign
OpenGL/Nehe leçon8 --> problem blending [ par MrdJack ]
Bonjour, j'ai un petit ennui avec le blending sous OpenGL, pour faire simple, disons que j'utilise le code source de la leçon 8 de NeHe je souhaite af
Errreur [ par RM50Man ]
Mon code ne marche pas: Le compilateur devcpp me met build error 1 #include /* contient déjà et */ #include #include #include void reset
Fenêtre inselectionnable (transparente / actions utilisateurs) [ par Galmiza ]
Bonjour, Je souhaite afficher une application windows toute bête, légerement transparente, mais qui ne gêne pas les interactions utilisateur-autres f
opengl en C front back et.... [ par chipryot ]
bonjour je "programme" en devc++ et je me suis mis à opengl et j'ai un problème.En fait j'ai un cube et je souhaite que la face 'FRONT' sois d'un tel
indexation des triangles composant une surface 3D [ par jcloupgarou ]
Bonjour, je fais une appli de modélisation 3D, avec la possibilité de loader des modeles 3D de différents formats.Un objet 3D est un ensemble de faces
Rendre une fentre transparente [ par supergrey ]
Bonjour, je voudrais savoir comment rendre la fenetre d'un programme externe (comme IE, blocnote...) transparente.J'ai trouvé des sources rendre la fe
fenetre transparente [ par pipo ]
je cree une fenetre transparente avec WS_EX_TRANSPARENT mais le probleme c'est que quand je deplace ma fenetre le fond de la fenetre (le bureau de win
probleme de fenetre transparente [ par pipo ]
je cree une fenetre transparente avec WS_EX_TRANSPARENT mais le probleme c'est que quand je deplace ma fenetre le fond de la fenetre (le bureau de win
Code pour steph [ par SmallToad ]
Voici le code, 222 lignes. ca va etre moin lour que sur le chat, .#include #include #include #include #include
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|