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 :

HLSL : Texture2D et Texture2DArray [DirectX 10]


Sujet :

DirectX

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut HLSL : Texture2D et Texture2DArray
    bonjour,
    j'ai écrit un shader HLSL avec DX10 dans lequel j'essaye d'utiliser un tableau de textures que je passe comme paramètre au shader

    je déclare la variable concernant le tableau de textures ainsi au niveau de mon code ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ID3D10EffectShaderResourceVariable* g_pTexArrayPtr_SV;
    g_pTexArrayPtr_SV =  g_pMeshEffect->GetVariableByName( "shaderTextures")->AsShaderResource();
    et au niveau du shader
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Texture2D shaderTextures[3];
    et j'accède aux différentes textures ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fFinalColor = shaderTextures[0].Sample( samCube, input.Tex );
    et cela fonctionne à l'exécution avec un profil de compilation vs_4_0



    mais, j'ai une erreur de syntaxe lorsque je compile avec nvidia FXComposer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Error Error:  ID3DXEffectCompiler: Arrays must be either numeric, structure, string or shader
    erreur que je n'ai pas avec FXC.exe ?!

    je souhaite donc utiliser un objet Texture2DArray, pour accéder aux diverses textures de mon tableau,
    mais je n'arrive pas à trouver la syntaxe correcte pour déclarer le tableau et accéder ensuite aux textures

    si je déclare mon tableau ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Texture2DArray shaderTextures[3];
    et que j'essaye d'accéder ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    fFinalColor = shaderTextures[0].Sample( samCube, input.Tex );
    alors j'ai l'erreur suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Error Error:  error X3017: 'Sample': cannot implicitly convert from 'float2' to 'const float3'
    des exemples pour accéder aux membres d'un tableau de textures dans le shader ?
    Texture2DArray est il la bonne solution à mon problème ?
    Quelle est donc la syntaxe à utiliser ?

    merci d'avance

  2. #2
    Membre extrêmement actif

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 408
    Par défaut
    c'est Texture2DArray shaderTextures;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Mars 2006
    Messages : 143
    Par défaut
    ok, merci

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

Discussions similaires

  1. [DirectX - C# - HLSL] Les problèmes d'Ingham
    Par Ingham dans le forum DirectX
    Réponses: 67
    Dernier message: 10/05/2007, 18h42
  2. HLSL, Rajout d'une variable globale.
    Par alt3 dans le forum DirectX
    Réponses: 23
    Dernier message: 29/03/2007, 21h25
  3. [DX9 - HLSL] Questions sur les EffectPool
    Par funkydata dans le forum DirectX
    Réponses: 5
    Dernier message: 27/03/2007, 11h12
  4. [DirectX Managed - HLSL] Pb rendu Cel Shading.
    Par CritikKiller dans le forum DirectX
    Réponses: 2
    Dernier message: 12/03/2007, 22h10
  5. [HLSL][C++] Lecture du Depth Buffer dans un PS3.0
    Par xterminhate dans le forum DirectX
    Réponses: 6
    Dernier message: 26/09/2006, 00h34

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