我使用以下代码构建了一个广告牌矩阵:
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()
缩放时,广告牌会在照相机接近时开始移动。任何帮助深表感谢。
最佳答案
如果我对您的操作的理解是正确的,则right
,up
和look
可以简单地表示广告牌局部坐标系的世界空间基本向量。在这种情况下,仅将right
和up
向量(假设那些与广告牌的x轴和y轴相对应)缩放到您的心脏需求就足够了,仅此而已...
关于c++ - 在DX11中缩放广告牌矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53671553/