Как мне создать вид трафарета глубины?

#c# #directx-11 #sharpdx #direct3d11 #depth-testing

#c# #directx-11 #sharpdx #direct3d11 #тестирование глубины

Вопрос:

Я нахожусь в процессе разработки игры SharpDX и не могу понять, как создать вид трафарета глубины. Честно говоря, я тоже толком не знаю, что это такое. Я искал везде, где мог найти в Интернете, и все, что я делаю, заканчивается черным экраном.

Может кто-нибудь сказать мне, как создать вид трафарета глубины или указать мне способ, который не дает мне черного экрана?

Редактировать: Я переписал код и не знаю, что я сделал, но теперь это работает.

Комментарии:

1. Вы смотрели на этот поток ?

2. да, @ ChuckWalbourn у меня есть

Ответ №1:

DepthStencilView фактически является указателем на буфер / изображение, в котором хранится глубина / трафарет.

Здесь вам не хватает понятий.

Сначала создайте 2D-изображение (текстуру) с помощью D3D11_BIND_DEPTH_STENCIL BindFlags и формата изображения глубины / трафарета (обычно DXGI_FORMAT_D24_UNORM_S8_UINT используется).

Как только у вас будет 2D-текстура D3D11, которую можно привязать как выходные данные DepthStencil, вы можете создать представление ресурса, а затем привязать его к объединению выходных данных ( ID3D11DeviceContext::OMSetRenderTargets (...) ).

Комментарии:

1. Также убедитесь, что разрешение буфера глубины / трафарета такое же, как у ваших целевых объектов рендеринга (возможно, обратного буфера swapchain).