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