bonjour j'utilise une application DX10 avec multisampling activé
mes sauvegardes du backbuffer me donnent un fichier de taille normale, emplit de noir, alors que l'application fonctionne bien à l'écran avec le multisampling activé
j'initialise mon application avec les DXUT
voila comment je m'y prends
donc je ne capture pas ce qu'il faut ou le converti mal de multisamplé vers un format normal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 // acquiert backbuffer ID3D10Resource* pBackbufferRes; const DXGI_SURFACE_DESC* pd3dsdBackBuffer = DXUTGetDXGIBackBufferSurfaceDesc(); // acquiert description du backbuffer DXUTGetD3D10RenderTargetView()->GetResource( &pBackbufferRes); // acquiert le contenu de la render target ID3D10Texture2D* pTexture; // texture de destination D3D10_TEXTURE2D_DESC texDesc; // descripteur de texture texDesc.ArraySize = 1; texDesc.BindFlags = 0; texDesc.CPUAccessFlags = 0; texDesc.Width = pd3dsdBackBuffer->Width; // largeur backbuffer texDesc.Height = pd3dsdBackBuffer->Height; // hauteur backbuffer texDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM_SRGB; texDesc.BindFlags = D3D10_BIND_RENDER_TARGET; texDesc.SampleDesc.Count = 1; texDesc.SampleDesc.Quality = 0; texDesc.MipLevels = 1; texDesc.MiscFlags = 0; texDesc.Usage = D3D10_USAGE_DEFAULT; V( pd3dDevice->CreateTexture2D( &texDesc, NULL, &pTexture) ); // créé texture de destination pd3dDevice->ResolveSubresource( pTexture, D3D10CalcSubresource( 0,0,1), pBackbufferRes, 0, DXGI_FORMAT_R8G8B8A8_UNORM_SRGB ); // copy texture multisampled V( D3DX10SaveTextureToFile( pTexture, D3DX10_IFF_DDS, nomfichier2 ) ); // sauve vers fichier dds
j 'ai essayé sans D3D10CalcSubresource(), idem
des idées ??
Partager