https://github.com/s045pd/planet-walk
星球漫步 - Three.js模拟真实星球表面漫步,支持火星/地球/月球等真实地形数据
https://github.com/s045pd/planet-walk
Last synced: about 2 months ago
JSON representation
星球漫步 - Three.js模拟真实星球表面漫步,支持火星/地球/月球等真实地形数据
- Host: GitHub
- URL: https://github.com/s045pd/planet-walk
- Owner: s045pd
- License: mit
- Created: 2026-02-25T05:11:54.000Z (5 months ago)
- Default Branch: dev
- Last Pushed: 2026-04-17T15:50:42.000Z (3 months ago)
- Last Synced: 2026-04-17T17:33:40.725Z (3 months ago)
- Language: TypeScript
- Size: 5.47 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🌍 星球漫步 Planet Walk
在浏览器中漫步真实星球——地球、火星、月球。
基于 Three.js + TypeScript 构建的 3D 星球探索应用,使用 NASA 真实数据驱动地形渲染。
## 特性
- 🌐 三颗星球:地球、火星、月球,一键切换
- 🚶 第一人称漫步:WASD 移动 + 鼠标视角 + 空格跳跃
- 🛰 轨道相机:太空视角旋转缩放,点击着陆
- 🌄 真实地形:NASA 高度图驱动的 Displacement Map
- 🌅 大气散射:Rayleigh/Mie 物理散射渲染
- ⚡ LOD 系统:四叉树球体动态细分
- 📊 调试面板:FPS、节点数、内存监控
## 快速开始
```bash
# 安装依赖
npm install
# 下载 NASA 纹理(可选,无纹理时使用 fallback 颜色)
npm run textures:download
# 启动开发服务器
npm run dev
```
## 操作方式
| 操作 | 轨道模式 | 第一人称模式 |
|------|---------|------------|
| 旋转/视角 | 鼠标左键拖拽 | 鼠标移动 |
| 缩放/前进 | 滚轮 | W/S |
| 左右移动 | - | A/D |
| 跳跃 | - | 空格 |
| 切换星球 | 左上角按钮 | 左上角按钮 |
## 技术栈
- Three.js 0.183 — 3D 渲染
- TypeScript 5.9 — 类型安全
- Vite 7.3 — 构建工具
- GLSL — 大气层/地形着色器
## 项目结构
```
src/
├── core/ # 引擎、场景、相机、输入
├── planet/ # 星球渲染、配置、地形、大气层
├── player/ # 玩家控制、引力、碰撞
├── camera/ # 轨道/第一人称相机模式
├── ui/ # HUD、调试面板、星球选择器
├── shaders/ # GLSL 着色器
└── utils/ # 工具函数
```
## License
MIT