An open API service indexing awesome lists of open source software.

https://github.com/s045pd/planet-walk

星球漫步 - Three.js模拟真实星球表面漫步,支持火星/地球/月球等真实地形数据
https://github.com/s045pd/planet-walk

Last synced: about 2 months ago
JSON representation

星球漫步 - Three.js模拟真实星球表面漫步,支持火星/地球/月球等真实地形数据

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