【问题标题】:Is there any use for the determinant of a 4x4 matrix in computer graphics?计算机图形学中 4x4 矩阵的行列式有什么用?
【发布时间】:2019-01-20 17:39:51
【问题描述】:

在我见过的大多数图形库中,都有一些函数可以从 3x3 和 4x4 矩阵返回行列式,但我不知道什么时候您真正需要在 3D 计算机图形中使用行列式。

在 3D 图形编程中使用行列式的例子有哪些?

【问题讨论】:

  • 矩阵求逆隐含地需要计算行列式。这可能是片段着色器计算所需要的。
  • 是的。库也经常提供逆函数,所以我仍然不确定为什么要单独使用行列式函数。
  • 另一种可能的用法是用于非正交坐标系,例如等距网格;将 3x3 矩阵的每一行设置为基向量并计算其行列式会产生 三重乘积 a . (b x c),这是解决非正交性的有用量。

标签: matrix graphics 3d determinants


【解决方案1】:

在我的头顶...

如果行列式为 0,则矩阵不能倒置,这对了解很有用。

如果行列式是负数,那么被矩阵变换的物体会像镜子一样反转(左撇子变成右撇子,反之亦然)

对于 3x3 矩阵,当对象被矩阵变换时,它的体积将乘以行列式。了解这一点可能有助于确定渲染对象时使用的细节级别/多边形数量等。

【讨论】:

  • 实际上,如果矩阵不能反转,“世界到屏幕”坐标转换就会失败,这在 3D 游戏中非常重要。
【解决方案2】:

在 3D 矢量图形中

使用了4x4 homogenuous transform matrices,我们需要可以通过(子)行列式计算的展位直接矩阵和逆矩阵。但是对于正交矩阵,有更快、更准确的方法,例如

许多相交测试使用行列式(或可以转换为使用行列式),特别是对于二次方程(椭圆体,...),例如:

正如 Matt Timmermans 建议的那样,您可以决定您的矩阵是可逆的还是左/右手的,这对于检测矩阵中的错误(精度下降)或在格式或引擎之间移植骨架等很有用。

而且我确信它在向量数学中还有很多其他用途(IIRC IGES 将它们用于旋​​转表面,叉积是决定因素,...)

【讨论】:

    【解决方案3】:

    内圆检验是计算 Voronoi 图和 Delaunay 三角剖分的关键原语。它由 4x4 行列式的符号给出。

    (图片来自https://www.cs.cmu.edu/~quake/robust.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2015-05-18
      相关资源
      最近更新 更多