免费 Cubemap 生成器

在线把 equirectangular 全景图转换成 cubemap 面——直接在你的浏览器里完成,无需注册,无需上传。

把全景图拖到这里

或点击选择 · JPG / PNG / WebP · 最大 50 MB

手头没有全景图?

为游戏引擎打造的免费 cubemap 转换器

100% 本地运行

全景图始终留在您的设备上。所有转换都在浏览器中通过 Canvas 本地完成——无上传、无服务器、无需账号。

引擎原生命名

选择匹配你工作流的命名规范:Unity 预设直接按 Skybox/6 Sided 材质自身的插槽命名(front/back/left/right/up/down),文件名和插槽名一对一,拖进去就对;px/nx/py/ny/pz/nz 适用于 Three.js 以及大多数通用工具;OpenGL 教程通常用 pos_x/neg_x 风格命名。

免费,无需注册

与 Photoshop 脚本或付费工具不同,这是一个免账号的免费工具。由 Panorama Generator 出品,服务于全景图到游戏引擎的完整工作流。

ZIP 打包或单独下载

一键下载包含全部 6 个面的 ZIP,或按需单独下载某几个面。

三档面尺寸

输出 512×512、1024×1024 或 2048×2048 cubemap 面。移动端和老 GPU 选小尺寸;源图分辨率够高时选大尺寸。

内嵌 360° 预览

上传全景图后直接拖拽查看完整球面,转换前提早发现构图或接缝问题——不离开页面。

如何将全景图转换为 cubemap

  1. 1. 上传全景图

    拖拽或选择一张 2:1 equirectangular 全景图(JPG/PNG/WebP),文件保留在本地设备上。

  2. 2. 360° 预览确认

    通过内嵌的 360° 查看器确认上传的场景是否正确。

  3. 3. 转换为 cubemap

    选择面尺寸(512/1024/2048)和命名规范,点击“转换”。equirectangular 转 cubemap 的计算在浏览器里 2-3 秒内完成。

  4. 4. 下载 ZIP

    获取按引擎命名的全部 6 个面,可直接拖入 Unity 的 6-Sided 天空盒材质,或 Three.js 的 CubeTextureLoader。

什么时候用 cubemap(而非 equirectangular)

Cubemap 是一组六张正方形图片,组成想象中围绕观察者的一个盒子的六个面。它承载的是与 equirectangular 全景图相同的 360° 场景,只是投影方式从球面换成了立方体。

当你的目标是 Unity 内置管线的旧版天空盒、不支持高精度全景采样的移动端 GPU,或 Three.js 的 CubeTextureLoader 时,就需要做一次 equirectangular 转 cubemap 的转换——这些场景都要六个独立的面。如果你的引擎可以直接使用 equirectangular(URP/HDRP、现代 WebGL,或 Unreal——它会在导入 .hdr 全景图时自动展开成 TextureCube,供 HDRI Backdrop 使用),那可能完全不需要转换。完整的格式选择决策树,参见天空盒格式详解

对比项CubemapEquirectangular
布局六张正方形图片,每面一张一张 2:1 图片,像世界地图
极点畸变没有极点奇异性,只有轻微的边角拉伸天顶和天底的像素被严重拉伸
GPU 采样不支持全景采样的 GPU 也能用需要高精度全景采样
典型使用场景Unity 旧版天空盒、Three.js CubeTextureLoaderURP/HDRP、现代 WebGL、Unreal、360° 查看器
最适合把 cubemap 天空盒交付给引擎单文件存储、编辑与预览

在 Unity、Three.js 等引擎中使用你的 cubemap

Unity

新建一个 Material,把 shader 设为 Skybox/6 Sided。用 Unity 命名预设导出,然后把每张 PNG 拖进同名的插槽(Front、Back、Left、Right、Up、Down),最后在 Lighting → Environment 里指派这个材质。小提示:Unity 的插槽标签本身已经消化了它的轴向怪癖,你只要按名字对上就行。也可以直接导入原始全景图,把 Texture Shape 设为 Cube,再配 Skybox/Cubemap 材质。

Unreal Engine

Unreal 不支持把 6 张独立图片拼成 cubemap——跳过转换,直接导入 2:1 源全景图(最好是 .hdr):UE 会在导入时把它展开成 TextureCube,可直接用于 HDRI Backdrop 或天空球材质。6 个面只留给那些真正接收单张面贴图的引擎和库。

Three.js

const loader = new THREE.CubeTextureLoader(); const texture = loader.load(['px.png','nx.png','py.png','ny.png','pz.png','nz.png']); scene.background = texture; 用 Three.js 预设导出,6 个文件的顺序正好是 CubeTextureLoader 期望的 [px, nx, py, ny, pz, nz]。

Cubemap 面命名规范对照

