【问题标题】:THREEJS: Matrix from Z-Up Coordinate System to Y-Up Coordinate SystemTHREEJS:从 Z-Up 坐标系到 Y-Up 坐标系的矩阵
【发布时间】:2014-04-29 13:32:44
【问题描述】:

我正在尝试导出一系列转换矩阵以在 ThreeJS 中为对象设置动画。这些转换是从Rhino(一个Z-Up Modeler)中提取出来的,需要放入到ThreeJS 中,也就是Y-Up。我在这个网站上找到了similar question,但答案似乎不正确,因为我的转换没有延续。

谁能将下面的通用 4x4 矩阵从 Z-Up 坐标系转换为 Y-Up 坐标系?

{ a, b, c, d }  
{ e, f, g, h }  
{ i, j, k, l }  
{ m, n, o, p }

【问题讨论】:

    标签: javascript three.js


    【解决方案1】:

    好的,我想我有一个可行的解决方案:

    如果几何图形按原样从 Z Up 环境中导出(您没有在设置中翻转 YZ),您可以将其导入 THREEjs 并使用此矩阵更正 YZ 差异 (link):

            objectid.matrixWorldNeedsUpdate=true;                               
            objectid.matrix.set 
            (
                1,  0,  0,  0,
                0,  0,  1,  0,
                0,  -1, 0,  0,
                0,  0,  0,  1
            );
            objectid.updateMatrixWorld();  
    

    在此转换之后,写this 帖子,您正在将转换应用于导入的转换。这将翻转第二和第三行并翻转第二和第三列:

    { a, b, c, d }  
    { e, f, g, h }  
    { i, j, k, l }  
    { m, n, o, p }
    

    { a, c, b, d }  
    { i, k, j, l }  
    { e, g, f, h }  
    { m, o, n, p }
    

    当我从 Rhino 导出 OBJ 时,我最初是在翻转 YZ,所以转换是在不同的几何体上执行的。当 YZ 翻转应用于 javascript 端时,它现在可以工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-04
      • 2021-04-09
      • 2019-07-26
      • 1970-01-01
      • 2021-04-01
      • 2016-11-04
      • 2014-01-07
      相关资源
      最近更新 更多