Comment faire en dégradé en arrière plan d'un monde direct3D

Résolu
Zakata Messages postés 59 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 17 juillet 2009 - 24 juin 2007 à 16:58
Zakata Messages postés 59 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 17 juillet 2009 - 24 juin 2007 à 21:22
Bonjour,

Je suis actuellement en train de réaliser un projet avec DirectX et j'aimerais inséré un dégradé de couleur sur la pictureBox, support du monde Direct3D. Je voulais essayer de fusionner deux images, une créée par directx avec tous mes vertex et mes mesh et l'autre une image dégradée mais je le sens mal.

Quelqu'un aurait il une iddée ?

Merci
Damien

8 réponses

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
24 juin 2007 à 19:56
Ha pardon,
En VB6 tu dois créer une structure et la déclarer avec le format FVF et le bazar ?
Alors là où tu utilise D3DFVF_XYZ, tu utilise à la place D3DFVF_XYZRHW. Tu dois également leur ajouter un champs Rhw As Single qui indique le poid qu'aura chaque vertex dans le dégradé les liant entre eux.
Exemple en C ici

<hr width="100%" size="2" />Julien.
3
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
24 juin 2007 à 18:09
Salut,
Bah oui
Y'a pleins de solutions, une simple est par exemple d'utiliser 4 vertex décrivant un rectangle, et tu y applique les textures que tu veux.
Pour construire ta texture, il suffit d'utiliser Texture.Lock, puis Unlock quand tu as fini...

<hr size="2" width="100%" />Julien.
0
Zakata Messages postés 59 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 17 juillet 2009
24 juin 2007 à 18:20
Merci pour ta réponse mmais j'y avais penser et le pb c'est qu'il faut gérer la position des 4 vertex a chaque rotation, translation et scalling du monde, ca prend du temps en plus. Sinon il y a l'iddée de la boite englobante mais la pareille il faudra gérer la position lors d'une rotation autour de l'axe horizontal (pas la peine lors d'une rotation autour d'un axe verticale car dans ce sens, le dégédé est invariant)

Je pense que c'est ce que je ferais faute de trouver mieux.

Damien
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
24 juin 2007 à 18:23
Bah écoute si tu veux faire de la 3d et que tu t'arrête à ce genre de confrontation mathématique tu n'ira pas très loin...
Soit tu déclare tes vertex comme Transformed et tu les mets dans les coordonnées de la picture box, ils ne seront pas transformés avec le monde direct3d.
Soit tu les déclare en Position et tu leur applique la matrice inversée de World * View * Proj...

<hr width="100%" size="2" />Julien.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zakata Messages postés 59 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 17 juillet 2009
24 juin 2007 à 18:38
Le problème n'est pas mathématique, c'est simplement que je n'ai pas envie que mon programme calcul sans arret les coordonnées de 4 points, surtout qu'ils ont un but uniquement estétique. Sinon ton idée de les  déclarer en transformed c'est quoi exactement ?
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
24 juin 2007 à 18:42
Et bien comment déclare tu tes vertex ?
Sans doute quelque chose du style
Dim vert(3) as CustomVertex.PositionColoredTextured
non ?

A la place de Position, tu utilise Transformed
Dim vert(3) as CustomVertex.TransformedColoredTextured

Et ils ne seront pas projetés sur la surface de rendu, donc les coordonnées que tu leurs affecterons seront les coordonnées 2d auxquelles ils apparaitront dans la picturebox.

<hr width="100%" size="2" />Julien.
0
Zakata Messages postés 59 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 17 juillet 2009
24 juin 2007 à 18:53
Ba en fait je suis sur VB6
0
Zakata Messages postés 59 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 17 juillet 2009
24 juin 2007 à 21:22
Ok C'est nikel merci
0
Rejoignez-nous