# 科学计算与观测显示更新

本项目是可交互的银河三维观测近似，不是经过完整天文测光标定的预测工具。实测星表、统计恒星、连续银河光和艺术地貌分别有明确用途。

## 银河夜航：入口与导航

- 网站正式命名为“银河夜航”。首页介绍项目、功能亮点、操作方式和当前开源状态；正式天幕位于 `/observe`，标志候选位于 `/logos`。
- 新增太阳邻域、内银河、核球附近、外盘深处、盘面上方和银河对侧六个位置。坐标以银河中心为原点，单位为秒差距；跳转会移动观察者、暂停播放并将模拟时间归零。
- 左侧方向按钮只改变相机朝向。持续中心锁定在观察者每次移动时重新计算“银河中心减去观察者位置”的方向，并保留缩放；关闭时保持当前朝向。选择其他方向或定位天体会解除锁定。
- 行星地平线可能挡住目标。中心锁定遇到地平遮挡时，会显示提示并切换至无大气视图，避免把镜头指向不透明地面。
- 初次进入观星平台提供七步引导。完成或跳过后在当前浏览器记录，不再自动弹出；底部“新手教程”始终可以重新打开。无法使用浏览器存储时仍可完成引导，但下次访问可能再次出现。
- 首页改用原生宽 6000 像素的银河全景照片，署名 ESO/S. Brunier。星舟标志沿用图像生成素材；首页新增持续穿行、加速及鼠标轻微转向，仅用于入口艺术呈现，不参与恒星、银河或尘埃计算。可暂停；首屏不可见或系统要求减少动画时停止绘制。
- 英文名为 Galactic Nightflight，中英文首页分别位于 `/` 与 `/en`。首页按简介、功能、使用、开源组织，点击导航与自然滚动共用连续穿行动效；功能说明通过具体功能名称切换，没有自动轮播或照片风格切换器。公开仓库为 https://github.com/LopoaySyen/galactic-nightflight，原创代码采用 MIT 许可证，商用无需另行授权，副本或实质性部分保留版权与许可声明；完整条款见 /legal/。星表和照片继续适用各自许可。

## 本轮修正

- 银河光沿每条视线分成 96 段，同时计算每段的发光与吸收。以前先加上整段发光、再增加尘埃遮挡，会漏算这一段内部的自吸收。现在把每段视为均匀介质，采用该段的解析解；段与段之间的密度仍由三维模型决定。
- 点源尘埃积分在观察者附近使用更密的采样，避免一条很长的视线直接跨过太阳附近的薄尘埃层。远处仍采用较粗采样，尚不是逐条视线带误差保证的自适应求解器。
- 尘埃模型改动后，实测恒星会重新计算太阳位置的参考遮挡，使目录所记录的亮度不被新模型重复削弱。Gaia 是欧洲空间局的天体测量任务，此处使用其第三批公开数据中的明亮子样本；它不是全量星表。
- 恒星的方向与距离使用当前观察者坐标和当前模拟时间计算，不再按数百秒差距或数百年取整。秒差距是距离单位，1 秒差距约为 3.26 光年；距离越大不表示结果越好。尘埃与银河背景在后台计算，更新期间明确显示状态，并暂用最近完成的结果。
- 星系显示原来把“角直径”误作椭圆半径，现已修正。角直径表示天体在天空中占据的角宽，单位为度；越大表示看起来越宽，不等于物理直径更大。

## 地景与显示

地平面属于假想行星坐标系，可以独立于银河盘转动。镜头使用当地竖直方向；远山、近地面、恒星高度和当地恒星光源共用这套坐标关系。远山通过逐像素方向映射至环形全景；近地通过相机射线与地面求交，使用离地 1.65 米的视点。显卡负责地景投影，纹理缩小时使用分级过滤减轻闪烁；不能启用显卡时，使用相同几何关系的兼容算法。

地貌仍沿用艺术生成素材，原始全景为 1774 × 887 像素，近地纹理为 1254 × 1254 像素。重新采样不会创造实测细节，也不代表新增了真实行星地形。

银河背景在静止后使用 384 × 192 个全天方向样本，移动到新区域时先使用 128 × 64 个方向样本；已有较清晰的适用结果会继续保留，不会仅因按下播放而降低清晰度。这些是计算分辨率，不是显示器分辨率。样本越多通常越细致，但计算更慢。后台只保留当前计算和最新待处理请求，避免拖动产生长队列。不能据此声称所有设备都达到固定帧率。

## 播放、移动与快捷视角修复

