" 图形学中Y-Up和Z-Up的概念也会让人困惑,这是什么?为什么要这样?该怎么转换?"
1.前言
所有的3D工具都包含一个具有X、Y和Z轴的三维环境。在这些工具中,X轴方向是相同的,即在前视图是从左到右的水平线。
然而, 不同的 3D 工具可能对Y轴和Z轴的朝向有不同的解释。一些3D工具是Y-Up的, 即Y轴是竖直方向的;而其他的3D工具是Z-Up的, 即Z轴是竖直方向的。
2.部分3D软件中的规则
不同的3D工具关于竖直方向(Up方向)是Y轴还是Z轴有不同的定义 ,而处理的比较好的3D工具是可以自动的进行Y-Up/Z-Up间的转换的,即支持Y-Up、Z-Up的模型导入,自动的针对性做不同的处理,让模型能够正常显示和使用。
图:部分3D软件中的Up轴规则
由上图可知,如果是Z-Up的模型,导入到Y-Up的3D工具中,或者将Y-Up的模型导入到Z-Up的3D工具中,如果不作处理的话,那么模型显示将是错误的。
那么该怎么处理呢?大家仔细看看图,结合上述章节中的仿射变换矩阵构成和原理,想一想~
提示
详细讲解可参考作者CSDN博文:Y-Up和Z-Up的概念
3.Y-Up转Z-Up
由Y-Up 转换为Z-Up,可以对模型绕着X轴旋转π/2(弧度)来达到此操作,相当于应用如下的转换矩阵:
图:Y-Up到Z-Up的矩阵构造
同理,由Z-Up转换为Z-Up,可以对模型绕着X轴旋转-π/2(弧度)来达到此操作;
图:Z-Up到Y-Up的矩阵构造
补充
glTF格式标准是Y-Up,存储还是按照X、Y、Z,只不过Y的数据是模型的Up方向的,解析glTF的业务方都是按照这个标准来解析,如果显示的平台是Z-Up的,就需要对模型做转换,转换过程见上文。
欢迎关注,图形几何之美系列 将继续更新......