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 :

GetRenderTarget et LockRect ?


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Par défaut GetRenderTarget et LockRect ?
    Bonjour, je récupère actuellement le "rendertarget" et je l'affiche pour vérifier que ça fonctionne.
    J'aimerai faire un flou mais aucun filtrage ne fonctionne, je suppose que c'est normal, donc je cherche une alternative, soit faire le flou moi meme pixel par pixel ou copier dans une autre texture, mais je n'arrive pas à faire un lockrect.

    Quelqu'un peut il m'aider ?

    Merci

  2. #2
    Membre Expert

    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
    Par défaut
    Non non non, ce n'est pas une technique viable (sur PC tout du moins).

    Pour faire un flou, la méthode efficace est de render to texture (créer une texture avec le flag rendertarget), et d'utiliser cette texture dans un pixel shader. Tu peux utiliser les capacités de bilinear filtering ou anisotropic filtering de la carte pour accélérer le calcul de ton filtre si celui-ci s'y prète.

    Je crois qu'il y a plusieurs articles/exemples du DXSDK qui montrent comment faire un filtre sur le GPU en utilisant des textures intermédiaires.

    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
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Par défaut
    Il doit bien y avoir un moyen sans utiliser de shader (j'aime po ça moi les shader) ?

  4. #4
    Membre Expert

    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
    Par défaut
    Citation Envoyé par supergrey Voir le message
    Il doit bien y avoir un moyen sans utiliser de shader (j'aime po ça moi les shader) ?
    Tu peux additionner les textures avec le fixed function pipeline. Mais ce n'est pas aussi flexible..

    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

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 434
    Par défaut
    Mais c'est donc impossible de faire lockrect sur la texture obtenu avec getrendertarget histoire de voir ce que ça donne ? ou directement appliquer un filtrage tout simplement ?

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Pour verrouiller une rendertarget, il faut que celle-ci ait été explicitement déclarée "lockable" (voir D3DPRESENTFLAG_LOCKABLE_BACKBUFFER si c'est la rendertarget principale, ou le paramètre Lockable de la fonction CreateRenderTarget).

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/07/2008, 17h31
  2. Probleme de LockRect sur le BackBuffer
    Par FTrevisan dans le forum DirectX
    Réponses: 7
    Dernier message: 09/11/2006, 13h13

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