我使用以下代码构建了一个广告牌矩阵:

    XMFLOAT4X4 translationMatrix = XMFLOAT4X4();
    translationMatrix._11 = right.x;    translationMatrix._21 = up.x;   translationMatrix._31 = look.x; translationMatrix._41 = worldposition.x;
    translationMatrix._12 = right.y;    translationMatrix._22 = up.y;   translationMatrix._32 = look.y; translationMatrix._42 = worldposition.y;
    translationMatrix._13 = right.z;    translationMatrix._23 = up.z;   translationMatrix._33 = look.z; translationMatrix._43 = worldposition.z;
    translationMatrix._14 = 0;          translationMatrix._24 = 0;   translationMatrix._34 = 0;    translationMatrix._44 = 1;


并且这可以正常工作,但是我希望广告牌具有可伸缩性,由于矩阵完全是矢量,因此不是固有可伸缩性,我如何实现这一目标?

尝试使用XMMatrixScaleFromVector()缩放时,广告牌会在照相机接近时开始移动。

任何帮助深表感谢。

最佳答案

如果我对您的操作的理解是正确的,则rightuplook可以简单地表示广告牌局部坐标系的世界空间基本向量。在这种情况下,仅将rightup向量(假设那些与广告牌的x轴和y轴相对应)缩放到您的心脏需求就足够了,仅此而已...

关于c++ - 在DX11中缩放广告牌矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53671553/

10-12 21:33