• Advertisement

RudiMedia

Member
  • Content count

    5
  • Joined

  • Last visited

Community Reputation

117 Neutral

About RudiMedia

  • Rank
    Newbie
  1. Just a quick question, is it possible to bind the depth buffer to a shader resource view with FEATURE_LEVEL_9_3?   Because I constantly get an error, if I use both D3D11_BIND_DEPTH_STENCIL and D3D11_BIND_SHADER_RESOURCE as flags. CD3D11_TEXTURE2D_DESC depthStencilDesc(DXGI_FORMAT_D24_UNORM_S8_UINT, static_cast<UINT>(m_renderTargetSize.Width), static_cast<UINT>(m_renderTargetSize.Height), 1, 1, D3D11_BIND_DEPTH_STENCIL | D3D11_BIND_SHADER_RESOURCE); ComPtr<ID3D11Texture2D> depthStencil; DX::ThrowIfFailed(m_d3dDevice->CreateTexture2D(&depthStencilDesc, nullptr, &depthStencil));   //Edit: Found my mistake, the format has to be DXGI_FORMAT_R24G8_TYPELESS
  2. [quote name='kauna' timestamp='1335874932' post='4936398'] - by any chance, are you using a multisampled back buffer? if so, AFAIK, the depth buffer has to be multisampled too [/quote] Hey thank you that was my problem [img]http://public.gamedev.net//public/style_emoticons/default/biggrin.png[/img]
  3. Well [b]OMSetDepthStencilState[/b] doesn't return a [b]HRESULT[/b] value, which is why I don't update my result variable at this place. Regarding d3d debugging I have actually no experience at all. I'm currently using the VS11 beta and heard that such a feature is already built-in but it seems like you're only able to use it if you have Windows 8 installed. Is there any other way to debug your d3d applications?
  4. Sadly, that doesn't solve the problem.
  5. Hello everyone, I have this problem with my depth buffer and all the solutions from the countless other threads with this problem do not seem to work for me. [url="http://imageshack.us/photo/my-images/853/problemzt.png/"][img]http://img853.imageshack.us/img853/752/problemzt.png[/img][/url] I use the same code as shown here: [url="http://www.rastertek.com/dx11tut03.html"]http://www.rastertek.../dx11tut03.html[/url] [i]Global Variables:[/i] [CODE] extern ID3D11Device* pDevice; extern ID3D11DeviceContext* pDevCon; extern ID3D11RenderTargetView* pRenderTargetView; extern ID3D11DepthStencilState* pDepthStencilState; extern ID3D11DepthStencilView* pDepthStencilView; extern ID3D11Texture2D* pDepthStencilBuffer; extern ID3D11RasterizerState* pRasterState; [/CODE] [i]Direct3D initialisation:[/i] [CODE] HRESULT result; D3D11_TEXTURE2D_DESC depthBufferDesc; depthBufferDesc.Width = Width; depthBufferDesc.Height = Height; depthBufferDesc.MipLevels = 1; depthBufferDesc.ArraySize = 1; depthBufferDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; depthBufferDesc.SampleDesc.Count = 1; depthBufferDesc.SampleDesc.Quality = 0; depthBufferDesc.Usage = D3D11_USAGE_DEFAULT; depthBufferDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL; depthBufferDesc.CPUAccessFlags = 0; depthBufferDesc.MiscFlags = 0; result = pDevice->CreateTexture2D(&depthBufferDesc, NULL, &pDepthStencilBuffer); if(FAILED(result)) { MessageBox(NULL, L"Error1", L"Error", MB_OK | MB_ICONERROR); } D3D11_DEPTH_STENCIL_DESC depthStencilDesc; ZeroMemory(&depthStencilDesc, sizeof(D3D11_DEPTH_STENCIL_DESC)); // Depth test parameters depthStencilDesc.DepthEnable = true; depthStencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; depthStencilDesc.DepthFunc = D3D11_COMPARISON_LESS; // Stencil test parameters depthStencilDesc.StencilEnable = true; depthStencilDesc.StencilReadMask = 0xFF; depthStencilDesc.StencilWriteMask = 0xFF; // Stencil operations if pixel is front-facing depthStencilDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; depthStencilDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_INCR; depthStencilDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; depthStencilDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS; // Stencil operations if pixel is back-facing. depthStencilDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; depthStencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_DECR; depthStencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; depthStencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS; result = pDevice->CreateDepthStencilState(&depthStencilDesc, &pDepthStencilState); pDevCon->OMSetDepthStencilState(pDepthStencilState, 1); if(FAILED(result)) { MessageBox(NULL, L"Error2", L"Error", MB_OK | MB_ICONERROR); } D3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc; ZeroMemory(&depthStencilViewDesc, sizeof(D3D11_DEPTH_STENCIL_VIEW_DESC)); depthStencilViewDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT; depthStencilViewDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; depthStencilViewDesc.Texture2D.MipSlice = 0; result = pDevice->CreateDepthStencilView(pDepthStencilBuffer, &depthStencilViewDesc, &pDepthStencilView); pDevCon->OMSetRenderTargets(1, &pRenderTargetView, pDepthStencilView); if(FAILED(result)) { MessageBox(NULL, L"Error3", L"Error", MB_OK | MB_ICONERROR); } D3D11_RASTERIZER_DESC rasterDesc; rasterDesc.AntialiasedLineEnable = false; rasterDesc.CullMode = D3D11_CULL_BACK; rasterDesc.DepthBias = 0; rasterDesc.DepthBiasClamp = 0.0f; rasterDesc.DepthClipEnable = true; rasterDesc.FillMode = D3D11_FILL_SOLID; rasterDesc.FrontCounterClockwise = false; rasterDesc.MultisampleEnable = false; rasterDesc.ScissorEnable = false; rasterDesc.SlopeScaledDepthBias = 0.0f; result = pDevice->CreateRasterizerState(&rasterDesc, &pRasterState); pDevCon->RSSetState(pRasterState); if(FAILED(result)) { MessageBox(NULL, L"Error4", L"Error", MB_OK | MB_ICONERROR); } D3D11_VIEWPORT viewport; ZeroMemory(&viewport, sizeof(D3D11_VIEWPORT)); viewport.TopLeftX = 0; viewport.TopLeftY = 0; viewport.Width = Width; viewport.Height = Height; viewport.MinDepth = 0.0f; viewport.MaxDepth = 1.0f; pDevCon->RSSetViewports(1, &viewport); [/CODE] [i]Camera Code:[/i] [CODE] m_pV3Pos = &Position; m_pV3LookAt = &LookAt; m_pV3View = (D3DXVECTOR3*)malloc(sizeof(D3DXVECTOR3)); m_pV3Up = (D3DXVECTOR3*)malloc(sizeof(D3DXVECTOR3)); *m_pV3View = *m_pV3Pos - *m_pV3LookAt; D3DXVec3Normalize(m_pV3View, m_pV3View); D3DXVec3Cross(m_pV3Up, &D3DXVECTOR3(0,1,0), m_pV3View); D3DXVec3Cross(m_pV3Up, m_pV3View, m_pV3Up); m_pMatView = (D3DXMATRIX*)malloc(sizeof(D3DXMATRIX)); m_pMatProj = (D3DXMATRIX*)malloc(sizeof(D3DXMATRIX)); D3DXVec3Normalize(m_pV3Up, m_pV3Up); D3DXMatrixLookAtLH(m_pMatView, m_pV3Pos, m_pV3LookAt, m_pV3Up); D3DXMatrixPerspectiveFovLH(m_pMatProj, FOV, (float)Width/Height, 1.0f, 1000.0f); [/CODE] [i]Draw Code:[/i] [CODE] D3DXCOLOR bgColor( 0, 0.2f, 0.4f, 1.0f ); pDevCon->ClearRenderTargetView(pRenderTargetView, bgColor); pDevCon->ClearDepthStencilView(pDepthStencilView, D3D11_CLEAR_DEPTH|D3D11_CLEAR_STENCIL, 1.0f, 0); model->Draw(); pSwapChain->Present(0, 0); [/CODE] I realy have no ideas left so if anyone could help me with this issue I would be most grateful [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]
  • Advertisement