# xkswz
**Repository Path**: metoor/xkswz
## Basic Information
- **Project Name**: xkswz
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-03-04
- **Last Updated**: 2025-03-04
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 项目名称
**掌中宇宙 Cocosmos**
## 项目简介
### 项目背景
> 一直以来已知的观星或宇宙模型要么是局限于某颗星球表面、要么是局限于太阳系或银河系内一小部分区域。
> 很少有对整个人类已知可观测宇宙(940亿光年)范围内的全景模型,更缺少类似游戏或交互软件能做到近距离观测各个天体的同时通过无缝推拉到整个宇宙。
### 功能简介
> 掌中宇宙是一款实时的、精确的、覆盖整个宇宙尺度的可交互3D宇宙模型。
用户可以且不仅限于通过无缝推拉、旋转视角、快速访问到人类已知宇宙尺度内的任意天体,进行近距离或全景观测,获取基于双语的详细天文数据和内容介绍。
### 开发环境
+ IDE:DevEco Studio 5.0.0 Release, VSCode, CocosCreater
+ OS:OpenHarmony 4.1 Release
+ Game Engine:CocosCreater 3.8.3-oh
### 项目价值
+ 工具方向,作为可实时查询和观测的天文爱好者在线工具。
+ 教育方向,内置更多的互动和教学场景,让知识可视化。
+ 游戏方向,作为类似戴森球或宇宙沙盘类SLG等游戏的场景背景。
## 项目功能
### 功能分布脑图
> 掌中宇宙的观测操作较为简单:用户主要通过双指缩放视野(PC上通过鼠标滚轮或键盘),单指旋转或俯仰视角(PC上通过左键或键盘)即可。
> 除此以外用户可以控制时间流速、星体缩放比例、结构和指示的绘制,以及双语介绍文本获取天文知识的介绍。
> 以下是项目已经实现的功能部分罗列

### 部分功能展示
#### 无缝宇宙
> 从千米级别的视角,直接拖拽到整个可观测宇宙。随视野的缩放,我们可以:聚焦于一颗具体的星球上观察行星系统,查看太阳系下所有天体的运行,群星与星座,银河系的浩瀚的星海,密布的星系组成的群落,黑洞、超新星、超星系团以及如宇宙长城般庞然大物……
+ 鸟瞰行星系统:土星和它的行星系统

+ 鸟瞰恒星系统:太阳和它的恒星系统

#### 星际访问
> 通过访问面板,我们可以快速抵达著名的天体,比如系内行星、矮行星、卫星、小行星带、彗星、近日恒星、近日黑洞等。这个视野跃迁也是无缝的。
+ 访问面板:全部天体分类快速访问

+ 星际跃迁:无缝抵达视角

#### 恒星系内
> 太阳系内的天文数据较为详细,有大量的天体和数据展示,包含所有知名行星和卫星的外表、运行轨迹参数等。
+ 星球渲染:地球的大气、光照、云层等

+ 卫星渲染:地卫一月亮

+ 行星系统渲染:天王星和其躺着的行星系统

+ 矮行星渲染:冥王星与冥卫——卡戎

+ 彗星渲染:著名彗星——哈雷

+ 行星带渲染:主小行星带

+ 恒星渲染:太阳的光球层、色球层、日冕和日珥

#### 银河系内
> 银河系是太阳系所属的家园,它拥有数千亿颗恒星、漫布的尘埃物质、银心黑洞、棒悬结构、四条主要的悬臂和一系列支臂。
+ 近日恒星渲染:参宿四

+ 近日恒星渲染:参宿七

+ 黑洞渲染:盖亚BH1

+ 鸟瞰恒星系:太阳系绕银心运动方向

+ 星座渲染:现代八十八星座形象

+ 银河系渲染:穿越银盘视角

#### 大尺度范围
> 很长一段时间内我们以为银河既是宇宙,其实银河之上还有多层结构,银河系只是浩瀚宇宙中一个普通且不起眼普通棒旋星系。
+ 星系渲染:银河系和它的棒旋结构

+ 星系群渲染:本星系群

+ 星团渲染:超星系团和星际长城

+ 宇宙渲染:哈勃直径与宇宙极限

#### 数据展示
> 掌中宇宙中加以大量的指示线、形状绘制和文字介绍已展示天文学相关的数据内容。
+ 介绍面板:双语内容和数据展示

+ 天文学数据:地球的黄道面和白道面

+ 天体磁场:木星强大的辐射磁场

+ 坐标系统:赤道、黄道、银道坐标系

+ 天文命名法:切换近日恒星的命名法

#### 操作功能
> 提供从时间到空间的操控,更加便利的观测宇宙天体。
+ 镜头操控:设置自动旋转和推拉等

+ 尺寸比例:修改天体比例以便于全景展示

+ 时间比例:加速时间视角下的火卫一绕行速度

## 研发分享
### 实现方面
#### 层次模型
> 将广袤的宇宙按照尺度模型划分并分层渲染,有助于Cocosmos在内容上的的科学严谨性和场景资源的有效管控。

#### 计算精度
> 视野的计算使用10的幂指数,用于无论多大的尺度下用户交互、镜头缩放等都能线性平滑地过渡。
> 
#### 模拟真实
> 使用球面几何、天文参数、开普勒三大定律等计算星体的运行,以获取准确的轨迹、时间周期等。


#### 镜头视角
> 使用球面摄像机、相对位置变换、镜头包含多个摄像机,避免精度造成的深度问题。

#### 光照模拟
> 修改内部着色器、使用无限远不衰减点光源

### 优化方面
#### 资源管理
> 按照现实需求懒加载、潜在可见集加载。
> 将星球参数配置化,通过配置定制材质。

#### 层次细节
> 自定义LOD,选择不同精度的网格体、材质和光照算法。

#### 粒子渲染
> 使用GPU粒子、实例化参数粒子、实现海量符合赫罗图参数的恒星和星系粒子。
> 
#### 纹理渲染
> 图集合并、多通道的利用。

#### UI优化
> 使用字体图集、UI重排序合批渲染。

## 项目结构
> 参考如下项目结构图

## 演实视频
+ [实际操作演实](https://www.bilibili.com/video/BV1u46uYmEks/)
### 其他演实视频
+ [掌中宇宙概览](https://www.bilibili.com/video/BV1Rd6uYoERV/)
+ [天文坐标系统](https://www.bilibili.com/video/BV1Rd6uYoEqB/)
+ [近日恒星欣赏](https://www.bilibili.com/video/BV1dd6uYoENn/)