2015-12-22 92 views
1

我想讓我的邊界框在模型上呈現,但是我無法讓它們同時呈現。我把它縮小到它是一個持續的緩衝區問題,所以我已經將它們設置爲2個不同的插槽,例如DirectX 11多個常量緩衝區

的BoundingBox

//Constant Buffer Code! 
CONSTANT_BUFFER0 cb0_values; 

cb0_values.WorldViewProjection = (*world) * (*view) * (*proj); 

//Draw the buffer 
m_pImmediateContext->DrawIndexed(8, 0, 0); 

m_pImmediateContext->UpdateSubresource(m_pConstantBuffer1, 0, 0, &cb0_values, 0, 0); 
m_pImmediateContext->VSSetConstantBuffers(1, 1, &m_pConstantBuffer1); 

模型

m_pImmediateContext->UpdateSubresource(m_pConstantBuffer, 0, 0, &modelValues, 0, 0); 
m_pImmediateContext->VSSetConstantBuffers(0, 1, &m_pConstantBuffer); 

m_pImmediateContext->VSSetShader(m_pVShader, 0, 0); 
m_pImmediateContext->PSSetShader(m_pPShader, 0, 0); 
m_pImmediateContext->IASetInputLayout(m_pInputLayout); 

m_pImmediateContext->PSSetSamplers(0, 1, &m_pSampler0); 
m_pImmediateContext->PSSetShaderResources(0, 1, &m_pTexture0 

但是,這並不工作,只有模型正確顯示和我的立方體是無處可見,然而,如果我評論出模型繪製並做:

m_pImmediateContext->UpdateSubresource(m_pConstantBuffer1, 0, 0, &cb0_values, 0, 0); 
m_pImmediateContext->VSSetConstantBuffers(0, 1, &m_pConstantBuffer1); 

我可以看到我的立方體,但沒有模型(顯然),必須有一些簡單的概念我不抓住,但我不能解決它。

謝謝

回答

0

更牆用頭撞之後,我終於想通了,這是由於輸入的佈局和着色器得到在我的模型設定,但隨後沒有改回來,當它來再次渲染框。

TLDR - 的BoundingBox平局需要

UINT stride = sizeof(POS_COL_VERTEX); 
UINT offset = 0; 
m_pImmediateContext->IASetVertexBuffers(0, 1, &m_pVertexBuffer, &stride, &offset); 

//Constant Buffer Code! 
CONSTANT_BUFFER0 cb0_values; 

cb0_values.WorldViewProjection = (*world) * (*view) * (*proj); 

m_pImmediateContext->VSSetShader(m_pVertexShader, 0, 0); 
m_pImmediateContext->PSSetShader(m_pPixelShader, 0, 0); 
m_pImmediateContext->IASetInputLayout(m_pInputLayout);