[DX10] Texture2DArray ERROR #354
Verfasst: 08.05.2010, 10:10
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:
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:
Hier ein Auszug aus meinem Shader:
Vielen Dank schon mal im Vorraus :D
,MfG Alc
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 ]
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);
...
}
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);
}
}
,MfG Alc