DX9 : Copie de surface à surface

Résolu
cs_MFN Messages postés 6 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 29 septembre 2006 - 22 sept. 2006 à 02:03
cs_MFN Messages postés 6 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 29 septembre 2006 - 29 sept. 2006 à 11:53
Salut tout le monde ;)

J'essaie de programmer des applications multimédias en DX9 depuis peu, et je me débrouille pas trop mal à part que... Je ne sais pas s'il y a moyen de copier une surface sur une autre.
Pour ceux qui ne voient pas trop ce que je veux dire, je vous donne un exemple :
On va dire que je veux concevoir un portrait personnalisé. Pour ce faire j'utilise parmi un certain nombre de modèles (donc chacun ayant une texture propre) un visage, une coupe de cheveux, des lunettes etc. Et mon problème c'est qu'au lieu de superposer tout celà à chaque fois sur le backbuffer, je veux faire une seule superposition et garder le tout dans une texture unique qui sera affichée tout simplement. Tout ça dans un souci d'éconmie mémoire et processeur.

Si vous connaissez la solution, je vous en remercie d'avance ;)

(C'est pour VB.Net mais j'adapterai si vous connaissez uniquement VB6 )

6 réponses

vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
29 sept. 2006 à 09:16
Ben tu as plusieurs méthodes (par contre je ne peux te donner que la théorie car je ne sais pas le faire en pratique) : soit tu utilises GetPrivateData et SetPrivateData mais là tu vas devoir faire toi meme la methode de mélange des couleurs, soit tu utilises le rendu sur texture pour chaque nouvelle image (changement de "filtre" où "filtre" = "moustache") puis tu recuperes le resultat dans une surface ou une texture que tu affiches ensuite tant qu'il n'y a pas de changement.
3
vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
28 sept. 2006 à 13:10
Salut a toi,
j'ai du mal à voir ce que tu utilises, des surfaces ou des textures ? Et c'est pour un rendu 3D ou 2D ?
0
cs_MFN Messages postés 6 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 29 septembre 2006
28 sept. 2006 à 17:45
Oui, désolé pour ma confusion, au temps pour moi. En fait ce sont bien des Textures que j'utilise. Le rendu est fait par l'usage de Sprite qui copie donc ces Textures sur le Backbuffer pour donner une sorte de 2D.
0
vr3h Messages postés 164 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 9 octobre 2006
28 sept. 2006 à 17:49
Ok donc si je comprends bien tu voudrais copier le contenu d'une texture vers une autre texture ?
0

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

Posez votre question
cs_MFN Messages postés 6 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 29 septembre 2006
28 sept. 2006 à 18:22
Exactement. En théorie on pourrait le faire en passant par l'objet Graphics, mais j'utilise un mode graphique avec un canal alpha, ce qui empêche d'accéder à cet Objet depuis la Texture.
(Méthode : Texture


.GetSurfaceLevel(0).GetGraphics
)
Il faut donc que je trouve un autre moyen.
0
cs_MFN Messages postés 6 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 29 septembre 2006
29 sept. 2006 à 11:53
Ok, merci pour ta réponse qui ne manquera pas de m'aider. Je n'en doute pas
0
Rejoignez-nous