首页 > 解决方案 > 在 DX11 中缩放广告牌矩阵

问题描述

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

    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()会导致广告牌在相机接近时开始移动。

任何帮助深表感谢。

标签: c++mathmatrixdirectxrendering

解决方案


如果我对您所做的事情的理解是正确的,那么right,uplook简单地表示广告牌局部坐标系的世界空间基向量。right在这种情况下,只需将和up向量(假设它们对应于广告牌的xy轴)缩放到您的心愿 就足够了,这就是它的全部......</p>


推荐阅读