2016-07-19 3 views
0

Всякий раз, когда я преобразовывал старый код Dx11 в современный код Dx11, у меня возникали проблемы с D3DXMatrix, так как в документации было не очень понятно, как это преобразовать, так как вы собираетесь конвертировать D3DXMATRIX? -Answer НижеПроблема с конвертированием устарела D3DXMATRIX

+0

Несмотря на то, что здесь есть хороший вопрос, я думаю, что это требует некоторой работы, поскольку на самом деле нет заданного вопроса ... – jcoder

+0

Да ... Я никогда не отвечал на свой вопрос, прежде чем я не был на самом деле конечно, как отформатировать его ... Я отредактирую его, спасибо за отзыв –

+0

Извините, я просто видел, что MSDN действительно отсутствует запись в таблицах типов для D3DXMATRIX. Вероятно, он должен перечислить «XMFLOAT4X4» или «XMMATRIX» в зависимости от контекста. –

ответ

1

В принципе D3DXMATRIX устарел, вам вместо этого нужно использовать XMMATRIX, сначала вам нужно будет включить DirectXMath.h. Затем вам нужно будет использовать пространство имен DirectX. ОЧЕНЬ ВАЖНО, перед включением пространства имен убедитесь, что вы включили заголовок. Наконец, у вас могут возникнуть проблемы с XMMATRIX, потому что в некоторых случаях они не выравниваются должным образом, если это так, используйте DirectX :: CXMMATRIX, это позволит обеспечить правильное выравнивание. При этом вам должно быть хорошо идти.

+0

Возможно, вы захотите взглянуть на [SimpleMath] (https://github.com/Microsoft/DirectXTK/wiki/SimpleMath) в [DirectX Tool Kit] (https://github.com/Microsoft/DirectXTK) как это помогает сгладить жесткие требования к выравниванию '' XMMATRIX'' и необходимость явной загрузки/хранения '' XMFLOAT4X4'' из структур данных в DirectXMath. С помощью SimpleMath вы будете использовать '' DirectX :: SimpleMath :: Matrix''. –

Смежные вопросы