为什么你的场景是躺着的
常用的坐标轴约定只有寥寥几种,而每个采集或渲染工具都各选了一种。COLMAP 和 OpenCV 用 RDF:x 向右、y 向下、z 向前。glTF、three.js 和 SPZ 用 RUB:x 向右、y 向上、z 向后。Unity 是左手系的 RUF。Blender 是 Z 轴向上的 RFU。Unreal 是 Z 轴向上、左手系的 FRU。
不做转换就在它们之间搬运文件,结果就是躺着、倒着,或者被镜像。
大多数转换器做错的地方
泼溅不是点。正确转换一个场景意味着要旋转三样东西:
- 位置——所有人都会做
- 每个泼溅的旋转四元数——多数工具会做
- 球谐系数——几乎没人做
跳过第三项,几何看着没错,但随视角变化的着色仍然绑在旧坐标轴上:以前你走过时会沿表面滑动的反射,现在滑动方向反了。本工具会把球谐波段和几何一起旋转,所用的旋转矩阵直接从它计算颜色时的同一组基函数解出。
镜像
可能的转换中有三种会翻转手性——矩阵行列式为 −1。镜像不是旋转,无法写成泼溅的四元数。位置和尺度是精确的;每个泼溅的朝向只保留旋转部分。发生这种情况时,工具会显著提示,而不是丢给你一个会渲染成里外翻转的场景。
另外还有
- 统一缩放——位置和泼溅尺寸一起缩放,场景形状不变。米转厘米,或用于以任意尺度训练出的场景。
- 居中到原点——多数引擎按资产存储的原点导入,而场景的原点取决于重建当时把它放在哪里。
转换前后并排显示,选错了一眼就能看出来。一切都在浏览器中完成。
Tiny Online Tools







