#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).