Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1252 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Direct3D] creer une région windows a partir d'un rendu direct3D

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Direct3D] creer une région windows a partir d'un rendu direct3D

n°921766
ChristianS​_
Posté le 13-12-2004 à 12:51:28  profilanswer
 

Bonjour,
 
Imaginons un cube créé avec Direct3D, rendu dans une fenetre.
Comment peut on creer une région windows ( HRGN utilisable avec SetWindowRgn ) a partir du rendu ? ( en gros, il faut qu'en faisant le SetWindowRgn de cette région, on ne voit plus que le cube et plus le reste de la fenetre ) et ce, pour chaque frame de l'animation...

mood
Publicité
Posté le 13-12-2004 à 12:51:28  profilanswer
 

n°923271
Panini
Posté le 14-12-2004 à 20:14:10  profilanswer
 

Je ne connais pas ce système de région mais à priori GetWindowRgnBox retourne le rectangle valide d'affichage. Tu peux utiliser ce rectangle pour faire un SetViewport ou SetScissorRect selon l'usage requis. Je suis cependant étonné que la couche windows ne gère pas automatiquement ceci comme un scissor.

n°923504
ChristianS​_
Posté le 15-12-2004 à 08:55:25  profilanswer
 

Merci de ta réponse,
 
je ne parle pas de clipping, le rendu est bien cadré dans la fenetre et ne "déborde" pas ( c'est géré par windows ).
 
Les régions, c'est des objets qui ça servent à faire des fenetres skinnées, avec une  forme non restangulaire ( genre media player ), grace à la methode SetWindowRgn(...) .
Cette méthode est aussi utilisée pour faire les screenmates ( souvenez vous, le mouton qui cours sur le bureau windows.. ).
 
Donc, ce que je veux faire, c'est creer une région de la forme du cube, appliquer la region à ma fenetre pour que le fenetre ait la forme du cube ( et donc affiche le cube dedans ).
Ca doit etre possible en scannant la surface de rendu, si la couleur est noire ( par exemple ) je ne prend pas, sinon, j'ajoute le pixel à ma région ( technique de creation des skins a partir d'une image avec couleur de transparence )  mais ça me parait un peu long comme traitement... il faudrait que je récupère les coordonnées des points du cube par rapport à la fenetre ( en 2d ) mais je ne connais pas tres bien les api direct3d pour ça...
 
Des idées ?
 
Merci.

n°924116
Rits75
to?be:!be
Posté le 15-12-2004 à 16:36:30  profilanswer
 

Je pense qu'il faut plus t'interresser à la region "World" cad ds laquelle tu fais evolué ton cube! et ensuite tu fé une transparence sur la couleur de fond de ton "World"!
je pense que ca doir etre un truk comme ca à faire!

n°925313
Panini
Posté le 16-12-2004 à 19:30:44  profilanswer
 

Faut en effet clairement explorer la voie de la transparence alors car il n'existe rien de dédicacé pour récupérer l'info que tu veux (autre que de rapatrier le back buffer en mémoire centrale et de le lire à la main, bien lent tout ça). Prend donc un pixel format de type D3DFMT_A8R8G8B8 pour ton frame buffer et clear avec du noir transparent (0) et dans ce cas tu peux par exemple faire un région rectangulaire, ce sera quand même beaucoup plus facile et tu obtiendras l'effet que tu veux. Il faudra éventuellement creuser un peu pour voir si la transparence est bien gérée par la couche windows.
 
Autre solution, si ta scène n'est pas plus complexe que le dit cube, tu te pognes le calcul des coordonnées projetées à la main et t'en déduis ta région.


Message édité par Panini le 21-12-2004 à 23:56:38

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Direct3D] creer une région windows a partir d'un rendu direct3D

 

Sujets relatifs
Comment creer une DLL avec borland c++ 5.5 compilerCréer des PDF avec python
créer un forum simpleJe voudrais créer un script mais je suis super débutant !
[VBA Mac] Differences entre les menus Mac et Windows ?Oracle : Creer un role et l'attribuer à un user
Comment créer un formulaire de contact avec Publisher[Oracle] Créer une base de données
Qui doit partir ?Afficher à partir d'un userform une feuille excel
Plus de sujets relatifs à : [Direct3D] creer une région windows a partir d'un rendu direct3D


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR