Seite 1 von 1

[DX10] Texture2DArray ERROR #354

Verfasst: 08.05.2010, 10:10
von AlClemento
Hallo ZFX'ler!

Ich brauche wieder einmal eure Hilfe. Und zwar habe ich nun (zwecks ShadowMapping) in meinem Shader ein Texture2DArray angelegt. Zurzeit hat das Array nur eine Dimension von 1. Das Ergebnis ist genau so, wie es sein sollte (also wenn ich alles mit Texture2D mache - also ohne Arrays). ABER ich bekomme folgende Meldung:

Code: Alles auswählen

D3D10: ERROR: ID3D10Device::Draw: The view dimension declared in the shader code does not match the view type bound to slot 1 of the Pixel Shader unit. [ EXECUTION ERROR #354: DEVICE_DRAW_VIEW_DIMENSION_MISMATCH ]
Da die nicht schön ist, kann man sich vorstellen - vorallem da es jeden Frame kommt. Googeln nach der Fehlermeldung half mir leider nicht :( Deswegen Post ichs mal hier.

Hier mal ein Auszug aus meinem C++ Programm:

Code: Alles auswählen

ID3D10ShaderResourceView* peSMSRV_D[1] = {NULL}; 
...
peSmMapEVar = peNTShader->GetVariableByName("SmMap")->AsShaderResource();
....

Render() {
  ...
  peSmMapEVar->SetResourceArray(peSMSRV_D,0,1);
  ...
}
Hier ein Auszug aus meinem Shader:

Code: Alles auswählen

Texture2DArray SmMap;
const int smMapCount = 1;

SamplerState DecalSampler
{
   Filter = MIN_MAG_MIP_LINEAR;
   AddressU = Wrap;
   AddressV = Wrap;
};

....

PS() {
   int i;
   for(i=0; i < smMapCount; i++) {
        float3 smtex;
	smtex.x = (smkoord.x+1)/2;
	smtex.y = (smkoord.y-1)/-2;
	smtex.z = (float)(i+1);
	float smD = SmMap.Sample(DecalSampler, smtex);
   }
}
Vielen Dank schon mal im Vorraus :D

,MfG Alc

Re: [DX10] Texture2DArray ERROR #354

Verfasst: 14.05.2010, 12:26
von keepcoding
Weshalb benutzt du SetResourceArray? SetResource sollte reichen.
Ausserdem: Erstellst du eine Shader-Resource-View von deinem Texturarray und setzt dieses auch korrekt? So wie es aussieht setzt du nämlich NULL als Resource...

Re: [DX10] Texture2DArray ERROR #354

Verfasst: 23.05.2010, 22:58
von AlClemento
Danke, ich hab da was grundlegen falsch Verstanden :D -> ich senke mein Haupt in Schande :)