2010-06-07 65 views
1

我想要從direct3d應用程序輸出的圖像的原始圖像數據(如指向字節數組或類似的東西),而不實際將其渲染到顯示器。獲取Direct3d渲染流的圖像數據

我需要做的,這樣我可以呈現的Direct3D作爲一個DirectShow源過濾

Visual Studio 2008的C++

回答

1

創建一個表面,你要去渲染爲IDirect3DSurface9一個實例。將其設置爲IDirect3DDevice9::SetRenderTarget的渲染目標。

+0

所以簡而言之,我會在初始化中調用setrendertarget,然後在每個幀被渲染之後。 LockRect獲得一個D3DLOCKED_RECT,它將爲我提供一個指向圖像字節的指針?這是簡單的嗎? – 2010-06-07 20:49:22

+0

哦,並調用setrendertarget將阻止它呈現在屏幕上,是嗎? – 2010-06-07 20:51:29

0

您也可以鎖定後臺緩衝區。

+0

我對d3d不是很熟悉。如何鎖定後臺緩衝區以獲取像素數據? – 2010-06-08 02:34:00

+0

http://msdn.microsoft.com/en-us/library/bb174379(v=VS.85).aspx http://msdn.microsoft.com/en-us/library/bb205896(v=VS。 85)的.aspx – Puppy 2010-06-08 10:47:27