2011-08-02 86 views
3

我想使用多重採樣渲染紋理,然後使用紋理四元素將其渲染到後臺緩衝區(通過像素着色器傳遞)。一切正常,但沒有多重採樣,但我無法弄清楚如何設置它以使用多重採樣。D3D9使用多重採樣渲染到紋理

我試過CreateDepthStencilSurface(),但我真的不知道該如何處理該表面,或者如果達到甚至我應該做的。

請幫忙。

PS - 我使用DX9,Win32和C++

回答

3

你不能,不能直接反正。這裏是正規的解決方法:

  1. 創建多重採樣使用IDirect3DDevice9::CreateRenderTarget
  2. 渲染目標創建一個簡單的紋理
  3. 渲染到你的多重採樣渲染目標
  4. 使用IDirect3DDevice9::StretchRect您多次採樣內容的blit到表面之一的紋理
  5. 現在繼續按計劃使用該紋理。
+1

我會添加一個精度:* 2。使用與渲染目標相同的參數(寬度,高度,格式)創建一個簡單的紋理* –

0

- 創建一個渲染目標和DepthStencilSurface - 這些都必須具有相同的多采樣選項設置(同SampleDescription)

- 設置的DepthStencilSurface爲您DepthStencilView

-DepthStencilSurface必須至少有儘可能多的分辨率在渲染目標

-Highest SampleDescription制定最卡的支持,因爲今天是8個樣品和質量32

- 要在RenderTarget上使用DX9上的StretchRect和DX10上的ResolveSubresource DX11