Я добавляю поддержку dx11 и столкнулся с некоторыми проблемами. Он хорошо визуализируется без буфера глубины, но когда я его прикрепляю, мой треугольник скрывается, и я вижу только пустой экран. В отладчике треугольник отображается на глубине 0,5. Это не должно быть выбраковано. Но это видно в конвейере. Мин. / Максимальная глубина области просмотра 0/1, глубина присоединена и очищена. Я не знаю, почему у меня просто пустой очищенный экран.
device_->CreateRenderTargetView(pBackBuffer, NULL, &backbuffer_);
pBackBuffer->Release();
unsigned int width, height;
window_->getWindowSize(width, height);
D3D11_TEXTURE2D_DESC depth_stencil_desc;
depth_stencil_desc.Width = width;
depth_stencil_desc.Height = height;
depth_stencil_desc.MipLevels = 1;
depth_stencil_desc.ArraySize = 1;
depth_stencil_desc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
depth_stencil_desc.SampleDesc.Count = 1;
depth_stencil_desc.SampleDesc.Quality = 0;
depth_stencil_desc.Usage = D3D11_USAGE_DEFAULT;
depth_stencil_desc.BindFlags = D3D11_BIND_DEPTH_STENCIL;
depth_stencil_desc.CPUAccessFlags = 0;
depth_stencil_desc.MiscFlags = 0;
//Create the Depth/Stencil View
if (device_->CreateTexture2D(&depth_stencil_desc, NULL, &depth_stencil_buffer_) < 0)
throw std::runtime_error("DirectX: Could not CreateTexture2D!");
if (device_->CreateDepthStencilView(depth_stencil_buffer_, NULL, &depth_stencil_view_) < 0)
throw std::runtime_error("DirectX: Could not CreateDepthStencilView!");
// set the render target as the back buffer
device_context_->OMSetRenderTargets(1, &backbuffer_, depth_stencil_view_);
D3D11_VIEWPORT viewport;
ZeroMemory(&viewport, sizeof(D3D11_VIEWPORT));
viewport.TopLeftX = 0;
viewport.TopLeftY = 0;
viewport.Width = 800;
viewport.Height = 600;
viewport.MinDepth = 0.0f;
viewport.MaxDepth = 1.0f;
device_context_->RSSetViewports(1, &viewport);
// Loop {
// Bind shader
float col[4] = { 0.0f, 0.2f, 0.4f, 1.0f };
device_context_->ClearRenderTargetView(backbuffer_, col);
device_context_->ClearDepthStencilView(depth_stencil_view_, D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0);
// Bind vertex buffer, constant buffer, texture
device_context_->IASetPrimitiveTopology(D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
device_context_->Draw(count, base);
swap_chain_->Present(0, 0);
// End Loop
РЕДАКТИРОВАТЬ: