我想使用矩阵堆栈来跟踪分层模型中的变换。只有无赖,似乎没有内置的矩阵堆栈类我可以用它来做到这一点。 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应用程序。
我错过了什么,或者我需要自己编写?
答案 0 :(得分:1)
你需要自己编写。 ID3DXMatrixStack界面与Direct3D10一起推出。