D3D9 Рендеринг в текстуру с мультисэмплингом - PullRequest
3 голосов
/ 02 августа 2011

Я хочу сделать рендеринг в текстуру с использованием мультисэмплинга, а затем сделать рендеринг в задний буфер с использованием текстурированного квадрата (пропуская его через пиксельный шейдер.) до использования мультисэмплинга.

Я пробовал CreateDepthStencilSurface (), но я действительно не знаю, что делать с этой поверхностью, или если Тат даже то, что я должен делать.

Пожалуйста, помогите.

PS - я использую DX9, Win32 и C ++

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

Вы не можете, во всяком случае, не напрямую.Вот обычный обходной путь:

  1. Создайте цель рендеринга мультисэмпла, используя IDirect3DDevice9 :: CreateRenderTarget
  2. Создайте простую текстуру
  3. Отдайте на своймультисэмплерный объект рендеринга
  4. Используйте IDirect3DDevice9 :: StretchRect , чтобы разбить мультисэмплированный контент на одну из поверхностей вашей текстуры
  5. Теперь перейдите к использованию этой текстуры, как и планировалось.
0 голосов
/ 19 апреля 2013

-Создать RenderTarget и DepthStencilSurface - для них должны быть установлены одинаковые параметры мультисэмплинга (то же SampleDescription)

-Установить DepthStencilSurface в качестве вашего DepthStencilView

-DepthStencilSurface должен иметь как минимум такое же разрешениев качестве RenderTarget

-Highhest SampleDescription-настройка поддержки большинства карт на сегодняшний день составляет 8 образцов и качество 32

-Для Blit RenderTarget используется StretchRect на DX9 и ResolveSubresource на DX10 и DX11

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...