下面每一种 cube map 命名方案描述的都是同样的六个面——不同的只是文件名。

面(你看到的画面)Three.js / 通用Unity 6-Sided 插槽OpenGL
视角右侧pxleftpos_x
视角左侧nxrightneg_x
上方pyuppos_y
下方nydownneg_y
正前方(中心)pzfrontpos_z
后方nzbackneg_z

Unity 那一列的错位是故意的——文件名对应的是它所属的材质插槽,而不是坐标轴,因为 Unity 的 Left [+X] 插槽装的其实是右手边的画面。把文件名对上插槽名,天空盒方向就是对的。

上传预览还能识别 posx/negx 这类命名(来自 three.js 官方示例素材)以及 right/left/top/bottom/front/back 这类命名(常见于其他转换工具)。

解决常见的 cubemap 问题

我的 cubemap 看起来内外颠倒或镜像了

cubemap 内外颠倒或镜像通常意味着面装错了插槽。用你引擎对应的命名预设重新导出一次 panorama 转 cubemap,相信 Unity 的插槽标签而不是坐标轴名称,再到预览标签页里核实一遍。

天空盒转向不对——正面场景错了

天空盒朝向不对,靠的是水平旋转滑杆而不是重新导出。转换前把它调到 0-360° 之间的任意角度,让你想要的地标或主光源落在 cubemap 的正面。

输出的面模糊或分辨率偏低

cubemap 面模糊,意味着你设置的面尺寸超过了源全景图的纵向分辨率。把面尺寸设为不超过源图高度,或者用 AI Skybox 生成器 生成更高分辨率的源图。

还没有全景图?

用我们的 AI Skybox 生成器 30 秒生成一张。提示词驱动,输出 2:1 equirectangular,可以直接在本转换器里变成 cubemap 天空盒。

Cubemap 生成器常见问题

我的图片会上传到服务器吗?

不会——你的图片从不会被上传。从图片到 cubemap 的转换 100% 在浏览器里通过 Canvas 完成,我们看不到你的文件。

cubemap 和 equirectangular 有什么区别?

Equirectangular(也叫 sphere map 或球面全景图)是一整张图片(2:1 比例,类似世界地图)。Cubemap 是同一场景展开成想象中一个盒子的 6 个正方形面。现代引擎通常可以直接使用 equirectangular,但旧版管线和移动端 GPU 仍然需要 cubemap。详见天空盒格式指南

应该选哪种命名规范?

Unity 的 Skybox/6 Sided 天空盒选 Unity 预设,Three.js 和大多数通用工具选 px/nx/py/ny/pz/nz,OpenGL 项目选 pos_x/neg_x 预设。Unity 预设是按材质自身那 6 个 Inspector 插槽命名文件的——包括它反直觉的标注方式:名为 Left [+X] 的插槽装的其实是你面朝正前方时位于右手边的那个面,Right [-X] 装的是左手边的那个面——所以你只要把每个文件拖进同名插槽即可。Unreal 用户完全不需要 cubemap 面:Unreal Engine 没有官方途径导入 6 张独立面贴图,而是在导入 equirectangular 全景图(最好是 .hdr)时直接展开成 TextureCube。命名规范可随时重新导出切换,无需重新上传。

应该选多大的面尺寸?

1024 px 是桌面端和现代移动 VR 的安全默认值。旧移动端 GPU 或需节省内存时选 512。仅当源图分辨率非常高(如 8192×4096)且目标引擎支持时才选 2048。输出面尺寸不能超过源图的垂直分辨率。

可以转换 HDR 或 EXR 文件吗?

本页面的转换器只支持 JPG、PNG 和 WebP 格式。如果你的文件是 .hdr 或 .exr,请使用专门的 HDRI 转 Cubemap 转换器——它会完整保留浮点数据,导出用于 IBL 光照的真正 HDR cubemap 面。

可以在线查看 cubemap,或者把它转换回全景图吗?

在本页的「预览 Cubemap」标签页上传 6 个面,就能在线查看 cubemap——它们会被拼接成一个可交互的 360° 球体,方便你检查面朝向、发现接缝问题。如果要把这些面合并回一张 2:1 的 equirectangular 全景图,使用 Cubemap 转全景图工具

为什么各面之间有明显接缝?

如果源全景图本身不能无缝循环(左边缘 ≠ 右边缘),cubemap 在面边界处就会出现同样的断裂。Skybox 生成器 生成的 AI 全景图已做接缝修正;相机拍摄的全景图通常也能正常循环;拼接合成的全景图则可能存在问题。

如何改变 cubemap 朝向的方向?

水平旋转滑块可以在转换前改变 cubemap 朝向的方向。它会改变全景图中哪段经度落在每个立方体面上,这样你就能把某栋建筑、地平线特征或光源精确放到正面,而无需在 Photoshop 里重新编辑源图。