- 计算由独立时钟发起。持续播放不再反复取消尚未开始的任务，绘制也合并到下一帧而不是不断取消上一帧。恒星结果先返回，连续银河光随后返回，避免星点被较慢的背景积分拖住。
- 银河背景、恒星和地景使用独立的显卡画布。恒星目录准备后一次上传，显卡按照当前三维位置、时间、距离和大气条件逐帧投影；地景不再每帧从显卡复制回二维画布。不能使用显卡的设备仍有兼容绘制方式；名称现在单独叠加，不再关闭显卡恒星绘制。
- 移动中，恒星遮挡缓存最多沿用到累计位移达到 1 秒差距或时间变化达到 1,000 年；银河背景在累计位移达到 5 秒差距后重算。星点方向、距离和距离引起的亮度变化仍按当前状态逐帧更新。停止操作后，遮挡和背景均按最终位置重新计算。这些阈值用于响应速度，不是物理误差上界。
- 快捷视角按当前位置到银河中心的三维方向，或其相反的外围方向瞄准，也计入离开银河盘的高度。若目标在当地地平线下或高度不足 8 度，切换到无大气的无遮挡视图并显示原因；不会把真实目标方向偷偷抬高。快捷视角把过宽视野收至 82 度，较窄的视野保留。

新增回归检查使用连续 32 毫秒变化的时间输入，确认计算持续发出且只保留一个执行任务；还覆盖截图附近位置的恒星更新、播放时背景清晰度保留、移动后重新计算，以及中心／外围方向和地平遮挡。此处没有测量用户设备上的实际帧率。

暗适应裸眼降低暗弱银河光的色彩；相机使用固定的白平衡与色彩映射。显示曝光的单位为“级”，每增加 1 级，显示映射前的线性星光信号加倍；越大越亮，但亮部越容易饱和。它不等于实际快门时间、真实相机增益或光电子数。

小尺度尘埃结构使用固定在三维空间中的平滑密度起伏，使暗带不再只是规则平滑横条。其参数仅是现象模型，未拟合某张真实尘埃图，不保证具体云团的位置。恒星和尘埃不会因转动镜头重新随机生成。

## 明确保留的近似

- 太阳附近的实测星表是经过筛选的样本，有距离和测光误差，尚未完成统一历元、样本完备性及通带标定。通带表示仪器测量的波长范围，不同通带记录的亮度不能无条件互换。
- 统计恒星与连续银河光之间尚未完成严格的统一光预算校准；不能把目前的屏幕亮度解释为绝对天文测光结果。
- 恒星继续使用固定速度的直线外推；观察者采用简化引力模型的数值轨道。显示的一百万年范围是交互范围，不是经过验证的精度承诺。光传播延迟、完整银河棒旋转和逐星高精度轨道尚未接入主画面。
- 深空照片是由目录位置约束的图像展示，不是这些天体内部完整的三维辐射场。远离太阳后的内部结构与形态仍有近似，不能当成从任意方向拍摄的真实照片。
- 大气是晴朗／轻雾的参数化外观近似，不是实时天气、任意行星大气成分或完整多次散射计算。近红外采用伪彩，仅用于区分波段响应，不是肉眼颜色。

## 依据

