跳到内容

Celestia/1.6.0 特性

来自维基教科书,开放世界的开放书籍

太阳系天体的三轴椭球体

[编辑 | 编辑源代码]

SourceForge 功能跟踪器项目 1662019

代码更改,加上目录更新。代码更改已完成,但在签入前需要对一些细节进行讨论。

三轴椭球体应该如何指定?对于恒星,我们使用 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)

假设恒星的行为就像它们总是具有半径定义,来自黑体计算? Ajtribick (讨论)
是的,这就是我的想法:即使 stc 文件中省略了半径,恒星总是根据黑体计算具有隐式半径。您觉得这合理吗? --Claurel (讨论) 2008 年 1 月 25 日 01:07 (UTC)

在修订版 4077 中实现 --Claurel (讨论) 2008 年 2 月 4 日 07:16 (UTC)

坐标显示

[编辑 | 编辑源代码]

我认为所有这些都应该一起考虑,而不是作为单独的功能

  • 观察者位置坐标
  • 视赤经/赤纬
  • 新的坐标网格
  • 黄道
  • 大地坐标(而不是地心纬度/经度)
  • 银河坐标

在开发列表中关于赤经/赤纬的讨论中产生了一个想法,那就是需要显示观察者坐标。我认为,无论是否需要它们来理解选择的方位,这都是正确的。目前,Celestia 显示观察者的参考系(跟随物体和目标物体,跟随/同步轨道/追逐/相位锁定)以及参考系内的速度。显示速度但没有显示位置似乎是一个严重的疏忽!可以将观察者位置显示为矩形坐标或球面坐标(经度、纬度、高度),相对于观察者框架的中心。

更改 HUD 文本

[编辑 | 编辑源代码]

在 3D 视图中显示的一些数据实际上不属于那里:温度、昼长、自转速度。这些数据要么源于可能不可靠的数据,要么不够有趣,不值得在 3D 视图中占用空间,或者两者都有。虽然我认为仍然值得显示这些信息,但我认为它们应该在 GUI 中的信息面板上显示,在那里数据可以伴随一些解释性文本。

我认为,在决定 3D 视图中包含哪些信息时,我们应该优先考虑与观察者相关的数值,例如距离和视大小。在观察者的视图中显示与观察者相关的数值有一个易于理解的逻辑。这有一个小的实际后果:与观察者相关的数值往往会在每一帧都发生变化,因此在每帧都刷新的视图中显示它们很方便。有一些与观察者无关的数值非常重要,因此它们应该包含在 HUD 中

  • 对象类型(恒星、星系、行星等)
  • 恒星的光谱类型和绝对星等
  • 星系的哈勃类型
  • 行星/卫星/小行星的半径;在适当情况下为三轴尺寸

所有对象的与观察者相关的数值

  • 距离
  • 视大小(当非微不足道时,> 0.1 角秒)
  • 视坐标

对于行星

  • 相位角

应从 HUD 中删除的值

  • 太阳系天体:温度、昼长
  • 恒星:光度、表面温度、行星存在、自转速度

"昼长" 如行星所示,是相当误导的。它实际上显示的是恒星自转速度,而没有限定词的“昼长”通常被理解为太阳日的长度。


相位角现在为太阳系天体显示。 --Claurel (讨论) 2008 年 7 月 16 日 16:47 (UTC)

添加文森特的罗盘

[编辑 | 编辑源代码]

一个可能的增强功能是添加一个标记,显示当前选定对象的方位。

推迟到 1.6.0 之后 --Claurel (讨论) 2008 年 10 月 2 日 01:00 (UTC)

显示/隐藏对象

[编辑 | 编辑源代码]

已实现,修订版 4081 --Claurel (讨论) 2008 年 2 月 4 日 07:14 (UTC)

对象的点击/不可点击设置

[编辑 | 编辑源代码]

SourceForge 功能跟踪器项目 371302

(如 Martin 和其他人所请求)

在修订版 4073 中实现 --Claurel (讨论) 2008 年 2 月 27 日 19:35 (UTC)

新的太阳系天体类别

[编辑 | 编辑源代码]
  • minormoon
  • surfacefeature
  • component
  • diffuse

