2016-07-19 5 views
0

Wann immer ich alten Dx11-Code in den aktuellen Dx11-Code umwandelte, hatte ich Probleme mit D3DXMatrix, da die Dokumentation nicht sehr klar war, wie man das konvertiert, also wie gehst du zum Konvertieren eines D3DXMATRIX? -Answer BelowProblem mit der Konvertierung von veralteten D3DXMATRIX

+0

Obwohl es hier eine gute Frage gibt, denke ich, dass dies etwas Arbeit braucht, da es nicht wirklich eine Frage gibt ... – jcoder

+0

Yeah .... Ich hatte meine eigene Frage nie zuvor beantwortet, also war ich nicht wirklich sicher, wie man es formatiert ... Ich werde es bearbeiten, danke für das Feedback –

+0

Sorry, ich habe gerade gesehen, dass MSDN tatsächlich einen Eintrag in den Typ Tabellen für D3DXMATRIX fehlt. Es sollte wahrscheinlich "XMFLOAT4X4" oder "XMMATRIX" je nach Kontext auflisten. –

Antwort

1

Grundsätzlich D3DXMATRIX ist veraltet, Sie müssen stattdessen eine XMMATRIX verwenden, zuerst müssen Sie DirectXMath.h enthalten. Als Nächstes müssen Sie den DirectX-Namespace verwenden. SEHR WICHTIG, stellen Sie sicher, dass Sie die Kopfzeile zuerst einfügen, bevor Sie den Namespace einschließen. Schließlich haben Sie möglicherweise Probleme mit der Verwendung von XMMATRIX, da es in einigen Fällen nicht richtig ausgerichtet ist. Wenn dies der Fall ist, verwenden Sie DirectX :: CXMMATRIX. Dies ermöglicht eine ordnungsgemäße Ausrichtung. Damit solltest du gut gehen können.

+0

Vielleicht möchten Sie [SimpleMath] (https://github.com/Microsoft/DirectXTK/wiki/SimpleMath) im [DirectX Tool Kit] (https://github.com/Microsoft/DirectXTK) als betrachten Dies hilft, die strengen Ausrichtungsanforderungen von "XMMATRIX" und die Notwendigkeit, XMFLOAT4X4-Typen aus Datenstrukturen in DirectXMath explizit zu laden/speichern, zu glätten. Mit SimpleMath würden Sie '' DirectX :: SimpleMath :: Matrix'' verwenden. –

Verwandte Themen