2013-05-02 66 views
1

我想使用矩陣堆棧來跟蹤分層模型中的變換。只有無賴,似乎沒有內置的矩陣堆棧類可以用來做到這一點。 Direct3D模板只是跟蹤模型,視圖和投影矩陣,然後將它們傳遞給頂點着色器。我是否必須在WP8 Direct3D應用程序中實現自己的矩陣堆棧?

渲染使得常量緩衝區:

CD3D11_BUFFER_DESC constantBufferDesc(sizeof(ModelViewProjectionConstantBuffer), D3D11_BIND_CONSTANT_BUFFER); 
DX::ThrowIfFailed(
    m_d3dDevice->CreateBuffer(
    &constantBufferDesc, 
    nullptr, 
    &m_constantBuffer) 
    ); 

頂點着色引擎將每個頂點:

cbuffer ModelViewProjectionConstantBuffer : register(b0) 
{ 
    matrix model; 
    matrix view; 
    matrix projection; 
}; 

... 
// Transform the vertex position into projected space. 
pos = mul(pos, model); 
pos = mul(pos, view); 
pos = mul(pos, projection); 
output.pos = pos; 
... 

我花了一些時間尋找一個內置的矩陣堆棧類,這樣我就不用重新發明輪子,但我得到的唯一有希望的主角the ID3DXMatrixStack似乎無法在WP8 Direct3D應用程序中訪問。

所以我錯過了什麼,或者我需要寫我自己的?

回答

1

你將需要自己寫。 ID3DXMatrixStack接口與Direct3D10一起發佈。

+0

好的,這不應該很難,但我希望避免這項工作。謝謝! – Nico 2013-05-03 01:35:19

相關問題