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 :

[DirectX HLSL] Récupérer les vertex depuis les Shaders


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 6
    Par défaut [DirectX HLSL] Récupérer les vertex depuis les Shaders
    Bonjour,

    Dans le logiciel que je développe, j'utilise des Pixel et Vertex Shaders pour effectuer mes rendus. Dans ces shaders, je calcule les UVs de mes vertex selon certains algorithmes et une depth map. Jusque là, aucun souci, tout marche à merveille.

    Cependant, il me faudrait pouvoir récupérer dans mon code C# les vertex modifiés par les shaders ... Je n'ai pas trouvé de moyen pour récupérer des données depuis les shaders.

    Je ne sais pas si c'est très clair, je peux donner plus de précisions si vous pensez pouvoir m'aider !

    Merci.

  2. #2
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Le principe des shaders est d'appliquer, sur tes pixel/vertex, une opération "post-process", soit jsute avant l'écriture dans le buffer.

    Il n'est donc pas possible de réappliquer quelque chose en plus ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 6
    Par défaut
    Ce que je voudrais c'est récupérer les vertex après leur passage dans le vertex shader, pas les modifier. Juste accéder aux valeurs des UVs de chaque vertex, qui sont calculés dans les shaders.

  4. #4
    Expert confirmé
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Par défaut
    Je ne crois pas que cela soit possible

  5. #5
    Membre chevronné

    Inscrit en
    Août 2007
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 300
    Par défaut
    Mise à jour de cette discussion après redémarrage du forum: Seliah travaille avec DX9/C#, donc le seul moyen est de coder le résultat dans des textures dynamiques, puis de les relire depuis le PC par Lock.
    CUDA est bien adapté pour des calculs généraux sur le GPU, mais pas à la récupération des résultats des calculs HLSL.
    Avec DX10 (donc C++, ou de façon un peu plus acrobatique C# via SlimDX), la technique consiste à faire un faux "geometry shader" qui se contente de ranger dans un "vertex buffer" (VB) le résultat du "vertex shader" (ce que le VS ne peut faire par lui-même: seuls les GS peuvent écrire par "stream-out"). Ensuite, il faut copier, à l'intérieur du GPU, ce VB dans un autre lisible par le CPU, et récupérer son contenu par Map/Unmap. La raison pour laquelle il faut deux VB est qu'il y a des restrictions sur les possibilités des VB selon leurs droits d'accès CPU et GPU.

  6. #6
    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
    La question c'est pourquoi ? Qu-est-ce que tu essaies de faire ?

    Après on peut peut-etre essayer de voir les solutions possibles.

    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

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

Discussions similaires

  1. Alimentation depuis les progiciels et les ERP
    Par ylesaint dans le forum Alimentation
    Réponses: 1
    Dernier message: 11/03/2016, 13h36
  2. Réponses: 13
    Dernier message: 25/12/2011, 20h17
  3. [SP-2010] Prendre les Informations depuis les Profiles Sharepoint
    Par hamzaj dans le forum SharePoint
    Réponses: 4
    Dernier message: 19/11/2010, 12h33
  4. Réponses: 2
    Dernier message: 22/08/2007, 12h46

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