支持的格式
PlayCanvas 为不同资源类型支持多种文件格式。本页列出可以在项目中使用的格式。
3D 模型
编辑器和引擎接受的模型格式有所不同。编辑器将模型文件导入为资源,引擎则在运行时直接加载 glTF 文件。
| 格式 | 扩展名 | 编辑器 | 引擎 | 说明 |
|---|---|---|---|---|
| glTF Binary | .glb | 作为模型导入 | 运行时加载 | 推荐格式,高效且支持广泛 |
| glTF | .gltf | 作为二进制资源上传,不执行模型导入 | 运行时加载 | 基于 JSON,可引用外部文件;要导入编辑器,需先转为 GLB |
| FBX | .fbx | 导入时转换为 GLB | 不支持 | |
| COLLADA | .dae | 导入时转换为 GLB | 不支持 | |
| OBJ | .obj | 导入时转换为 GLB | 不支持 | 基础网格格式,不包含动画 |
提示
建议使用 GLB 保存 3D 模型。它体积紧凑、加载迅速,并支持动画、材质和变形目标等 PlayCanvas 功能。
纹理
| 格式 | 扩展名 | 说明 |
|---|---|---|
| PNG | .png | 无损,支持透明度 |
| JPEG | .jpg、.jpeg | 有损压缩,不支持透明度 |
| WebP | .webp | 现代格式,压缩效果较好 |
| AVIF | .avif | 新一代格式,压缩效果出色 |
| GIF | .gif | 导入时转换为 PNG/JPG |
| TGA | .tga | 导入时转换为 PNG/JPG |
| BMP | .bmp | 导入时转换为 PNG/JPG |
| TIFF | .tif、.tiff | 导入时转换为 PNG/JPG |
| HDR | .hdr | 高动态范围,用于环境贴图 |
| EXR | .exr | 高动态范围,转换为 RGBM PNG |
纹理压缩
为了优化传输,纹理可以压缩为 GPU 原生格式:
| 格式 | 平台 | 说明 |
|---|---|---|
| Basis | 全部 | 通用压缩格式 |
| DXT/BC | 桌面端 | Windows/Mac/Linux |
| PVRTC | iOS | Apple 设备 |
| ETC | Android | 大多数 Android 设备 |
| ASTC | 现代移动设备 | iOS 8+、支持 ASTC 的 Android 设备 |
音频
| 格式 | 扩展名 | 说明 |
|---|---|---|
| MP3 | .mp3 | 支持广泛,压缩效果较好 |
| OGG Vorbis | .ogg | 开放格式,质量较好 |
| WAV | .wav | 未压缩,文件较大 |
| M4A | .m4a | AAC 音频 |
备注
为获得最佳浏览器兼容性,可同时提供 MP3 和 OGG 版本。PlayCanvas 会使用用户浏览器支持的格式。
字体
| 格式 | 扩展名 | 说明 |
|---|---|---|
| TrueType | .ttf、.ttc | 导入时转换为 MSDF 图集 |
| OpenType | .otf | 导入时转换为 MSDF 图集 |
| Datafork TrueType | .dfont | 导入时转换为 MSDF 图集 |
有关图集生成方式及在编辑器外加载图集的方法,请参阅字体。
脚本
| 格式 | 扩展名 | 说明 |
|---|---|---|
| JavaScript | .js | 经典脚本 |
| ES Module | .mjs | ESM 脚本,推荐使用 |
数据文件
| 格式 | 扩展名 | 说明 |
|---|---|---|
| JSON | .json | 结构化数据 |
| 文本 | .txt | 纯文本 |
| CSV | .csv | 表格数据,作为文本处理 |
| XML | .xml | 标记数据,作为文本处理 |
| HTML | .html | HTML 文档 |
| CSS | .css | 样式表 |
着色器
| 格式 | 扩展名 | 说明 |
|---|---|---|
| GLSL | .glsl | OpenGL 着色语言 |
| 顶点着色器 | .vert | 顶点着色器源码 |
| 片元着色器 | .frag | 片元着色器源码 |
其他
| 格式 | 扩展名 | 说明 |
|---|---|---|
| WebAssembly | .wasm | 编译后的二进制模块 |
| 二进制 | .bin | 原始二进制数据 |
| PLY | .ply | 3D 高斯泼溅数据 |
| glTF Binary | .glb | 使用 KHR_gaussian_splatting 扩展的 3D 高斯泼溅数据 |
| SPZ | .spz | 压缩的 3D 高斯泼溅数据(Niantic SPZ 格式),通过解析器脚本加载 |
自定义格式
以上列出引擎内置加载器支持的格式,但支持范围并非固定。多数资源类型可在运行时通过自定义解析器支持新格式,或覆盖内置解析器。参见自定义资源解析器。