нибудь знает как на d3d9 отрендерить глубину в текстуру?
Вроде должно так прокатить: 1) Создать текстуру IDirect3DDevice9::CreateTexture с D3DUSAGE_DEPTHSTENCIL и соответствующим форматом глубины 2) Достать из-под неё surface через IDirect3DTexture9::GetSurfaceLevel 3) Забиндить вот этим методом, в качестве активного буфера глубины IDirect3DDevice9::SetDepthStencilSurface 4) Потом отрендерить сцену 5) И потом можно уже читать через IDirect3DDevice9::SetRenderTarget
самое простое - рендерить в бекбуфер, затем копировать. Другой вариант - кодировать глубину в RGBA8. И третий вариант, который вроде не везде поддерживался - создать текстуру D3DFMT_D16 или D3DFMT_D24X8 формата с usage = D3DUSAGE_DEPTHSTENCIL | D3DUSAGE_RENDERTARGET в pool = D3DPOOL_DEFAULT и рендерить в неё.
Обсуждают сегодня