c++ - 在 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()
会导致广告牌在相机接近时开始移动。
任何帮助深表感谢。
解决方案
如果我对您所做的事情的理解是正确的,那么right
,up
和look
简单地表示广告牌局部坐标系的世界空间基向量。right
在这种情况下,只需将和up
向量(假设它们对应于广告牌的x和y轴)缩放到您的心愿
就足够了,这就是它的全部......</p>
推荐阅读
- c# - 如何通过 Postman 将数据(即转换为字节数组的图像或 pdf)发布到端点
- c# - LibVLCSharp:无法查看 RTSP
- python - Bscscan 上 web3.eth.sendRawTransaction 和事务验证时间之间的时间
- python - 无法移除标签
- c - 如何读取用户的是/否响应?
- python - 如何在 python 中更改多索引数据框的行顺序?
- react-native - 如何将 FlatList 放在 React-native 的 ScrollView 中?
- c - c中的SLL在列表中的屏幕元素上打印一个额外的随机数
- r - 从多个列的数据中创建一个因子,具有优先级,R
- r - .h2o.doSafeREST 中的错误(h2oRestApiVersion = h2oRestApiVersion,urlSuffix = urlSuffix,:意外的 CURL 错误:getaddrinfo() 线程无法启动