gpt4 book ai didi

c++ - 如何在 DirectX11 上简化矩阵乘法?

转载 作者:行者123 更新时间:2023-11-28 06:33:39 27 4
gpt4 key购买 nike

我可以简化以下语句以使其更易于阅读吗?我可以根据对齐要求逐步执行以下乘法吗?

DirectX::XMStoreFloat4x4(&this->worldTransform, DirectX::XMMatrixMultiply(DirectX::XMMatrixMultiply(DirectX::XMMatrixScalingFromVector(DirectX::XMLoadFloat4(&this->scaling)), DirectX::XMMatrixRotationQuaternion(DirectX::XMLoadFloat4(&this->rotation))), DirectX::XMMatrixTranslationFromVector(DirectX::XMLoadFloat4(&this->translation))));

最佳答案

使用 XMVECTORXMMATRIX 局部变量。生成的代码在优化构建中应该是相同的。

XMVECTOR vTrans = DirectX::XMLoadFloat4(&this->translation);
XMMATRIX mTrans = DirectX::XMMatrixTranslationFromVector(vTrans);
XMVECTOR vScale = DirectX::XMLoadFloat4(&this->scaling);
XMMATRIX mScale = DirectX::XMMatrixScalingFromVector(vScale);
XMVECTOR vRot = DirectX::XMLoadFloat4(&this->rotation);
XMMATRIX mRot = DirectX::XMMatrixRotationQuaternion(rot);
XMMATRIX mTemp = DirectX::XMMatrixMultiply(mScale, mRot);
mTemp = DirectX::XMMatrixMultiply(mTemp, mTrans);
DirectX::XMStoreFloat4x4(&this->worldTransform, mTemp);

关于c++ - 如何在 DirectX11 上简化矩阵乘法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27135615/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com