DAE 转 GLB

将 COLLADA DAE 文件转换为内含纹理和动画的单个 GLB。免费,在浏览器中完成,无需上传。

DAE 是什么:从 COLLADA 迁到 glTF

DAE 就是 COLLADA,一种 2000 年代中期出现的 XML 交换格式。制定 COLLADA 的 Khronos 组织后来推出了 glTF,作为面向应用和网页传输 3D 的后继格式。COLLADA 在很多老流程里仍然常见:SketchUp(草图大师)可以导出 DAE,Google Earth 和 3D Warehouse 曾经使用它,Second Life 和 OpenSimulator 上传网格时也用它,机器人和仿真领域的大量模型也以 .dae 发布。

把 DAE 转成 GLB,这些模型就能被现代查看器、游戏引擎和网页 3D 库直接加载。转换器在浏览器中读取 DAE,显示预览,写出一个纹理已打包在内的 GLB。不上传任何文件。

GLB 中保留的内容

COLLADA 和 glTF 覆盖的范围相近,DAE 文件中的大部分内容都能转过去。

网格和场景层级
保留,各节点的变换不变。
纹理
保留并嵌入 GLB,前提是图片文件和 .dae 一起拖入。DAE 只按路径引用图片,文件本身不包含图片。
材质
转换为 glTF 的金属度/粗糙度 PBR 材质。COLLADA 的 Phong、Blinn、Lambert 着色没有完全对应的参数,高光和光泽度只能近似。
动画
保留。动画片段会写入 GLB。转换器的预览不播放动画,可以在信息面板里核对动画数,或在 DAE 在线查看器里播放。
向上轴
自动处理。COLLADA 文件头会声明 Y_UP 或 Z_UP(SketchUp 和很多 CAD 导出是 Z_UP)。Z 轴向上的文件在读取时被转正,输出的 GLB 固定为 Y 轴向上,模型是直立的。
单位
COLLADA 会声明单位,读取时按声明的单位换算。glTF 以米为单位,只要导出软件写的单位正确,尺寸就是对的。
相机、灯光、物理、运动学
不写入。GLB 只保存模型本身。

DAE 转 GLB 的步骤

1. 找到 .dae 文件和它的纹理图片。以 SketchUp 为例,纹理会放在与模型同名的文件夹里。把 .dae 和所有图片一起选中,拖到转换器上。

2. 检查预览。纹理应当正常显示;如果有动画,在信息面板里核对动画数。

3. 点击转换,下载 .glb。得到的是一个包含纹理的单文件,可以直接用于 three.js、Babylon.js、<model-viewer> 或游戏引擎。

只想查看 COLLADA 文件、不转换,可以用DAE 在线查看器。

DAE 文件的常见问题

COLLADA 很灵活,这也是它的问题:每个导出程序写出来的 DAE 都略有不同。

纹理丢失
图片没有和 .dae 一起拖入,或者 DAE 里记录的是原电脑上的绝对路径。把图片文件和模型一起拖入即可,程序按文件名匹配。
某些角度看不到面
SketchUp 模型很常见。面经常是反的,蓝灰色的背面朝外。SketchUp 会显示两面,而 glTF 查看器通常隐藏背面。在 SketchUp 中用“反转平面”或“确定平面的方向”修正后重新导出。
模型过大或过小
glTF 默认单位是米。如果导出软件写错了单位,换算出的尺寸就会偏差。在源软件或目标场景里修正比例。
模型离原点很远
SketchUp 和 CAD 模型常放在地理坐标或场地坐标上,GLB 会保留这个偏移。导出前在源软件里把模型移到原点。
颜色发白或过于光亮
这是 Phong 到 PBR 近似换算的结果。在目标引擎中调整粗糙度和金属度。

为什么用 GLB 替代 DAE

DAE 是冗长的 XML,体积往往是同一模型 GLB 的数倍,还要求纹理放在正确的文件夹里。它解析慢,支持也在减少:新工具和网页 3D 库都优先支持 glTF。GLB 是二进制单文件,自带纹理,加载快。DAE 可以留作存档,对外发布用 GLB。

模型来自游戏引擎?请看FBX 转 GLB。

常见问题

DAE 怎么转 GLB?

把 .dae 文件和它的纹理图片一起拖到转换器上,检查预览,然后点击转换并下载 GLB。全部在浏览器里完成。

DAE 转 GLB 后贴图不见了,怎么办?

DAE 不包含图片,只记录图片路径。拖入时把纹理文件和 .dae 一起选中,它们就会被嵌入 GLB。

DAE 里的动画会保留吗?

会。COLLADA 动画会被读取并写入 GLB。转换前可以在信息面板里核对动画数。

SketchUp(草图大师)模型能这样转吗?

能。先从 SketchUp 导出 COLLADA(.dae)文件,再把它和纹理文件夹里的图片一起拖到转换器上。反面的问题最好先在 SketchUp 里修正,否则 GLB 中这些面从某一侧可能看不见。

SketchUp 导出的模型会躺倒吗?

不会。SketchUp 导出的 DAE 声明为 Z 轴向上,读取时会自动转正,GLB 中的模型是直立的。

文件会被上传吗?

不会。DAE 和纹理在浏览器中读取,GLB 也在浏览器中生成,不发送到任何服务器。

支持哪些 COLLADA 文件?

常见软件导出的 COLLADA(.dae)文件基本都能读取。用到少见特性的文件可能打不开,用原软件以默认设置重新导出通常能解决。

相关工具