Précédent   Forum des professionnels en informatique > Applications > Développement 2D, 3D et Jeux > API graphiques > DirectX
DirectX Forum d'entraide sur le développement avec DirectX. Avant de poster -> FAQ DirectX
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/11/2011, 09h23   #1
Membre régulier
 
Inscription : mars 2006
Messages : 141
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mars 2006
Messages : 141
Points : 74
Points : 74
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 :
1
2
3
 
ID3D10EffectShaderResourceVariable* g_pTexArrayPtr_SV;
g_pTexArrayPtr_SV =  g_pMeshEffect->GetVariableByName( "shaderTextures")->AsShaderResource();
et au niveau du shader
Code :
1
2
 
Texture2D shaderTextures[3];
et j'accède aux différentes textures ainsi

Code :
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 :
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 :
1
2
 
Texture2DArray shaderTextures[3];
et que j'essaye d'accéder ainsi
Code :
1
2
 
fFinalColor = shaderTextures[0].Sample( samCube, input.Tex );
alors j'ai l'erreur suivante
Code :
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
korsakoff69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 12h42   #2
Membre Expert
 
Inscription : février 2006
Messages : 1 396
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 1 396
Points : 2 083
Points : 2 083
c'est Texture2DArray shaderTextures;
stardeath est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 19h54   #3
Membre régulier
 
Inscription : mars 2006
Messages : 141
Détails du profil
Informations personnelles :
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : mars 2006
Messages : 141
Points : 74
Points : 74
ok, merci
korsakoff69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h38.


 
 
 
 
Partenaires

Hébergement Web