algorithm - 我可以总是假设一个角值 !=1 的 mvp 矩阵正在执行缩放吗?
问题描述
假设我有一个模型视图投影矩阵,mvp
我知道mvp[3][3] !=1
并且mvp[3][3] > 0
我是否可以假设模型矩阵执行了缩放,或者由于投影矩阵本身执行缩放,所以如果没有原始矩阵,这个数字就没有用了吗?
解决方案
不,仅此值并不能告诉您太多信息。考虑如下对角矩阵:
d 0 0 0
0 d 0 0
0 0 d 0
0 0 0 d
d
是一个任意数。
该矩阵本质上是单位矩阵的齐次等价物,根本不执行任何变换。左上角 3x3 块中的统一缩放部分被透视分割抵消了。您始终可以将矩阵乘以m33
条目的倒数以对其进行某种程度的归一化(这将保留转换)。对于上面的矩阵,你会得到:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
而在这种形式中,你可以很容易地看出它是身份。此外,您可以检查左上角的 3x3 块以确定是否存在缩放(根据您对缩放的定义,计算 3x3 块的行列式并检查 1 是 Robert 在评论中提到的一种选择)。
推荐阅读
- vb.net - 如何通过右键单击其中一个来更改其中一个标签
- constraints - 如何训练具有受限概率(或隐藏状态之间缺少链接)的隐藏马尔可夫模型?
- scala - 在 flink 集群上远程调试 apache Beam 作业
- r - 使用 R 说明具有拆分的决策树
- r - R Shiny:从输入值访问当前选项卡
- node.js - 在会话创建上添加新对象
- python - 从 Sandbox HIT 检索结果返回空 xml 字典
- oop - 对包含字符串排列的实例化对象使用什么设计模式?
- azure - 数据工厂中的非标准 REST 分页方法?
- django - Django 模板不存在包含或扩展标签