habe folgendes Problem:
Immer wenn ich Screenshots aus (Render to Texture) machen will kommt nur schwarzes Bild.
Ich Render meine Wolken in eine extra RenderTarget Texture 128x128pixel was auch funktioniert ohne Probleme, nur das GetResource wohl nix liefert?
Der Zweck ist: die Pixeldaten auslesen und checken wo die sonne durch Wolken verdeckt ist und wo nicht. (siehe weiter unten Bild)
Code: Alles auswählen
m_pRenderTV->GetResource( &pScreen2 ); // (ID3D10RenderTargetView)
//m_pSRView->GetResource( &pScreen2 ); // (ID3D10ShaderResourceView) geht auch net
D3D10_TEXTURE2D_DESC texDesc5;
texDesc5.ArraySize = 1;
texDesc5.BindFlags = 0;
texDesc5.CPUAccessFlags = 0;
texDesc5.Usage = D3D10_USAGE_DEFAULT;
texDesc5.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
texDesc5.Width = m_Viewport.Width;
texDesc5.Height = m_Viewport.Height;
texDesc5.MipLevels = 1;
texDesc5.MiscFlags = 0;
texDesc5.SampleDesc.Count = 1;
texDesc5.SampleDesc.Quality = 0;
ID3D10Texture2D *texture3 = 0;
if ( FAILED( g_pDevice->CreateTexture2D( &texDesc5, 0, &texture3 ) ) ) {
writeProtocol("CreateTexture2D FAILED!!!", "a+");
}
g_pDevice->CopyResource( texture3, pScreen2 );
if ( FAILED( D3DX10SaveTextureToFileA(texture3, D3DX10_IFF_JPG, "test.jpg") ) ) {
writeProtocol("D3DX10SaveTextureToFileA FAILED!!!", "a+");
} else {
writeProtocol("D3DX10SaveTextureToFileA OK", "a+");
}
SAFE_RELEASE(m_pSRView2);
D3DX10_IMAGE_LOAD_INFO loadinfo;
if ( FAILED( D3DX10CreateShaderResourceViewFromFileA(g_pDevice, "test.jpg", &loadinfo, NULL, &m_pSRView2, NULL) ) ) {
writeProtocol("D3DX10CreateShaderResourceViewFromFileA FAILED!!!", "a+");
} else {
writeProtocol("D3DX10CreateShaderResourceViewFromFileA OK", "a+");
}