将小卫星分类为次要卫星将使我们能够消除巨行星周围小卫星轨道上的混乱,除了在有人真正想观察它们时才除外。

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

Surfacefeature 和 component 在修订版 4077 中实现 --Claurel (讨论) 2008 年 2 月 4 日 07:12 (UTC)

"Minormoon 和漫射光已在版本 4273 中实现" --Claurel (讨论) 2008年4月14日 (一) 19:07 (UTC)

来自次级光源的照明

[编辑 | 编辑源代码]

例如,地球反照光,环光——球谐函数是否可以用于逼近全局照明?

已实现,但尚未提交到 SVN。仍需在计算反射光量时适当地考虑相位。 --Claurel (讨论) 2008年3月20日 (四) 17:24 (UTC)

行星反照光已在版本 4237 中完全实现 --216.231.48.102 (讨论) 2008年4月3日 (四) 18:12 (UTC)

更多高分辨率纹理

[编辑 | 编辑源代码]
  • 地球
  • 火星
  • 伽利略卫星
  • 更多土星卫星

是否可以将这些纹理的官方包单独下载,以节省带宽?

数据文件更新

[编辑 | 编辑源代码]
  • 添加 Andrew 的 CHARM2 星体半径测量目录
  • 添加 Selden 的脉冲星目录
我已经很久没有更新它了,而且弄丢了用于生成它的程序 :( Martin (Cham) 从 ATNF 网站进行了更近期的翻译。... Selden (讨论) 2008年1月23日 (三) 12:41 (UTC)

CHARM2 目录已由 Andrew 提交,SVN 版本 4462 --Claurel (讨论) 2008年10月2日 (四) 01:02 (UTC)

模型更新

[编辑 | 编辑源代码]
  • 添加 Itokawa 模型
  • 添加改进的 Eros 模型
  • 添加改进的 ISS 模型

为标记添加深度排序

[编辑 | 编辑源代码]

允许某些标记标记为“始终位于前景”

已在版本 4119 中实现 --Claurel (讨论) 2008年2月14日 (四) 00:34 (UTC)

使 Modify 可用于星体目录

[编辑 | 编辑源代码]

来自 ajtribick 的功能追踪器请求

已在 SVN 版本 4416 中实现;为了与 ssc 文件保持一致,添加了 Add 和 Replace 处理。 --Claurel (讨论) 2008年10月2日 (四) 01:04 (UTC)

参考系工作

[编辑 | 编辑源代码]

(主要是内部内容)

  • 清理参考系代码;根据 1.5.0 参考系重写旧参考系(“跟随”、“同步轨道”等)。
  • 在 celx 脚本中公开 1.5.0 参考系。
  • 通过缓存提高参考系性能
  • 为太阳系天体实现参考系层次结构;在渲染器和太阳系浏览器中使用此参考系层次结构。
  • 为轨道实现速度方法

正在进行中。主要清理工作已完成,正在测试速度方法和缓存改进。 --Claurel (讨论) 2008年2月14日 (四) 00:39 (UTC)

已实现。轨道仍然需要更多速度方法。决定继续在太阳系浏览器中使用命名空间层次结构,因为参考系层次结构会随着时间变化。 --Claurel (讨论) 2008年2月24日 (日) 01:24 (UTC)

所有项目都已实现,尽管一些轨道时间的速度方法尚未完成。决定对于太阳系浏览器,命名空间层次结构比参考系层次结构更合适,因为它不会随着时间而改变。 --Claurel (讨论) 2008年3月15日 (六) 01:27 (UTC)

已实现 EllipticalOrbit、SampledTrajectory 和 SPICE Orbit 的速度方法(截至版本 4280) --Claurel (讨论) 2008年4月16日 (三) 19:19 (UTC)

切换到基于 int64 的 BigFix

[编辑 | 编辑源代码]

(为了性能) 新类已编码,但需要进行广泛的测试以确保与旧版本的 Celestia 兼容。新类包含一个高精度乘法运算符,这将使一些参考系内容的编码变得更容易。

已实现;目前正在验证和评估新类的性能 --Claurel (讨论) 2008年2月4日 (一) 07:13 (UTC)

已完成 --Claurel (讨论)

相对 cel URL

[编辑 | 编辑源代码]

在 cel URL 中存储参考系坐标,而不是绝对坐标;这将导致更具未来性的 URL。

已实现;正在测试补丁以验证与现有 cel URL 的兼容性 --Claurel (讨论) 2008年4月23日 (三) 20:47 (UTC)

代码已在版本 4318 中提交。目前,仅在 Qt4 前端中支持创建版本 3 URL --Claurel (讨论) 2008年5月6日 (二) 20:07 (UTC)

Toti 的动画纹理

[编辑 | 编辑源代码]

推迟到 1.6.0 之后。 --Claurel (讨论) 2008年10月2日 (四) 01:10 (UTC)

改进的 SPICE 支持

[编辑 | 编辑源代码]
  • 处理方位角内核
  • 自动确定有效时间窗口
  • 更好地处理相对路径

已添加自动时间窗口确定和支持在单个 SpiceOrbit 中使用多个内核(版本 4128)。 --Claurel (讨论) 2008年2月24日 (日) 01:27 (UTC)

已实现基于 SPICE 参考系的旋转模型,允许使用航天器方位角内核。(版本 4247)。 --Claurel (讨论) 2008年4月9日 (三) 03:31 (UTC)

可选标记

[编辑 | 编辑源代码]

如果标记的对象无论其视星等如何都可以被点击并选中,那将会很方便。来自 ajtribick 的功能跟踪请求

推迟到 1.6.0 之后。 --Claurel (讨论) 2008 年 10 月 2 日 01:11 (UTC)

celx 脚本中的备用星表支持

[编辑 | 编辑源代码]

celx 脚本应该能够查询恒星的 HD 和 SAO 目录编号。来自 ajtribick 的功能跟踪请求

SourceForge 功能跟踪项 1875572

在修订版 4116 中实现。 --Claurel (讨论) 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)

