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 :

Appel d'un pixel shader "simple"


Sujet :

DirectX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Par défaut Appel d'un pixel shader "simple"
    bonsoir à tous,

    J'ai un petit souci sur un appel de pixel shader sur une surface, ou texture, pour faire un rendu, et modification de rendu, offscreen, en c#.

    J'ai tout un pipeline qui fonctionne, et qui me génère une image, dans une Surface, et qui fonctionne bien.

    Maintenant, j'aimerais passer cette surface dans un pixel shader, sans succès, avec le code suivant:
    (la surface "source" est mBackbufferColor).

    Le code du pixel shader (qui se contente normalement de conserver une composante rouge par pixel):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    texture g_workingTexture;
     
    sampler g_2DSrc = sampler_state
    {
    	Texture = <g_workingTexture>;
    };
     
    float4 RedExtractionShader( float2 Tex : TEXCOORD0 ) : COLOR0
    {
        float4 Color;
     
        Color = tex2D( g_2DSrc, Tex.xy);
    	Color.r = Color.r*2;
    	Color.g = 0;
    	Color.b = 0;
     
        return Color;
    }
     
    technique RedPostProcess
    {
        pass p0
        {
            VertexShader = null;
            PixelShader = compile ps_2_0 RedExtractionShader();
        }
     
    }
    Ca passe sans probleme sous FX Composer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    Texture mWorkingTexture;
    Surface mWorkingSurface;
    SurfaceDescription lSDC = mBackbufferColor.Description;
    mWorkingTexture = new Texture(mDevice, lSDC.Width, lSDC.Height, 0, Usage.None, lSDC.Format, Pool.Managed);
     
    mWorkingSurface = mWorkingTexture.GetSurfaceLevel(0);
    SurfaceLoader.FromSurface(mWorkingSurface, mBackbufferColor, Filter.None, 0);
     
    mDOF.SetValue("g_workingTexture", mWorkingTexture);
    mDOF.Technique = "RedPostProcess";
    numpasses = mDOF.Begin(0);
     
    for (int lPasse = 0; lPasse < numpasses; lPasse++)
    {
       mDOF.BeginPass(lPasse);
       mDevice.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);
       mDOF.EndPass();
    }
     
    mDOF.End();
    TextureLoader.Save("h:\\test" + lNumberOfFrame.ToString() + ".bmp", ImageFileFormat.Bmp, mWorkingTexture);
    Et là, je vois bien dans mes bmps de sortie que l'image est inchangée...

    Quelqu'un voit-il la méga bourde que je fais ?

    Merci et @+, alt3.

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Par défaut
    (c'est n'importe quoi ou vraiment trivial ?)
    (up déguisé )

  3. #3
    Membre éprouvé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2005
    Messages : 104
    Par défaut
    met les sources plutôt je suis un peu trop pris avec les shaders et les tests sur le NxEngine. Entre deux test je pourrais regarder

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Par défaut
    Ok, je te PM ce soir pour te filer un lien vers une archive, y'a quelques dll et un bon gros projet vs2005.

    Merci.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 132
    Par défaut
    (sinon, ce que j'ai posté ne suffit pas ?)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Euh, c'est normal que tu sauve la texture source, et non le contenu de la rendertarget ?

Discussions similaires

  1. Difference entre [Simple quote] & [Double quote]
    Par Invité dans le forum SQL
    Réponses: 3
    Dernier message: 24/07/2013, 12h24
  2. Probleme avec encodage de simple quote
    Par linkowich dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2005, 13h16

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