Direct3d et vb6 ( textures) [Résolu]

Messages postés
48
Date d'inscription
jeudi 16 août 2007
Dernière intervention
3 juin 2018
- - Dernière réponse : yvesdudu
Messages postés
48
Date d'inscription
jeudi 16 août 2007
Dernière intervention
3 juin 2018
- 6 janv. 2012 à 14:05
Bonjour,
Je suis en train de développer un jeu en direct3D sous VB6 et ma question est la suivante.
Je plaque des textures ( images bmp) sur des triangles mais comment utiliser la couleur de transparence si par exemple mes bmp sont en fond noir.
Pour éviter qu'au déplacement d'un objet celui ci masque les autres de toute sa taille rectangulaire et non par le contour de l'image de la texture.
Dois je agir comme avec directdraw de DX8 et la couleur de transparence.
Mais alors comment dois je coder cela sous D3D.
Merci pour votre éventuelle aide.

PS:je suis dans le 13 et si quelqu'un est interéssé par une collaboration afin de partager notre passion , merci de laisser un message sur ce forum.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
3
Merci
Comme je te l'ai indiqué, utiliser CreateTextureFromFileEx
qui propose une ColorKey

HRESULT CreateTextureFromFileEx( LPDIRECT3DDEVICE9 pDevice, LPCTSTR pSrcFile, UINT Width, UINT Height, UINT MipLevels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, DWORD Filter, DWORD MipFilter, D3DCOLOR ColorKey, D3DXIMAGE_INFO *pSrcInfo, PALETTEENTRY *pPalette, LPDIRECT3DTEXTURE9 *ppTexture );


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
48
Date d'inscription
jeudi 16 août 2007
Dernière intervention
3 juin 2018
3
Merci
Je suis arrivé au bout du tunnel , j'ai réussi à faire ce que je voulais avec mes textures.
Encore merci pour ta précieuse aide
Cordialement
yves

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yvesdudu
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
tu as un parametre colorKey dans l'appel a CreateTextureFromFileEx

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
48
Date d'inscription
jeudi 16 août 2007
Dernière intervention
3 juin 2018
0
Merci
Bonjour et merci pour ta réponse.
N'ayant presque aucune documentation à ce sujet autre que celles que j'ai trouvée dans les différents forums , pourrait tu en 2 ou 3 lignes de code m'éclairer sur la manière de proçéder afin de coder une couleur de transparence.
Bien sur je vais chercher de mon coté.
Encore merci.
Cordialement
Yves
Commenter la réponse de yvesdudu
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
60
0
Merci
quel est ton code de chargement de la texture ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
48
Date d'inscription
jeudi 16 août 2007
Dernière intervention
3 juin 2018
0
Merci
Re bonjour,
Voici les lignes de code pour le chargement et l'utilisation de la texture:
Chargement de la texture:
Set texture =  Pd3dx.CreateTextureFromFile(device, Ppath & "image.bmp") ' création de la texture

application de la texture:
Vertexobjet1(0)  = creationpoint(-6, 15, 50, RGB(255, 255, 255), 1, 0, 1) ' boite 1
Vertexobjet1(1) = creationpoint(-6, 30, 50, RGB(255, 255, 255), 1, 0, 0)
Vertexobjet1(2) = creationpoint(6, 15, 50, RGB(255, 255, 255), 1, 1, 1)
Vertexobjet1(3) = creationpoint(6, 15, 50, RGB(255, 255, 255), 1, 1, 1) ' boite 1
Vertexobjet1(4) = creationpoint(-6, 30, 50, RGB(255, 255, 255), 1, 0, 0)
Vertexobjet1(5) = creationpoint(6, 30, 50, RGB(255, 255, 255), 1, 1, 0)

Affichage de l'objet dans la scène:
device.SetTexture 0, texture ' les textures de la boite
device.DrawPrimitiveUP D3DPT_TRIANGLELIST, 1, Vertexobjet1(0), Len(Vertexobjet1(0)) ' c'est la boite 1
device.DrawPrimitiveUP D3DPT_TRIANGLELIST, 1, Vertexobjet1(3), Len(Vertexobjet1(0)) ' c'est la boite 1

Merci pour ton aide
Amicalement
Yves
Commenter la réponse de yvesdudu
Messages postés
48
Date d'inscription
jeudi 16 août 2007
Dernière intervention
3 juin 2018
0
Merci
Ok entre temps j'ai trouvé sur le forum un bout de code que j'ai appliqué à mon programme mais sans succès.
Set texture = Pd3dx.CreateTextureFromFileEx(device, ppath & "image.bmp", 128, 128, 1, 0, D3DFMT_DXT1, D3DPOOL_MANAGED, D3DX_FILTER_LINEAR, D3DX_FILTER_LINEAR, &H0, ByVal 0, ByVal 0)

Puis dans le rendu de la scène:
device.SetRenderState D3DRS_ALPHABLENDENABLE, 1
device.SetRenderState D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA

device.SetTexture 0, texture ' les textures de la boite
device.DrawPrimitiveUP D3DPT_TRIANGLELIST, 1, Vertexobjet1(0), Len(Vertexobjet1(0)) ' c'est la boite 1
device.DrawPrimitiveUP D3DPT_TRIANGLELIST, 1, Vertexobjet1(3), Len(Vertexobjet1(0)) ' c'est la boite 1

aurais-je oublié quelque chose ou alors ce code n'est pas correct?.
Je continu mes tests
Encore merci
Commenter la réponse de yvesdudu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.