返回

3D 星球编辑器

一个跑在浏览器里的离线优先 3D 星球编辑器:从九颗星体或自定义贴图开始,捏地形、调云层大气与太阳光,把 Tripo 生成的 GLB 模型放上球面,再导出 PNG、GLB 或工程文件。

作者: Jared Liu开源地址
在线体验
3D 星球编辑器在线体验

关于项目

Planet Maker 是一个跑在浏览器里的离线优先 3D 星球编辑器:从水星、地球到月球九颗星体任选其一,或上传自己的 2:1 贴图开一颗新星球;捏地形起伏、调云层大气、摆太阳方向,再把 3D 物体、图钉标记和广告牌文字放上球面——所有放置物都自动贴合曲面朝向。

编辑器内置 20 个 CC0 轻量模型,也预留了 Tripo 创作入口——在 Tripo 里生成自定义模型后上传 GLB,点击球面即可放置。全部数据留在浏览器本地(无账号、无后端),成品可导出 PNG 快照、GLB 场景或可再编辑的 .planet.json 工程;作为 PWA 安装并下载离线库后,断网也能完整创作。

体验要点

  1. 从水星到月球九颗星体一键开局,或上传任意图片,本地裁成 2:1 全球贴图当作星球表面
  2. 地表起伏、粗糙度、云层、大气、自转速度与太阳方位全部滑杆可调
  3. 内置 20 个 CC0 模型;用 Tripo 生成自定义模型后上传 GLB,点击球面即放置,自动贴合地表朝向
  4. 一键导出 PNG 快照、GLB 场景或可再编辑的 .planet.json 工程;PWA 安装后可完全离线创作

技术解析

  • GLB 物体管线 · Tripo 出件直挂球面

    物体面板内置 Tripo 创作入口——在 Tripo 里生成自定义模型,上传 GLB 就能用。任意 GLB(内置的 20 个 CC0 资产同理)导入后先按 Box3 包围盒归一化:自动居中、底部对齐原点、按最长边等比缩放;放置时由球面坐标换算出位置与四元数朝向,点击球面即贴地立在星球上,怎么转都不会歪。

  • 星球渲染 · 一张贴图的物理材质

    整颗星球只靠一张 2:1 贴图:meshPhysicalMaterial 把它同时当颜色图和凹凸图用(bumpScale 就是地形起伏滑杆),云层是独立的 alphaMap 球壳(金星特例用实色整层),大气为 BackSide 加色发光球壳,土星再加一圈 ringGeometry;太阳按方位角与仰角换算平行光位置,影子随之走。

  • 自定义表面 · 全程本地处理

    上传的图片不经过任何服务器:createImageBitmap 读入后居中裁到 2:1、限宽 2048,再用 canvas 编码成 webp 存进 localStorage;上传的自定义 GLB 走内存 objectURL,并刻意不写入工程 JSON。整个应用没有账号、没有后端,工程文件随浏览器数据存取。

    Canvas API
  • 性能与离线 · 按需渲染 + PWA

    渲染循环只在需要时跑:关掉自转就切 demand 模式、页面隐藏时完全停帧,帧率吃紧还会自动降 dpr。vite-plugin-pwa 预缓存应用壳与常用初始资产,导出面板里的「下载离线库」把九颗星球与 20 个模型全量入缓存——断网也能继续造星球。