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
et au niveau du shader
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 j'accède aux différentes textures ainsi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Texture2D shaderTextures[3];
et cela fonctionne à l'exécution avec un profil de compilation vs_4_0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fFinalColor = shaderTextures[0].Sample( samCube, input.Tex );
mais, j'ai une erreur de syntaxe lorsque je compile avec nvidia FXComposer
erreur que je n'ai pas avec FXC.exe ?!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Error Error: ID3DXEffectCompiler: Arrays must be either numeric, structure, string or shader
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
et que j'essaye d'accéder ainsi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Texture2DArray shaderTextures[3];
alors j'ai l'erreur suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 fFinalColor = shaderTextures[0].Sample( samCube, input.Tex );
des exemples pour accéder aux membres d'un tableau de textures dans le shader ?
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'
Texture2DArray est il la bonne solution à mon problème ?
Quelle est donc la syntaxe à utiliser ?
merci d'avance
Partager