- [《基于物理的渲染》第四版：辐射传输方程](https://www.pbr-book.org/4ed/Light_Transport_II_Volume_Rendering/The_Equation_of_Transfer)：用于核对发光、吸收与透射率的关系，不代表银河参数已经获得标定。
- [银河螺旋结构研究，2024](https://www.aanda.org/articles/aa/full_html/2024/06/aa49199-24/aa49199-24.html)：讨论银河薄盘尺度长度的文献范围；项目沿用的整体结构是近似模型。
- [欧洲南方天文台的银河摄影实例](https://www.eso.org/public/images/milkyway/)：原作由每张两分钟曝光的照片拼接，不能将这种摄影色彩直接等同于裸眼外观。
- [欧洲南方天文台的可见光与近红外对比](https://www.eso.org/public/videos/eso1920d/)：展示尘埃遮蔽在不同波段下的差异。

本轮验证覆盖均匀发光尘埃的解析解、地平坐标变换、连续恒星视差、短时间运动、近处尘埃采样，以及地景上方透明／下方遮挡。测试通过不等于全银河模型已完成观测校准。

## 尘埃响应、恒星点选与深空照片

尘埃背景和逐星计算使用两个独立后台任务。背景先返回 64 × 32 个全天方向样本，再返回 128 × 64 个样本；停止移动后继续补全 384 × 192 个样本。细化按条带执行，观察位置再次明显变化时取消过时的细节计算。尘埃专用积分不再计算无关的恒星发光分量，模型参数和积分段数保持不变。名称只投影有名字的实测恒星，并避开互相重叠的文字；非有限坐标不会送入绘制函数。

点选沿用当前三维位置、时间、视线与大气可见条件，只选择实测目录条目。详情区分源表的参考距离和亮度，与当前观察者的模拟距离。耶鲁亮星保留依巴谷编号和光谱原文；盖亚精简文件未包含原始恒星编号，因此本地行号只称为样本序号。动画中耶鲁亮星速度仍属模型推断，不能当成测得的个体速度。

欧米茄星团替换为欧洲南方天文台的完整宽视场照片；猎户座旧图仅覆盖核心，已改用主星云宽视场照片；仙女座旧图包含明显拼接轮廓，已改用完整巡天照片。图片坐标与横纵角宽按官方页面记录，显示时作背景扣除和柔和边缘融合。照片本身的亮度与色彩不是绝对测光预测；照片里的单个星点也不作为可点选的实测目录记录。来源、完整署名、许可与限制见 [深空影像来源](./deep-sky-image-sources.json)。

视场可缩小到 0.5 度，特写按钮通过镜头放大观测同一目标，不改变天体物理尺寸。

## 感光切换、照片融合与鼠标操作

仙女座的简化轮廓与照片现在都通过同一相机投影：目录中的长轴角度以天球北方为起点、向东方量取，不再直接作为屏幕旋转角。切换感光响应会改变亮度、色彩及可用的照片展示，不会改变天体的空间朝向。非相机模式仍显示近似轮廓，不把可见光照片当作裸眼或红外观测。

照片使用独立画布，与实际显示的银河背景作增亮混合；原先在透明画布内部混合，无法避免照片的暗部盖住后方天空。边缘继续渐隐，观测映射降低照片的色彩饱和度并保留线性亮度，沉浸增强保留较强颜色。两个版本只在图片加载时生成并缓存，拖动与切换时不重新处理像素。这是显示处理，不是绝对测光校准。

按下鼠标只记录一次可能的点击；主键保持按下且移动超过 5 个屏幕像素后才开始转动视角。松开、失去指针捕获、切换窗口或页面进入后台均清除拖动状态；即使松开事件漏掉，也会在检测到鼠标未按下时结束拖动。实测恒星查询放在点击事件中，查询异常不会留下拖动状态。虚拟星和照片中的星点没有独立实测目录资料，点击未命中时会说明原因。

回归检查覆盖单击后移动、拖动阈值、松开事件遗漏、取消操作、真实天狼星点选和仙女座在截图位置的两种表示方向一致。没有测量用户设备帧率或进行浏览器端视觉验收。

## 天体点选与名称搜索

星云、星团和已载入的目录星系现在支持点击查看类型、参考距离、当前距离和观测照片来源。可点击区域直接来自本帧的绘制位置、朝向和显示尺寸；照片的透明边缘不参与点选。点击地表遮挡方向时不查询背后的天体。照片中的单独星点仍没有逐星资料，只有已载入的实测恒星目录可以打开恒星详情。

搜索支持已有中文常用名、英文名、依巴谷编号、亨利·德雷珀编号，以及深空目录天体名称。盖亚精简样本不含官方恒星编号，只开放明确标为本地样本的序号查询。输入未匹配的名字时不会生成或补造天体数据。搜索内容只在星表载入时整理，转动视线或播放时间不会重建搜索内容。

选择搜索结果会暂停模拟时间；恒星使用当时的位置和当前观察者坐标计算视线，不返回固定的太阳参考天球。深空目标可进入相机特写，并保持资料面板打开；目标被地平线挡住时切换为无大气视图并说明原因。搜索定位只改变观察方向与视场，不把观察者传送到目标附近。

- 首页穿行使用固定三维星点与连续曲线相机，滚动和导航共用缓动进度；银河、星云与星系照片位于不同纵深，用于首页展示，不作为观星平台的三维观测数据。四个功能展示分别使用银河、星团、星云与星系影像。

- 首页围绕“同一片银河，不同的星空”介绍异地观星。中英文重新区分标题、引语与操作说明；功能影像不接收点击，按钮与导航位于独立的上层，跨页面入口直接使用页面链接。背景在操作控件就绪后启动，静止时降低绘制频率，且不反复写入未变化的页面样式。
