Avec Direct3D j'ai trouvé que vous pouvez appeler GetRenderTargetData du dispositif de D3D pour vous permettre d'accéder aux octets d'images brutes que vous pouvez copier dans les filtres de l'image source tampon
Voici un exemple de code de la façon d'obtenir le D3D rendre
void CaptureRenderTarget(IDirect3DDevice9* pdev)
{
IDirect3DSurface9* pTargetSurface=NULL;
HRESULT hr=pdev->GetRenderTarget(0,&pTargetSurface);
if(SUCCEEDED(hr))
{
D3DSURFACE_DESC desc;
hr=pTargetSurface->GetDesc(&desc);
if(SUCCEEDED(hr))
{
IDirect3DTexture9* pTempTexture=NULL;
hr=pdev->CreateTexture(desc.Width,desc.Height,1,0,desc.Format,D3DPOOL_SYSTEMMEM,&pTempTexture,NULL);
if(SUCCEEDED(hr))
{
IDirect3DSurface9* pTempSurface=NULL;
hr=pTempTexture->GetSurfaceLevel(0,&pTempSurface);
if(SUCCEEDED(hr))
{
hr=pdev->GetRenderTargetData(pTargetSurface,pTempSurface);
if(SUCCEEDED(hr))
{
//D3DXSaveTextureToFile(L"Output.png",D3DXIFF_PNG,pTempTexture,NULL);
D3DLOCKED_RECT data;
hr=pTempTexture->LockRect(0, &data, NULL, 0);
if(SUCCEEDED(hr))
{
BYTE *d3dPixels = (BYTE*)data.pBits;
}
pTempTexture->UnlockRect(0);
}
pTempSurface->Release();
}
pTempTexture->Release();
}
}
pTargetSurface->Release();
}
}
possible en double de [comment-rendre-Direct3D-in-a-directShow-source-filtre] (http://stackoverflow.com/questions/ 2985319/how-to-render-direct3d-dans-un-directhow-source-filter) et [Comment sur jeter des graphiques 3d sur le dessus de la webcam en direct en direct] (http://stackoverflow.com/questions/2981497/how-to-overlay-3d-graphics-on-top-of-webcam-feed-live) –
Kirill, ce post est similaire mais ce n'est pas un doublon. La question est plus générale –
Je suppose que la bonne idée serait d'éditer votre autre question qui n'a toujours pas de réponse acceptée. –