CustomRotation

[编辑 | 编辑源代码]

一些太阳系天体的旋转不能用绕固定轴的恒定旋转来充分描述。我们需要为这些天体创建自定义旋转模型,并使用 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)

支持恒星的 InfoURLs

[编辑 | 编辑源代码]

在 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 文件

[编辑 | 编辑源代码]

在 SampledTrajectory 记录中添加速度向量可以使轨迹在给定的内存占用量下(即为相同的精度所需样本更少)变得更加准确。HORIZONS 可以生成具有速度的星历,因此可以方便地获取 xyz+速度轨迹数据。包含位置和速度的文件将扩展名为 xyzv;此类文件可以替换 SampledOrbit 或 SampledTrajectory 中的 xyz 文件,而无需对 ssc 或 stc 文件进行任何其他修改。

在修订版 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)

  1. Celestia 1.5.0 仍然无法计算行星绕双星(如星球大战中的塔图因)运行时的温度。
  2. 如果两颗恒星都有行星,那么只有其中一颗恒星的行星会列在太阳系浏览器中。而且始终是同一个,而不是最近的那个!

Celestia 的 Qt 版本已经修复了太阳系浏览器问题。温度计算将在 1.6.0 之后进行处理。在我看来,温度并不重要到需要作为叠加文本的一部分显示。它应该在单独的信息窗口中显示(可能还有一些关于平衡温度到底是什么的解释——人们看到金星比地球冷时会感到困惑)。 --Claurel (talk) 2008 年 7 月 16 日 16:52

更新 stars.dat

[edit | edit source]

切换到一种更严格且文档更完善的方法,从 HIPPARCOS 数据集中构建 stars.dat。使用新的归约作为起点。

Andrew 从最新版本的 HIPPARCOS 目录中生成的新的 stars.dat。SVN 修订版 4462 --Claurel (talk) 2008 年 10 月 2 日 01:10

太阳系天体的多个名称

[edit | edit source]

使用与恒星和深空天体相同的冒号分隔名称列表,使为太阳系天体分配多个名称成为可能。

正在进行的项目

[edit | edit source]
  • Qt4 界面
  • 大气渲染
  • HDR
  • 高分辨率瓦片渲染
  • 插件包系统
华夏公益教科书