Cubemap 转全景图转换器

把 6 张立方体贴图面重新拼合成一张 2:1 的 equirectangular 全景图,在浏览器中在线完成。无需注册,无需上传。

拖拽或点击上传 6 张 cube 面

JPG、PNG 或 WebP——6 张正方形图片,尺寸一致,每张最大 50 MB

Cubemap 转 equirectangular,完全在浏览器本地完成

100% 本地转换

你的 6 张 cube 面始终留在本机设备上。整个 cubemap 转全景图 的转换都通过 Canvas API 在浏览器本地完成——无上传、无服务器、无需账号。

自动匹配面顺序

系统会用五种常见命名规范匹配文件名——px/nx/py/ny/pz/nz、Unity 的 front/back/left/right/up/down 插槽名、right/left/top/bottom/front/back、pos_x/neg_x,以及 three.js 示例素材的 posx/negx 命名——命名正确的文件会自动排好顺序。

支持手动重新指定

重命名过、重新导出过或不规范的文件名不会卡住流程。可以手动把 6 张图分别指定到正确的 cube 面,再进行转换。

三档输出分辨率

从 cube 面生成 2048、4096 或 8192 像素宽的 equirectangular 全景图。可根据 cube 面的原始分辨率选择合适档位——预览选 2048,多数 VR 与网页查看器选 4096,源分辨率够高时选 8192。

免费、无需注册、无水印

这款 cubemap 转 equirectangular 工具完全免费,无需账号、无水印,转换次数也没有限制。

即时 360° 预览

转换完成的全景图会直接加载进内嵌的 360° 查看器,方便你拖拽检查拼接效果后再下载。

使用流程

  1. 1. 上传你的 6 张 cube 面

    拖拽或选择六张正方形面图片(JPG、PNG 或 WebP)——px、nx、py、ny、pz、nz,或者五种支持命名规范中的任意一种。文件全程留在你的设备上。

  2. 2. 检查自动匹配结果

    文件名会按 Unity 插槽名、Three.js、OpenGL 以及各转换工具的命名规范自动匹配并排序。如果某张面看起来不对,可以在转换前手动重新指定。

  3. 3. 选择输出宽度并转换

    选择 2048、4096 或 8192 像素宽度——高度固定为宽度的一半。点击转换,浏览器会在本地完成反向双线性重采样,无需服务器往返。8192 档大约要计算 3300 万个输出像素,在较慢的设备上可能需要几秒钟。

  4. 4. 预览并下载全景图

    在内嵌的 360° 查看器里拖拽查看拼接结果,然后把最终的 equirectangular 全景图下载为一张 PNG。

什么时候该把 cubemap 转全景图(以及什么时候不需要)

当你手头已经有 6 张独立的 cube 面图片——来自较老的游戏引擎导出、遗留的天空盒素材,或者只输出 cubemap 的渲染管线——而需要一张 equirectangular 全景图时,就该用这个转换器。这种 2:1 图片正是 360° 查看器、VR 头显以及大多数现代全景工具所需要的格式,包括我们自己的 360° 全景图查看器。把旧版 Unity 天空盒导出转换回全景图的关卡设计师、把 Unreal Engine cube render target 迁移到新管线的开发者,以及想把 Three.js CubeTexture 用于只支持 equirectangular 工具的人,都是常见场景。这款 cubemap 转 equirectangular 在线工具的转换完全在客户端完成,专有的游戏素材不会碰到第三方服务器。如果你反过来是从一张全景图出发,需要拆成 6 张 cube 面用于旧版天空盒,可以用 Cubemap 生成器——它是同一套数学的正向版本。

常见问题

转换时我的 cubemap 会上传到服务器吗?

这个转换器会用 Canvas API 完全在你的浏览器内处理这 6 张 cube 面。图片不会被上传、存储或发送到任何服务器——始终留在你的设备上。

cubemap 和 equirectangular 到底有什么区别?

equirectangular 全景图是一张宽高比 2:1 的矩形图片,类似展开的世界地图。cubemap 则把同一个 360° 场景展开成围绕观察者的想象立方体的 6 张正方形面。

工具怎么知道哪张图对应哪个面?

这个工具会自动用五种常见的面命名规范匹配上传的文件名。如果文件名不符合任何规范,每张面都可以在转换前从下拉菜单里手动指定。

Unity、Unreal 还是 Three.js,应该用哪种命名规范?

五种支持的命名方式都可以用,因为这个转换器是靠匹配文件名来确定面的位置,而不是强制某一种规范。px/nx/py/ny/pz/nz 这种写法常见于 Three.js 和通用工具链,front/back/left/right/up/down 对应 Unity 的 Skybox/6 Sided 插槽名,right/left/top/bottom/front/back 则是大多数独立转换工具和旧版天空盒素材包的写法——挑一个和你手头文件相符的就行。Unreal 是个例外:它没有官方途径导入 6 张独立的面贴图,所以并不存在「Unreal 命名规范」可选,UE 项目通常直接使用 equirectangular 的 .hdr。

为什么转换后的全景图看起来内外颠倒或者旋转了?

画面颠倒或旋转,几乎总是因为转换前某几张 cube 面被指定到了错误的位置。请逐一核对这 6 张图片是否都对应到了工具期望的那个面——面指定错误是这类问题最常见的原因。

把 cubemap 转成 equirectangular 会损失画质吗?

会,尤其是在两极附近确实会损失一些细节。转换使用的是反向双线性重采样,会把顶部和底部两张面的像素拉伸到 equirectangular 图片宽得多的区域,使顶部和底部边缘附近的细节变得柔和模糊。转换不会做任何额外的锐化、曝光匹配或接缝融合——你看到的就是最直接的重采样结果。

我想找的是 cubemap splitter,是这个工具吗?

cubemap splitter 是把一张 equirectangular 全景图拆分成 6 张 cube 面——方向和这个页面正好相反。请用我们的 Cubemap 生成器 来拆分全景图,用这个页面把面重新合并回全景图。

可以选择什么输出分辨率,下载的是什么格式?

输出宽度可以选择 2048、4096 或 8192 像素,高度固定为宽度的一半,以保持 2:1 的 equirectangular 比例。结果会下载为一张 PNG 文件,可以直接查看、编辑或重新上传到任意全景工具。

每张面支持什么图片格式和文件大小?

每张 cube 面都可以是 JPG、PNG 或 WebP 文件,最大 50 MB。全部 6 张面都必须是正方形图片,并且宽高完全一致——尺寸不一致会在开始转换前被拒绝。