IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DirectX Discussion :

[D3D10] Récupérer le back buffer d'une fenêtre multisamplée


Sujet :

DirectX

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [D3D10] Récupérer le back buffer d'une fenêtre multisamplée
    Bonjour,

    avec DirectX9, il y avait une fonction très utile "GetRenderTargetData" qui permettait de récupérer le buffer écran dans une texture, puis de récupérer le contenu de la texture dans un buffer.

    avec DirectX 10, cette fonction n'existe plus.
    On doit utiliser la méthode "CopyResource" qui effectue une copie d'une ressource vers une autre. La source est bien entendu le backbuffer, et la destination est une texture en mode STAGING afin qu'elle puisse être lue par le CPU.
    Une fois que la copie est effectuée, on peut effectuer un "map" sur la texture pour récupérer son contenu dans un buffer.

    Tout semble fonctionner correctement, SAUF que la fontion "CopyResource" ne fonctionne pas pour les resources utilisant le multisampling !
    La MSDN précise que cette fonctionnalité de copie avec multisampling sera ajoutée dans DX 10.1 mais est indisponible pour le moment....
    Effectivement, ça ne fonctionne pas...

    Alors, comment faites-vous pour effectuer un screenshot d'une scène multi-samplée en DX10 ??

    Je n'ai pas trouvé de solution... Je suis preneur de toute piste !

    Merci pour votre aide.

    Cdt,

    Pacôme

  2. #2
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    les surfaces multisamplées sont dans un format opaque qui n'est pas directement lisible et donc copySubResource n'a pas de sens directement (la spec étant plus stricte qu'avec d3d9 qui n'engage à rien concernant le multisampling), pour les lire avec le CPU il faut au préalable "résoudre" les pixels multisamplés avec ID3D10Device::ResolveSubresource.

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Janvier 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    C'est exactement cette méthode qu'il me faut utiliser.
    Merci beaucoup pour ta réponse rapide et claire.

    Pacôme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerBuilder] Récupérer la main sur une fenêtre modale
    Par jpdar dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 14h21
  2. Réponses: 43
    Dernier message: 03/03/2006, 19h41
  3. Coment récupérer le handle d'une fenêtre
    Par robocop2776 dans le forum MFC
    Réponses: 2
    Dernier message: 30/10/2005, 22h21
  4. Réponses: 4
    Dernier message: 22/08/2005, 19h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo