我使用下面的代码构建了一个广告牌矩阵:
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()进行缩放会导致广告牌在摄像机接近它时开始移动。
任何帮助都是非常感谢的。
发布于 2018-12-07 14:41:54
如果我对您所做的理解是正确的,那么right、up和look只是表示广告牌的局部坐标系的世界空间基向量。在这种情况下,只需缩放right和up向量(假设它们对应于广告牌的x和y轴)就足以满足心脏的愿望,…就是这样。
https://stackoverflow.com/questions/53671553
复制相似问题