Celestia/1.6.0 功能
代码更改,加上目录更新。代码更改已完成,但在签入之前需要对具体内容进行一些讨论。
三轴椭球体应该如何指定?对于恒星,我们使用 SemiAxes [ x y z ] 指定形状,并将此形状乘以半径。但这对于行星来说稍微不方便,因为我们希望能够简单地写成
Mimas { SemiAxes [ 209.1 196.2 191.4 ] }
但是,如果恒星和行星的大小以不同的方式指定,那将是不幸的。我们可以通过对半径和半轴如何相互作用的更复杂定义来实现这两种方法。
- 指定了 SemiAxes,未给出半径:物体半轴为 (sa.x, sa.y, sa.z)
- 指定了半径,未给出 SemiAxes:物体半轴为 (r, r, r)
- 同时指定了 SemiAxes 和半径:物体半轴为 (r*sa.x, r*sa.y, r*sa.z)
恒星半轴的顺序与 ssc 文件中其他地方使用的坐标系不匹配 - y 和 z 轴已切换,与 Celestia 的内部坐标系匹配。与其将此复制到行星,不如更改恒星的工作方式可能更好。
行星和卫星形状 来自 _IAU/IAG 制图坐标和旋转元素工作组 (WG)_
_在修订版 4077 中实施_ --Claurel (讨论) 2008 年 2 月 4 日 (UTC) 07:16
我认为这些应该一起考虑,而不是作为单独的功能
- 观察者位置坐标
- 视赤经/赤纬
- 新的坐标网格
- 黄道
- 大地坐标(而不是地心纬度/经度)
- 银河坐标
开发列表上的赤经/赤纬讨论中出现的一个想法是需要显示观察者坐标。我认为,无论是否需要它们来理解选择的物体的位置,这都是正确的。目前,Celestia 显示观察者的参考系(跟随物体和目标物体,跟随/同步轨道/追踪/相位锁定)以及参考系内的速度。显示速度而不显示位置似乎是一个严重的疏漏!观察者位置可以以矩形坐标或相对于观察者系中心的球形坐标(经度、纬度、高度)显示。
在 3D 视图中显示的一些数据实际上并不属于那里:温度、昼长、自转速度。这些数据要么来自可能不可靠的数据,要么不够有趣,不值得在 3D 视图中占用空间,或者两者兼而有之。虽然我认为显示这些信息仍然有价值,但我认为应该在 GUI 中的信息面板上显示它们,在那里数据可以 همراه با一些解释性文本。
我认为,在决定哪些信息进入 3D 视图时,我们应该优先考虑与观察者相关的数值,例如距离和视大小。在观察者的视图中显示与观察者相关的数值有一个易于理解的逻辑。这有一个小的实际后果:与观察者相关的数值往往在每一帧都会发生变化,因此在每帧都会刷新一次的视图中显示它们很方便。有一些与观察者无关的基本数值应该出现在 HUD 中。
- 物体类型(恒星、星系、行星等)
- 恒星的光谱类型和绝对星等
- 星系的哈勃类型
- 行星/卫星/小行星的半径;在适当情况下,三轴尺寸
所有物体的与观察者相关的数值
- 距离
- 视大小(当不忽略时,> 0.1 角秒)
- 视坐标
对于行星
- 相位角
应该从 HUD 中删除的数值
- 太阳系天体:温度、昼长
- 恒星:光度、表面温度、存在行星、自转速度
“昼长”对于行星来说具有误导性。它实际上显示的是恒星自转速度,而没有限定词的“昼长”通常是指太阳日的长度。
_现在为太阳系天体显示相位角。_ --Claurel (讨论) 2008 年 7 月 16 日 (UTC) 16:47
一种可能的增强功能是添加一个标记来显示当前选定物体的方向。
_推迟到 1.6.0 之后_ --Claurel (讨论) 2008 年 10 月 2 日 (UTC) 01:00
_已实施,修订版 4081_ --Claurel (讨论) 2008 年 2 月 4 日 (UTC) 07:14
(按马丁和其他人的要求)
_在修订版 4073 中实施_ --Claurel (讨论) 2008 年 2 月 27 日 (UTC) 19:35
- minormoon
- surfacefeature
- component
- diffuse
将小型卫星归类为 minor 将使我们能够消除巨行星周围小型卫星轨道的混乱,除非在有人真正想观察它们的极少数情况下。
feature 和 component 提供了更多分类物体的选项。此外,此类物体永远不会在远处以恒星状圆盘的形式呈现。
可能还需要一个 dwarfplanet 类。
diffuse 类将用于像尘埃羽流和气体云这样的物体。
各种类的默认属性如下表所示。
Planet Moon Spacecraft Component Invisible Diffuse Visible yes Yes Yes Yes No Yes VisibleAsPoint yes Yes Yes No No No Clickable yes Yes Yes Yes No No(?) Planetshine yes Yes No No No No
4077 版中实现了表面特征和组件 --Claurel (talk) 2008 年 2 月 4 日 07:12 (UTC)
"4273 版中实现了小卫星和漫射" --Claurel (talk) 2008 年 4 月 14 日 19:07 (UTC)
来自次级光源的照明
[edit | edit source]例如,地球光,环光 - 球谐函数可以用来近似全局照明吗?
已实现,但尚未提交到 SVN。仍然需要在计算反射光量时适当考虑相位。 --Claurel (talk) 2008 年 3 月 20 日 17:24 (UTC)
4237 版中完全实现了行星光 --216.231.48.102 (talk) 2008 年 4 月 3 日 18:12 (UTC)
更多高分辨率纹理
[edit | edit source]- 地球
- 火星
- 伽利略卫星
- 更多土星卫星
是否可以将这些高分辨率纹理打包成单独的官方包,以便从主包中单独下载,从而节省带宽?
数据文件更新
[edit | edit source]- 添加 Andrew 的 CHARM2 星体半径测量目录
- 添加 Selden 的脉冲星目录
- 我已经有一段时间没有更新它了,并且遗失了用于生成它的程序 :( Martin (Cham) 从 ATNF 网站进行了更新的翻译。... Selden (talk) 2008 年 1 月 23 日 12:41 (UTC)
Andrew 提交了 CHARM2 目录,SVN 修订版 4462 --Claurel (talk) 2008 年 10 月 2 日 01:02 (UTC)
模型更新
[edit | edit source]- 添加 Itokawa 模型
- 添加改进的 Eros 模型
- 添加改进的 ISS 模型
为标记添加深度排序
[edit | edit source]允许一些标记被标记为“始终位于前景”
在 4119 版中实现 --Claurel (talk) 2008 年 2 月 14 日 00:34 (UTC)
使“修改”功能适用于星体目录
[edit | edit source]ajtribick 的功能跟踪请求
在 SVN 修订版 4416 中实现;为了与 ssc 文件保持一致,添加了“添加”和“替换”处理。 --Claurel (talk) 2008 年 10 月 2 日 01:04 (UTC)
参考系工作
[edit | edit source](主要是内部内容)
- 清理参考系代码;用 1.5.0 参考系重写旧的参考系(“跟随”,“同步轨道”等)。
- 在 celx 脚本中公开 1.5.0 参考系。
- 通过缓存来提高参考系的性能
- 为太阳系天体实现参考系层次结构;在渲染器和太阳系浏览器中使用此参考系层次结构。
- 为轨道实现速度方法
正在进行中。主要清理已完成,速度方法和缓存改进正在测试中。 --Claurel (talk) 2008 年 2 月 14 日 00:39 (UTC)
已实现。轨道还需要更多速度方法。决定在太阳系浏览器中继续使用命名空间层次结构,因为参考系层次结构会随时间变化。 --Claurel (talk) 2008 年 2 月 24 日 01:24 (UTC)
所有项目都已实现,尽管一些轨道时间的速度方法尚未完成。决定在太阳系浏览器中,命名空间层次结构比参考系层次结构更合适,因为它不会随时间变化。 --Claurel (talk) 2008 年 3 月 15 日 01:27 (UTC)
已实现椭圆轨道、采样轨迹和 SPICE 轨道(截至 4280 版)的速度方法 --Claurel (talk) 2008 年 4 月 16 日 19:19 (UTC)
切换到基于 int64 的 BigFix
[edit | edit source](为了提高性能) 新类已编码,但需要进行广泛的测试以确保与旧版本的 Celestia 兼容。新类包含高精度乘法运算符,这将使一些参考系代码更容易编写。
已实现;目前正在验证和分析新类的性能 --Claurel (talk) 2008 年 2 月 4 日 07:13 (UTC)
相对 cel URL
[edit | edit source]在 cel URL 中存储参考系坐标,而不是绝对坐标;这将导致更具未来性的 URL。
已实现;正在测试补丁以验证与现有 cel URL 的兼容性 --Claurel (talk) 2008 年 4 月 23 日 20:47 (UTC)
代码已在 4318 版中提交。目前,创建版本 3 URL 仅在 Qt4 前端中受支持 --Claurel (talk) 2008 年 5 月 6 日 20:07 (UTC)
Toti 的动画纹理
[edit | edit source]推迟到 1.6.0 之后。 --Claurel (talk) 2008 年 10 月 2 日 01:10 (UTC)
改进的 SPICE 支持
[edit | edit source]- 处理方向核
- 自动确定有效的时间窗口
- 更好地处理相对路径
添加了自动时间窗口确定,以及在单个 SpiceOrbit 中支持多个核(修订版 4128)。 --Claurel (talk) 2008 年 2 月 24 日 01:27 (UTC)
实现了基于 SPICE 参考系的旋转模型,允许使用航天器方向核。(修订版 4247)。 --Claurel (talk) 2008 年 4 月 9 日 03:31 (UTC)
可选标记
[edit | edit source]如果可以点击标记的对象并选择它们,而不管它们表面的亮度,那将很方便。ajtribick 的功能跟踪请求
推迟到 1.6.0 之后。 --Claurel (talk) 2008 年 10 月 2 日 01:11 (UTC)
celx 脚本中的备用星体目录支持
[edit | edit source]Celx 脚本应该能够查询星体的 HD 和 SAO 目录号。ajtribick 的功能跟踪请求
在 4116 版中实现 --Claurel (talk) 2008 年 2 月 14 日 00:37 (UTC)
这里有一个有趣的银河系星团目录,包括位置(包括距离)、光度参数、金属丰度等:http://physwww.physics.mcmaster.ca/%7Eharris/mwgc.dat
球状星团之前已经讨论过,关于它们是否应该被归类为星系、疏散星团还是一种新型深空天体,存在一些分歧。我目前的观点是,我们应该添加一种新型深空天体。如果我们这样做,我们需要选择一套合适的参数。
由 Fridger 实现,SVN 版本 4447-4449 --Claurel (讨论) 2008 年 10 月 2 日 00:58 (UTC)
时间线是一个新的 SSC 属性,它解决了复杂插件中经常出现的问题。一个有说服力的例子是卡西尼-惠更斯任务。惠更斯探测器最初与卡西尼号宇宙飞船相连。2004 年 12 月 25 日,它从卡西尼号分离,进行了三周的自由飞行,然后进入土卫六大气层,最后降落在其表面。使用三个参考系来描述整个任务是最方便的:卡西尼号的本体固定坐标系、自由飞行段的土星中心惯性坐标系,最后是土卫六的本体固定坐标系。在 Celestia 1.5.0 中,一个天体只有一个参考系,因此惠更斯探测器的 SSC 文件必须使用三个不同的天体来表示探测器。使用时间线,可以为任务的不同阶段指定不同的参考系、轨迹和旋转模型。
这是一个 SSC 文件中惠更斯任务可能的样子示例
"Huygens" "Sol" { Class "spacecraft" Mesh "huygens.3ds" Radius 0.00135 Timeline [ # Attached to Cassini { Beginning "1997 10 15 09:27" OrbitFrame { BodyFixed { Center "Sol/Cassini" } } FixedPosition [ ... ] BodyFrame { BodyFixed { Center "Sol/Cassini" } } FixedRotation { ... } } # Free flight { Beginning "2004 12 25 02:01" OrbitFrame { EclipticJ2000 { Center "Sol/Saturn/Titan" } } SampledTrajectory { ... } BodyFrame { EclipticJ2000 { } } SampledOrientation { ... } } # Landed on Titan { Beginning "2005 1 14 09:00" OrbitFrame { BodyFixed { Center "Sol/Saturn/Titan" } } FixedPosition [ ... ] BodyFrame { BodyFixed { Center "Sol/Saturn/Titan" } } FixedRotation { ... } } ] }
已实现并提交。需要完成文档。 --Claurel (讨论) 2008 年 2 月 24 日 01:25 (UTC)
一些太阳系天体的旋转不能用绕固定轴的恒定旋转来充分描述。我们需要为这些天体创建自定义旋转模型,使用 C++ 函数来计算方向。它们应该通过 CustomRotation SSC 属性来使用,类似于 CustomOrbit 的工作方式。
我们应该为以下天体创建 CustomRotations
- 地球(岁差和章动)
- 月球
- 土星的主要卫星(尤其是土卫一)
- 伽利略卫星
- 海王星的卫星海卫一
- IAU 行星模型
极点位置的长期项应该被限制,以避免行星在遥远的过去或将来发生“翻滚”。
已实现 IAU 行星、月球、火星、木星和土星主要卫星的模型。 --Claurel (讨论) 2008 年 2 月 24 日 01:36 (UTC)
已实现地球的岁差:P03 模型和 P03 的长期扩展。 --Claurel (讨论) 2008 年 3 月 15 日 01:24 (UTC)
已实现天王星主要卫星的 IAU 旋转模型。 --Claurel (讨论) 2008 年 5 月 2 日 22:17 (UTC)
Celestia 1.5.0 无法处理距离太阳超过 16,000 光年的恒星。这个限制在版本 4198 中得到了解决,最大距离增加到 1000 万光年。
在版本 4198 中实现 --Claurel (讨论) 2008 年 3 月 22 日 01:35 (UTC)
在 1.5.0 中,太阳系天体和深空天体可以拥有 InfoURLs,但恒星始终使用默认的 SIMBAD URL。能够为恒星提供 InfoURLs 也将非常有用。与其他扩展的恒星属性一样,InfoURLs 仅适用于 stc 文件中定义的恒星。
在版本 4185 中实现 --Claurel (讨论) 2008 年 3 月 22 日 01:35 (UTC)
在 1.5.0 中经常出现的一个问题是冥王星的轨道不再可见。这是因为冥王星的轨道是相对于冥王星-卡戎质心重新定义的,而质心的日心轨道没有显示。1.6.0 将被修改为,如果绕该参考点运行的天体中存在行星、卫星、小行星或航天器,则渲染参考点的轨道。
在版本 4237 中实现 --Claurel (讨论) 2008 年 4 月 9 日 03:30 (UTC)
在 SampledTrajectory 记录中添加速度向量可以使轨迹在给定内存占用量下更加准确(即相同精度下需要更少的样本)。HORIZONS 可以生成带有速度的星历表,因此存在现成的 xyz+速度轨迹数据的来源。带有位置和速度的文件将具有扩展名 xyzv;这些文件可以在不修改 ssc 或 stc 文件的情况下替换 SampledOrbit 或 SampledTrajectory 中的 xyz 文件。
在版本 4236 中实现 --216.231.48.102 (讨论) 2008 年 4 月 3 日 18:17 (UTC)
卡西尼号的当前轨迹只覆盖了标称任务,该任务于 2008 年 6 月结束。现在扩展任务的轨迹已经可用,我们应该将其包含在 Celestia 中。此外,新的时间线功能可以用于将惠更斯探测器定义为一个单独的天体,而不是分别定义为连接到卡西尼号和自由飞行任务段的两个天体。
在 SVN 版本 4420 中添加了新的卡西尼号任务。 --Claurel (讨论) 2008 年 10 月 2 日 01:08 (UTC)
除了现有的赤道网格之外,还要添加新的网格类型:水平(地平线)、黄道和银道。绘制的网格线应该随着用户放大而改变,保持大致一致的线密度。网格弧线的细分应该是自适应的,以使它们始终显示为平滑的。为了使标签有用,它们必须始终显示在视野内的点,而不是像当前实现中那样显示在固定位置。
在 SVN 版本 4352 中实现 --Claurel (讨论) 2008 年 5 月 31 日 02:29 (UTC)
- Celestia 1.5.0 仍然无法计算行星围绕双星运行时的温度(比如星球大战中的塔图因)。
- 如果两颗恒星都有行星,那么只有其中一颗恒星的行星会出现在太阳系浏览器中。而且总是同一个,而不是最近的那个!
太阳系浏览器的问题在 Celestia 的 Qt 版本中已经修复。温度计算将在 1.6.0 之后解决。在我看来,温度并不重要到应该显示在叠加文本中的程度。它应该显示在单独的信息窗口中(可能附带一些关于平衡温度的解释——人们发现金星比地球更冷时会感到困惑)。 --Claurel (讨论) 2008 年 7 月 16 日 16:52 (UTC)
切换到更严格且有更好文档的方法来从HIPPARCOS数据集构建stars.dat。使用新的归约作为起点。
Andrew从最新版本的HIPPARCOS目录中产生的新stars.dat。SVN版本4462 --Claurel (讨论) 01:10, 2008年10月2日 (UTC)
使使用与恒星和深空天体相同的冒号分隔名称列表,为太阳系天体分配多个名称成为可能。
- Qt4界面
- 大气渲染
- HDR
- 高分辨率瓦片渲染
- 附加组件的包系统