Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

今晚的星空 · Starry Sky React

English | 简体中文

基于 Yale Bright Star Catalog 全量 9096 颗恒星 的实时沉浸式 WebGL 星空。

🚀 在线体验 · 浏览器直接渲染,零渲染依赖

由微信小程序版星空功能迁移而来 —— Web 端不再受小程序包体与渲染能力限制:

小程序版 Web 版(本项目)
星表 BSC 裁剪(mag ≤ 6.0,且编码受损) BSC5 全量 9096 颗(mag ≤ 7.5)
银河氛围星 900 颗 2600 颗
银河云气光斑 150 个 240 个
交互 触摸拖拽/双指缩放 触摸 + 鼠标拖拽/滚轮缩放/惯性/全屏
音乐 依赖后端 mp3 WebAudio 程序化环境音(零资源)
拾取 仅 65 颗命名星 命名星 + 月亮与五大行星
分辨率 受机型 WebGL 限制 高分屏全 DPR + resize 自适应

功能

  • 🌌 真实星空:位置 + 时间驱动,赤道坐标 → 地平坐标精确转换(含大气折射修正)
  • 🌍 地球自转:GPU 端绕天极轴平滑旋转(30x 真实速度,肉眼可察觉星移)
  • 🌙 月相圆盘:Meeus 简化算法实时月相 + 明暗分界渲染
  • 🪐 五大行星:J2000 轨道根数 + 开普勒方程求解
  • 星点质感:大气闪烁(双频抖动)、衍射星芒、地平线大气消光
  • 🌠 流星许愿:自动流星 + 许愿触发
  • ☁️ 实时天气:Open-Meteo 天气代码驱动大气能见度(雾/雨/云遮蔽暗星)
  • 🏔️ 地平线:四层程序化山脊剪影(空气透视 + 月光棱线 + 顶缘羽化)+ 远镇灯光光穹 + fbm 夜云
  • 🧭 定位:浏览器 Geolocation 自动定位,或手动切换 22 个城市
  • 📱 移动端:设备姿态陀螺仪裸眼 3D 视差、双指捏合缩放

运行

npm install
npm run dev      # 开发
npm run build    # 构建(产物在 dist/,base='./' 可部署任意子路径)

技术

React 18 + Vite + 原生 WebGL(零渲染依赖)。

星表数据:YaleBrightStarCatalogpublic/data/bsc5-short.json),首屏异步加载,失败自动回退程序化星野。

目录

src/
  App.jsx              页面与全部交互(拖拽/缩放/拾取/许愿/音乐/天气/定位)
  sky/
    SkyRenderer.js     原生 WebGL 渲染器(天空辉光/星点/月相/流星/云/山脊)
    stars.js           星表构建 + 赤道→地平坐标转换
    celestial.js       太阳/月亮/行星位置(Meeus 简化算法)
    parseCatalog.js    Yale BSC5 JSON 解析
    ambient.js         WebAudio 程序化环境音

About

Immersive WebGL night sky - Yale BSC5 full catalog, real-time weather, DS2-inspired horizon

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages