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 :

effets de pixel shaders 1.1


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 79
    Par défaut effets de pixel shaders 1.1
    quelqu'un a reussi a faire il filtre de flou avec les 1.1, un effet sepia ?
    car j'ai des codes qui le font mais c'est toujours ps 1.4 ...
    merci

  2. #2
    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 le blur tu procèdes come expliqué dans le pdf, en remplaçant texld par tex. Y besoin d'aucun code spécifique aux ps1.4 pour faire ça .
    Pour le sepia, il faudra que tu t'en tires sans "dependant read" sur une texture 1D. Ca doit pas être si sorcier, je pense que tu peux t'en tirer avec simplement une bonne équation (genre tu calcules ton niveau de gris, et t'interpoles ensuite sur une couleur donnée avec ça. c'est pas exactement du sepia mais c'est le même genre).

    Sinon tu verras, une fois que t'auras un peu manipulé tout ça tu trouveras toi-même comment faire les effets recherchés .

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 79
    Par défaut
    pour un effet de flou j'ai fait ca qui ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    def c0, 0.2f, 0.2f, 0.2f, 1.0f
    tex r0, t0
    tex r1, t1
    tex r2, t2
    tex r3, t3
    tex r4, t4
    add r0, r0, r1
    add r2, r2, r3
    add r0, r0, r2
    add r0, r0, r4
    add r0, r0, c0
    je pense que c def c0, 0.2f, 0.2f, 0.2f, 1.0f qui pose pb ...
    pour les autres effets je me debrouillerai moi meme apres avoir tout lu de ce site :http://www.shaderx.com/direct3d.net/...r/shader3.html

  4. #4
    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
    tex ne prend qu'un argument :

    tex t0
    tex t1
    ...
    Et ensuite tu utilises donc tx au lieu de rx. Sauf pour les registres de destination evidemment.

    Quant à ton def c0, je ne pense pas qu'il aime le 'f' derriere tes valeurs (enfin j'ai jamais essayé alors pourquoi pas...). En tout cas tu peux l'enlever.

    Compile ton shader avec psa.exe fourni dans le SDK Dx, il te dit à quel endroit se trouve l'erreur si erreur il y a.
    A noter que pour faire un effet de flou de cette manière il faut placer ta texture dans les 4 premiers stages (Device->SetTexture(0, Tex); Device->SetTexture(1, Tex); Device->SetTexture(2, Tex); Device->SetTexture(3, Tex)) avec des coordonnées de texture légèrement décalées (d'un texel). Enfin j'ai jamais fait non plus donc vaudrait mieux que tu cherches un ptit explicatif sur le net

    Sinon mon conseil c'est de potasser un peu + ça en détail avant de poster à tout va (pas que ça me dérange de répondre, c'est juste un conseil ).

    Happy coding !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 79
    Par défaut
    ok , j'ai du mal à comprendre comment fonctionne la logique du code.
    en fait je fais mes shader une 1ere fois dans MFCPixelShader et ca me dis deja les erreur, mais pas la ligne précisemment.
    Je vais continuer à potasser merci ...

  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
    hey tu as le dx sdk ?

    il y a un effet de flou dans les samples (depth of field, soit flou différent suivant la distance) et a ma connaissance il y a une technique qui n'utilise que les PS1.1.

    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

  7. #7
    Membre éprouvé
    Inscrit en
    Mai 2003
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 99
    Par défaut
    Meme reponse que sur l'autre forum

    Le flou se fait en moyennant les pixels voisins. La preparation se fait dans le vertex shader.

    ps.1.1
    def c0, 0.5, 0.5, 0.5, 0.5
    tex t0
    tex t1
    tex t2
    tex t3
    lrp t1, c0, t1, t0
    lrp t2, c0, t2, t3
    lrp r0, c0, t1, t2

    Voir aussi chapitres 19 et 20 de mon bouquin: N&B, Sepia, pique, embossage, etc.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 79
    Par défaut
    ok merci, je regarde la doc du sdk pour trouver ce que t'as dis. Sinon j'ai testé ton filtre laurent, juste le code des PS , ca ne fonctionne pas, je suis obligé d'utiliser un complément en vertex shader ? et c'est quoi ce complément?

    un code que en pixel shader qui fait un flou en fonction de la distance c'est pas possible ? :/
    je lis toute une doc sur les PS la pour comprendre comment ca marche...

    legreg j'ai pas trouvé ton exemple "deph of view" dans les sample, tu pourrai me dire dans quel exemple il est ?

  9. #9
    Membre éprouvé
    Inscrit en
    Mai 2003
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 99
    Par défaut
    Cemoi > Le shader fonctionne bien si tous les canaux de texture sont la et correctement decales : Le complement, c'est donc ce qu'a explique Loulou, ajuster les textures... Sinon, regarde le chapitre "convolutions en pixel shaders" dans mon book, pages 352 a 358. Il y a les explications detaillee et le code du vertex shader.

    Sinon je crois que le depth of view sample est arrive avec DX9. Si tu tournes en DX8, il ne sera peut-etre pas la...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 79
    Par défaut
    ok laurentUSA, je vais regarder pour les canaux de texture, je n'ai fait aucune opération dessus. Si je ne l'ai pas fait , c'est parce que je ne sait pas quelle texture mettre dans Device->SetTexture(1, Tex), le backbuffer ?. car je voudrai faire un flou sur tout l'écran, je comprend pas bien ...

    ps : j'ai directx 8 oui, j'ai donc pas l'exemple, je vais essayer de le trouver.

  11. #11
    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
    je ne sait pas quelle texture mettre dans Device->SetTexture(1, Tex), le backbuffer ?
    En gros oui, mais comme ce n'est pas possible, ce sera la texture sur laquelle tu auras rendu ta scène .
    A noter que tu devras la mettre sur les 4 premiers canaux, pas seulement le 2ème.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 79
    Par défaut
    ok je vais tester ca merci

Discussions similaires

  1. Effets et Pixel Shaders
    Par TERRIBLE dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 25/05/2010, 19h36
  2. Pixel Shaders (en Managed)
    Par Ingham dans le forum DirectX
    Réponses: 10
    Dernier message: 20/12/2004, 19h05
  3. pixel shader 2.0
    Par trois_1 dans le forum DirectX
    Réponses: 3
    Dernier message: 20/10/2003, 15h39
  4. Vertex et Pixel Shader
    Par Riko dans le forum OpenGL
    Réponses: 2
    Dernier message: 06/06/2003, 16h45
  5. carte graphique et pixels shader
    Par yeeep dans le forum DirectX
    Réponses: 2
    Dernier message: 26/04/2003, 10h54

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