Hallo zusammen.
ich habe ein Problem bei der Umstellung von PS_2_0/a auf PS_3_0 mit meinen Postprocessing Pixelshadern und komme einfach nicht dahinter warum es mit PS_3_0 nicht funktioniert.
(Meine Hardware hat defintiv PS_3_0, da ich zum rendern der Geometrie .fx files verwende. Für das Postprocessing schien mir das aber ein bischen "too much")
Vielleicht hat hier jemand eine Idee... vielleicht sehe ich auch einfach den Wald vor lauter Bäumen nicht mehr
Kreieren des Shaders:
hr = D3DXCompileShaderFromFile( buffer, NULL, NULL, "main", "ps_2_a",dwShaderFlags, &pCode,&pBufferErrors, &g_pConstantTablePS );
//mit "ps_3_0" wird das Quad gar nicht mehr gerendert, ich sehe nur noch die Hintergrundfarbe vom d3ddevice->Clear
if( FAILED(hr) ) { hier kommt er nicht an }
g_pd3dDevice->CreatePixelShader( (DWORD*)pCode->GetBufferPointer(),&g_pPixelShader);
Der Aufruf zum Rendern:
g_pd3dDevice->SetVertexShader(NULL);
g_pd3dDevice->SetPixelShader(g_pPixelShader);
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
g_pd3dDevice->SetPixelShader(NULL);
Der Pixelshader: (ein "identity" shader zum testen)
sampler2D input: register(s0);
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 Color;
Color = tex2D(input, uv.xy);
return Color;
}
Danke Euch!
ich habe ein Problem bei der Umstellung von PS_2_0/a auf PS_3_0 mit meinen Postprocessing Pixelshadern und komme einfach nicht dahinter warum es mit PS_3_0 nicht funktioniert.
(Meine Hardware hat defintiv PS_3_0, da ich zum rendern der Geometrie .fx files verwende. Für das Postprocessing schien mir das aber ein bischen "too much")
Vielleicht hat hier jemand eine Idee... vielleicht sehe ich auch einfach den Wald vor lauter Bäumen nicht mehr
Kreieren des Shaders:
hr = D3DXCompileShaderFromFile( buffer, NULL, NULL, "main", "ps_2_a",dwShaderFlags, &pCode,&pBufferErrors, &g_pConstantTablePS );
//mit "ps_3_0" wird das Quad gar nicht mehr gerendert, ich sehe nur noch die Hintergrundfarbe vom d3ddevice->Clear
if( FAILED(hr) ) { hier kommt er nicht an }
g_pd3dDevice->CreatePixelShader( (DWORD*)pCode->GetBufferPointer(),&g_pPixelShader);
Der Aufruf zum Rendern:
g_pd3dDevice->SetVertexShader(NULL);
g_pd3dDevice->SetPixelShader(g_pPixelShader);
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 );
g_pd3dDevice->SetPixelShader(NULL);
Der Pixelshader: (ein "identity" shader zum testen)
sampler2D input: register(s0);
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 Color;
Color = tex2D(input, uv.xy);
return Color;
}
Danke Euch!