СОЗДАНИЕ ПЛАНЕТ

В этом руководстве описывается, как добавить планету в SpaceEngine. Перед тем, как продолжить, рекомендуется прочитать эти руководства:
Введение
Создание звёзд

Быстрый старт: найти похожую планету в SpaceEngine

Самый простой способ добавить планету - это найти процедурную планету в SpaceEngine, которая похожа на ту, что вам нужна, и продублировать её в вашем скрипте планетной системы. Затем можно немного изменить её параметры с помощью Редактора планет или вручную в самом скрипте. Быстро найти планету по параметрам можно с помощью Браузера звёзд. Откройте его, нажав клавиши [Shift]+[F3], введите радиус поиска 100 и нажмите кнопку [Настройки фильтра]. Затем настройте параметры фильтра. В этом примере будем искать комфортную терру размером с Землю возле звезды класса G:

Нажмите кнопку [ОК] и подождите, пока SpaceEngine закончит поиск. После этого можно кликнуть по какой-либо строке таблицы, открыть Браузер планетной системы (клавиша [F2]) и просмотреть планеты, который нашёл SpaceEngine. Совет: чтобы узнать, какие именно планеты системы удовлетворяют параметры фильтра, наведите курсор мыши на ячейку таблицы в последнем столбце. Появится маленькое окошко со списком планет.

Давайте посмотрим, например, на планету RS 8474-918-7-65905-410 A4. Примечание: в вашей версии SpaceEngine эта планета может не существовать или выглядеть по-другому из-за установленных модов/аддонов или из-за другого номера версии.

Допустим эта планета вам подходит. Давайте скопируем её в нашу систему. Откройте Редактор планет ([Shift]+[F2] или Главное меню -> Редактор -> Редактировать планету). Убедитесь, что выбрана планета планета, иначе редактор не откроется, или откроется для какой-то другой планеты. Мы поговорим о параметрах редактора позже, а сейчас нажмите кнопку [Экспорт скрипта] ([Export script]):

Нажмите кнопку [Экспорт] ([Export]), и файл с именем RS 8474-918-7-65905-410 A4.sc появится в папке export/.

Теперь мы должны создать скрипт (файл каталога планет) для нашей планетной системы. Перейдите в папку addons/catalogs/planets/ (создайте её, если она не существует), и создайте там новый файл с именем MySystem.sc. Откройте его с помощью блокнота. Откройте также наш экспортированный скрипт export/RS 8474-918-7-65905-410 A4.sc, скопируйте его содержимое и вставьте в MySystem.sc. После этого необходимо сделать некоторые изменения.

Во-первых, вы должны выбрать звезду, у которой вы хотите создать планету. В текущей версии SpaceEngine невозможно создать систему у процедурной звезды (процедурные звёзды имеют имена вида "RS 123-456-789"). Так что вы должны выбрать реальную звезду из каталога, или создать новую звезду. Давайте выберем, например, звезду по имени Chara (бета Гончих Псов). Это солнцеподобная звезда спектрального класса G0V - хороший выбор для создания планеты с жизнью рядом с ней.

Надо дать какое-нибудь хорошее имя нашей планете. Звезда, которую мы выбрали, называется Chara, так что хорошее имя для её планеты - Char (привет от Королевы Клинков 🙂 ). Посмотрите на самую первую строчку скрипта и измените её с Planet "A4" на Planet "Char". Далее, мы должны указать SpaceEngine, что эта планета вращается вокруг звезды Chara. Посмотрите на третью строчку, и измените её с ParentBody "А" на ParentBody "Chara". Теперь планета будет вращаться вокруг звезды Chara, но она может иметь неправильную орбиту, особенно если вы экспортировали луну, а хотите сделать её планетой, или наоборот. Перейдите в конец скрипта и найдите тег Orbit. Измените параметр SemiMajorAxis на 1.0 (это среднее расстояние от звезды в 1 астрономическую единицу) - хорошее начало для тонкой настройки в землеподобной планеты у солнцеподобной звезды. Также можно удалить параметр Period (так что SE вычислит его автоматически на основе массы звезды), а также изменить параметр Eccentricity на некое малое значение (так что орбита планеты будет близка к окружности). Сохраните изменения и запустите SpaceEngine. Нажмите клавишу [F3] и введите название вашей планеты: Char. Затем нажмите клавишу [G] в два раза, и вы увидите вашу планету:

Она может выглядеть немного по-другому, потому что в первый раз вы можете выбрать не очень подходящий радиус орбиты (большую полуось), так что планета может оказаться слишком горячей или слишком холодной. Так что теперь вы должны настроить некоторые параметры в вашем скрипте планеты. Помните: после редактирования скрипта, необходимо перезапустить SpaceEngine, чтобы увидеть изменения.

Использование Редактора планет

Самый простой способ настройки планеты - это использовать Редактор планет. Но он имеет два основных ограничения:
1) Редактор не сохраняет изменения в файлах. Вы должны снова экспортировать скрипт и вручную скопировать/вставить код из него в ваш скрипт.
2) Редактор ещё в разработке, поэтому он позволяет редактировать не все параметры, и имеет некоторые глюки.

Но вы все равно можете быстро настроить основные параметры, такие как радиус орбиты (SemiMajorAxis), альбедо планеты и парниковый эффект атмосферы, для того, чтобы добиться желаемой температуры на планете; изменить её радиус и массу, чтобы отрегулировать поверхностную силу тяжести; изменить модель атмосферы, а также изменить некоторые процедурные формы ландшафта (см. следующую главу).

Почти все изменения требуют нажатия кнопки [Обновить] ([Update]), чтобы увидеть их. Нажатие кнопки [Сбросить] ([Reset]) отменяет изменения, сделанные после открытия редактора. Это значит, что если вы сделали какие-то изменения и закрыли редактор, вы больше не сможете отменить их. Только перезапуск SpaceEngine отменит эти изменения (помните, что редактор не сохраняет изменения в файле). Так что, если вы хотите добиться хороших результатов, или если вы хотите стать более опытным в создании планет, читайте следующую главу этого руководства.

Допустим, мы изменили некоторые параметры нашей планеты Char с помощью редактора: изменили парниковый эффект атмосферы, чтобы сделать планету теплее, изменили высоту снежных шапок, модель атмосферы и её оттенок, поиграли с процедурными параметрами поверхности. Мы также убрали кольца, удалив тег Rings из скрипта, и добавив NoRings true (см ниже). В итоге скрипт планеты стал выглядеть так:

Code
Planet    "Char"
{

ParentBody     "Chara"
Class          "Terra"Mass            1.72541
Radius          7262.85
InertiaMoment   0.332483Oblateness      0.00446722

RotationPeriod  19.2199
Obliquity       4.6793
EqAscendNode   -35.5612

AlbedoBond      0.437803
AlbedoGeom      0.525363
Brightness      2
Color          (0.775 0.780 0.782)

Life
{

Class   "Organic"
Type    "Multicellular"
Biome   "Terrestrial"

}

Surface
{

SurfStyle       0.024245
OceanStyle      0.62373
Randomize      (-0.485, 0.692, -0.399)
colorDistMagn   0.0445073
colorDistFreq   794.398
detailScale     18680.5
colorConversion true
drivenDarkening -1
seaLevel        0.533667
snowLevel       0.865079
tropicLatitude  0.0819224
icecapLatitude  0.758483
icecapHeight    0.545793
climatePole     0.9375
climateTropic   0.522706
climateEquator  0.6875
heightTempGrad  0.414794
tropicWidth     0.374003
mainFreq        1.0687
venusFreq       0.653746
venusMagn       0
mareFreq        3.10486
mareDensity     0.060662
terraceProb     0.253474
erosion         0.11918
montesMagn      0.150631
montesFreq      345.084
montesSpiky     0.894682
montesFraction  0.519249
dunesMagn       0.0468856
dunesFreq       54.408
dunesFraction   0.942635
hillsMagn       0.130191
hillsFreq       980.783
hillsFraction   0.0357427
hills2Fraction  0.817134
riversMagn      58.1157
riversFreq      2.85878
riversSin       7.62415
riversOctaves   2
canyonsMagn     0.0632909
canyonsFreq     100
canyonFraction  0.0454924
cracksMagn      0.0824855
cracksFreq      0.811998
cracksOctaves   0
craterMagn      0.752975
craterFreq      25.728
craterDensity   0
craterOctaves   0
craterRayedFactor 0
volcanoMagn     0.712696
volcanoFreq     0.703719
volcanoDensity  0.275554
volcanoOctaves  3
volcanoActivity 0.334258
volcanoFlows    0.479296
volcanoRadius   0.552217
volcanoTemp     1460.56
lavaCoverTidal  0
lavaCoverSun    0
lavaCoverYoung  0
stripeZones     1.14778
stripeFluct     0
stripeTwist     0
cycloneMagn     2.40332
cycloneFreq     0.639954
cycloneDensity  0.419004
cycloneOctaves  2
colorSea       (0.040, 0.200, 0.200, 1.000)
colorShelf     (0.150, 0.370, 0.370, 1.000)
colorBeach     (0.820, 0.730, 0.570, 0.000)
colorDesert    (0.420, 0.360, 0.220, 0.000)
colorLowland   (0.220, 0.230, 0.220, 0.000)
colorUpland    (0.570, 0.540, 0.420, 0.000)
colorRock      (0.100, 0.100, 0.100, 0.000)
colorSnow      (1.000, 1.000, 1.000, 1.308)
colorLowPlants (0.117, 0.154, 0.084, 0.000)
colorUpPlants  (0.097, 0.106, 0.056, 0.000)
BumpHeight      17.3379
BumpOffset      9.25266
DiffMapAlpha   "Water"
SpecBrightWater 0.65
SpecBrightIce   0.85
SpecularPower   55
Hapke           0
SpotBright      4
SpotWidth       0.05
DayAmbient      0.07

}

Clouds
{

Height          4.36572
Velocity        117.481
BumpHeight      4.36566
Hapke           0.2
SpotBright      2
SpotWidth       0.15
DayAmbient      2
mainFreq        1.11873
mainOctaves     10
Coverage        0.396338
stripeZones     1.14778
stripeFluct     0
stripeTwist     0

}

Ocean
{

Height          9.25266
Hapke           0
SpotBright      2
SpotWidth       0.15
DayAmbient      2

}

NoLava          true

Atmosphere
{

Model          "Thick"
Height          124.52
Density         4.88424
Pressure        2.63276
Greenhouse      57.1429
Bright          10
Opacity         1
SkyLight        3.33333
Hue             0.428571
Saturation      1

Composition
{

CO2       94.3917
O2        5.53639
N2        0.0530705
SO2       0.0153837
Ar        0.00293737
Ne        0.000270165
H2O       0.000267185
Kr        1.95886e-005

}

}

Aurora
{

Height      53.3841
NorthLat    57.4894
NorthLon    88.7206
NorthRadius 1455.88
NorthWidth  284.757
NorthRings  4
NorthBright 0.3
NorthParticles 0
SouthLat    -57.5165
SouthLon    273.482
SouthRadius 1342.38
SouthWidth  384.318
SouthRings  3
SouthBright 0.3
SouthParticles 0
TopColor    (1.000 1.000 1.000)
BottomColor (0.000 1.000 0.000)

}

NoRings         true

NoAccretionDisk true

NoCometTail     true

Orbit
{

RefPlane        "Equator"
SemiMajorAxis   1
Period          0.959885
Eccentricity    0.01
Inclination     0.0246517
AscendingNode   -36.7804
ArgOfPericenter 280.426
MeanAnomaly     264.157

}

}

А сама планета стала выглядеть в игре так:

Таким же способом можно добавить любую планету/луну/астероид (найти подходящую с помощью Браузера звёзд и экспортировать с помощью Редактора планет). Можете добавить код других объектов в тот же самый файл скрипта (на самом деле и рекомендуется иметь один файл скрипта для планетарной системы). Также полезно позволить SpaceEngine генерировать некоторые параметры автоматически, например облачные слоя для газовых гигантов. Как это сделать, описано в следующей главе.

Параметры скрипта планеты

Далее будем считать, что вы знакомы с основами скриптов SE.

Полная структура скрипта планеты такова:

Code
Planet "Name"
{

<Основные параметы>Life
{

<Параметры жизни>

}

Surface
{

<Параметры поверхности>

}

Ocean
{

<Параметры океана>

}

Clouds
{

<Параметры облаков>

}

Atmosphere
{

<Параметры атмосферы>

}

Aurora
{

<Параметры полярных сияний>

}

Rings
{

<Параметры колец, только не звёзды>

}

AccretionDisk
{

<Параметры аккреционного диска, только звёзды>

}

CometTail
{

<Параметры кометного хвоста, только не звёзды>

}

Corona
{

<Параметры короны, только звзёды>

}

Orbit
{

<Параметры орбиты>

}

}

Планета, как минимум, должна иметь параметры ParentBody и Mass или Radius, и тег Orbit тег с известным SemiMajorAxis или Period. Дополнительно, она может иметь или не иметь некоторые параметры и теги, описанные ниже (поверхность, облака, и т.д.). Если какой-либо параметр или тег не указан, он может быть инициализирован значением по умолчанию, вычислен или процедурно сгенерирован. Пример минимального скрипта планеты:

Code
Planet    "Minimus"
{

ParentBody "Vega"
Radius     7200   // or Mass 1.5
Orbit
{

SemiMajorAxis  2.5 // or Period 2.2

}

}

В этом примере указаны только имя планеты и его родителя, физический размер или масса планеты, и размер или период её орбиты. SpaceEngine вычислит или сгенерирует остальные данные процедурно. Вы можете найти много таких "бедных" планет в каталоге экзопланет SpaceEngine, потому что часто масса/радиус и орбитальный период - это все данные, известные современной астрономии о данной экзопланете.

Можно отключить процедурную генерацию некоторых тегов, за исключением Surface и Orbit. Например, если вы создаёте планету без жизни и колец, вы не должны описывать в коде теги Life и Rings. Но SpaceEngine может сгенерировать их процедурно. Чтобы предотвратить процедурную генерацию, вы можете использовать эти параметры в теге Planet:
NoLife true
NoOcean true
NoLava true
NoClouds true
NoAtmo true
NoAtmosphere true
NoAurora true
NoRings true
NoAccretionDisk true
NoCometTail true
NoCorona true

Есть ещё один специальный "No" параметр:
NoLighting true
Он отключает освещение для данного объекта. Это может использоваться для создания демонстрационных систем типа диаграммы Герцшпрунга-Рассела звёзд с использованием фиксированных координат в пространстве (см. описание тега Orbit).

Теперь давайте посмотрим на все теги и параметры скрипта планеты.

Planet { }

Это главный тег, описывает планетарное тело. Другие возможные типы тела описываются изменения имени тега:

Planet - планета
DwarfPlanet - карликовая планета
Moon - луна
DwarfMoon - карликовая луна (малые луны неправильной формы)
Asteroid - астероид
Comet - комета
Star - звезда
Barycenter - барицентр двойной звезды или двойной планеты

Например, если вы хотите описать луну, используйте такой код: Moon "Name" {...}.

Любой тег Planet, Moon и т.д. должен иметь имя - строковое значение после имени тега. Если вы хотите дать объекту несколько альтернативных имён, разделите их косой чертой: Moon "Icarus/Archid II/ETA Cas 3.2". Допускается использование греческих букв - они вводятся аббревиатурами, как описано во введении.

Тег Barycenter описывает фиктивное "тело", которое является родительским телом двух звёзд двойной звёздной системы или двух планет двойной планеты. Он сам может обращаться по орбите вокруг другого тела - звезды или даже другого барицентра; таким образом можно описывать иерархические кратные звёзды и двойные планеты. Но убедитесь, что орбиты двух тел, вращающихся вокруг барицентра, заданы правильно (см. описание тега Orbit).

Ниже приводится описание всех параметров, используемых в тегах Planet, Moon и т.д.

ParentBody - имя объекта, вокруг которого обращается описываемый объект (т.е. его "родитель"). Например, если вы описываете луну, её родителем будет планета (можно сделать луну, вращающуюся вокруг солнца, но это не правильно с точки зрения астрономической терминологии). Если вы делаете двойную планету или звезду, обе её компонента должны вращаться вокруг барицентра, в их параметрах ParentBody необходимо указать имя этого барицентра.

Class - строковый параметр, описывающий класса поверхности планеты (влияет на генерацию процедурной поверхности) или спектральный класс звезды. Допустимые классы планеты:
"Asteroid" - астероидоподобный объект неправильной формы.
"Selena" - скалистая планета без атмосферы (как Мекурий, Луна, Ио).
"Desert" - скалистая планета с атмосферой, но без воды на поверхности (как Венера и Марс).
"Terra" - скалистая планета с атмосферой и водой на поверхности (как Земля).
"Oceania" или "WaterWorld" - планета-океан.
"IceWorld" - ледяная планета с атмосферой или без (как Европа, Ганимед, Каллисто).
"Titan" - ледяная планета с атмосферой и океанами из углеводородов (как Титан).
"IceGiant" или "Neptune" - ледяной гигант (как Уран и Нептун).
"GasGiant" или "Jovian" - газовый гигант (как Юпитер и Сатурн).
Спектральные классы звёзд описаны в руководстве Создание звёзд.

DiscMethod - метод открытия, используется для реальных экзопланет или звёзд. Допустимы следующие значения:
"RadVel", "Transit", "Astrometry", "MicroLens", "Imaging", "TTV", "TDV", "OrbitLight", "ETV", "Variable", "Pulsar", "Polarimetry", "AuroraEmis", "Interfer"
DiscDate - дата открытия, используется для реальных экзопланет или звёзд. Формат - "ГГГГ.ММ.ДД" или "ГГГГ". Пример: DiscDate "2010.06.15" или DiscDate "2010".

Radius - радиус поверхности в километрах. Для газовых гигантов это радиус уровня давления 1 атм.
RadiusSol или RadSol - радиус поверхности в радиусах Солнца (1 радиус Солнца = 696000 км).
Mass - масса в массах Земли (1 масса Земли = 5.9742·1024 кг).
MassSol - масса в массах Солнца (1 масса Солнца = 1.98892·1030 кг).
Msini - масса массах Земли, умноженная на синус угла наклона орбиты по отношению к лучу зрения. Используется для реальных экзопланет с неизвестным наклонением орбиты. SpaceEngine вычисляет или генерирует наклонение, а затем вычисляет реальную массу планеты. Также этот параметр отображается в интерфейсе и Wiki объекта.

Oblateness - полярное сжатие.
OblatenessInfo - полярное сжатие, отоюражаемое в интерфейсе. Может отдичаться от параметра Oblateness, не используется в графическом и физическом движке. Если не указано, равно значению параметра Oblateness.
InertiaMoment - безразмерный момент инерции объекта.
Age - возраст объекта в миллиардах лет.

RotationPeriod - период осевого вращения относительно звёзд в часах.
RotationEpoch - эпоха элементов вращения в Юлианских днях.
Obliquity, EqAscendNode - наклон оси вращения и долгота восходящего узла экватора в градусах, вместе определяют ориентацию очи вращения.
PoleRA, PoleDec - Прямое восхождение и склонение северного полюса, альтернативный метод определения ориентации оси вращения.
RotationOffset - начальная фаза вращения в градусах, используется с Obliquity и EqAscendNode.
ZeroMeridian - положение нулевого меридиана в градусах, используется с PoleRA и PoleDec.
Precession - период прецессии оси вращения в годах.
TidalLocked true - если указано, объект будет приливно-синхронизован по отношению к его родителю, т.е. всегда будет обращён к нему одной стороной. Вращательные параметры, заданные в скрипте, игнорируются, и рассчитываются из орбитальных параметров.

AlbedoBond - альбедо Бонда, влияет на температуру поверхности.
AlbedoGeom - геометрическое альбедо, влияет на яркость объекта и освещение соседних объектов.
Albedo - задаёт одно и то же значение для альбедо Бонда и геометрического альбедо.
Brightness - общая яркость рендера модели объекта.
Color - средний цвет объекта, используется для рендера его издалека в виде точки и для освещения соседних объектов. Если не указан, может быть рассчитан автоматически, когда пользователь приближается к объекту.

SlopeParam - показатель степени в формуле блеска кометы.
AbsMagn - абсолютная звёздная величина звезды, астероида или кометы.
AppMagn - визуальная звёздная величина звезды.
Lum или Luminosity - светимость звезды в солнечных единицах.
Teff или Temperature - эффективная ("поверхностная") температура звезды.

Life { }

Это описание тега жизни.

Class - тип биохимии жизни:
"Organic" - земноподобная органическая жизнь на основе воды и углерода.
"Exotic" - жизнь, основанная на других биохимических принципах, чем на Земле.

Type - уровень развития жизни:
"Unicellular" - одноклеточная.
"Multicellular" - многоклеточная.

Biome - среда обитания (биом) жизни:
"Subglacial" - в подповерхностном океане на ледяных мирах, таких как Европа.
"Marine" - морская жизнь, как на Земле.
"Terrestrial" - наземная жизнь, как на Земле.
"Floaters" или "Aerial" - воздушная жизнь в атмосфере газового гиганта.
Можно указывать несколько биомов одновременно, разделив их косой чертой: Biome "Marine/Terrestrial"

Panspermia true - указывает, что жизнь на этой планете возникла благодаря панспермии, т.е. была занесена из космоса (с другой планеты).

Можно описать два тега Life с различными биохимическими классами жизни. Например, такой мир, как Титан, может иметь как органическую жизнь в его подповерхностном океане, так и экзотических жизнь на его поверхности и в углеводородных морях.

Если тег Life не указан, жизнь на планете может быть сгенерирована процедурно. Чтобы запретить процедурную генерацию, используйте этот параметр в теге Planet:
NoLife true

Surface { }, Ocean { }, Lava { }, Clouds { }

Это теги, описывающие слой планеты. Слой - это сферическую поверхность, которая представляет собой твёрдую поверхность планеты, поверхность её океана, и один или несколько слоёв облаков. Слой может иметь 3D рельеф, заданный с помощью Bump карты (карты высот), окрашен с помощью Diff карты (карты диффузного цвета) и иметь Glow карту (карту свечения). Каждая планета имеет, по меньшей мере, один слой поверхности (тег Surface), может иметь слой океана (тег Ocean), и до десяти слоёв облаков (тег Clouds). Слой лавы (тег Lava) пока не реализован.

Если тег какого-либо слоя не указан, этот слой может быть сгенерирован процедурно. Чтобы запретить процедурную генерацию, используйте эти параметры в теге Planet:
NoClouds true - отключить все слои облаков,
NoOcean true - отключить океан,
NoLava true - отключить лаву (слой лавы пока не реализован).

Планета может иметь несколько слоёв облаков с разными текстурами, на разной высоте и с разной скоростью движения. Чтобы сделать это, надо просто описать тег Clouds несколько раз с различными параметрами внутри. Или можно использовать пустой тег: Clouds {}, чтобы позволить SpaceEngine сгенерировать все параметры процедурно. Планета также может иметь несколько слоев океана, но пока что это бессмысленно.

Ниже приведены описания всех параметров, разрешённых внутри тегов слоёв. Сначала опишем параметры, общие для всех слоёв, после этого - параметры, допустимые только для определённого типа слоя.

Параметры, общие для тегов Surface, Ocean и Clouds

Если вы делаете планету с текстурами, хранящихся на диске, используйте параметры DiffMap, BumpMap и GlowMap для описания текстур (подробнее см. руководство Создание текстур планет).

DiffMap, BumpMap, GlowMap - путь к текстуре или к папке с cubemap тайлами соответственно для диффузной карты, карты высот и карты свечения. Если не указано, может произойти генерация процедурной текстуры/карты.
DiffTileSize, BumpTileSize, GlowTileSize - разрешение тайлов соответствующих карт.
DiffTileBorder, BumpTileBorder, GlowTileBorder - ширина границы тайлов соответствующих карт.

BumpHeight - высота (масштаб) карты высот в км, то есть разность высот между самой низкой и самой высокой точкой поверхности. Может использоваться для облаков.
BumpOffset - отрицательное смещение ландшафта в км. Например, если вы хотите задать ландшафт от -8 км до +12 км, используйте BumpHeight 20 и BumpOffset 8.

DiffMapAlpha - как использовать альфа-канал диффузной текстуры:
"Water" - водяной блик (солнечный блик на плоской поверхности воды), используется для задания маски рек/озёр/морей на Земле,
"Ice" - ледяной блик (солнечный блик на искривлённой поверхности тела), используется для задания маски льда на холодных планетах,
"Transp" - прозрачность поверхности, используется только для облаков,
"None" - игнорировать альфа-канал.

GlowMode - как использовать текстуры свечения:
"Alpha" - режим устанавливается с помощью альфа-канала текстуры свечения,
"Night" - городские огни на ночной стороне (исчезают в дневное время),
"Permanent" - постоянно присутствующие огни (не реагируют на внешнюю освещённость),
"Thermal" - тепловое излучение, реагируют на местную температуру, и имеют сложный формат (RGB каналы текстуры представляют собой единое 24-битное значение температуры).

GlowColor - масштаб (множитель) цвета текстуры свечения.
GlowBright - общая яркость текстуры свечения.

ModulateColor - масштаб (множитель) цвета и альфа-канала диффузной текстуры.

SpecBrightWater - яркость солнечного блика на поверхности воды.
SpecBrightIce - яркость солнечного блика на поверхности льда.
SpecularBright - яркость солнечного блика на поверхности воды и льда.
SpecularPower или SpecPower - размер пятна блика, значение по умолчанию равно 55, тем меньше значение - тем больше пятно.

Hapke или Lommel - отношение модели освещения Ламберта к модели освещения модели Хапке. Используйте Hapke 0.0 для чистой модели Ламберта (хорошо для газовых гигантов) или Hapke 1.0 для чистой модели Хапке (хорошо для пыльных тел, таких как безвоздушные или пустынные планеты - имитирует эффект оппозиции). Используйте промежуточные значения для смешанной модели освещения (линейная интерполяция).
SpotBright - яркость пятна эффекта оппозиции.
SpotWidth - размер пятна эффекта оппозиции.

DayAmbient - фейковое фоновое освещение в светлое время суток. Используйте для тел без атмосферы и для облаков.

Exposure - то же, что и параметр Brightness в теге Planet - общая яркость рендера объекта. Сохранено для обратной совместимости.

Параметры, разрешённые только в теге Surface

Следующие параметры управляют генерацией процедурных текстур поверхности.

SurfStyle или Style - стиль (цветовая схема) поверхности. Соответствует StyleRange в файле палитры.
OceanStyle - стиль (цветовая схема) океана. Соответствует StyleRange в файле палитры.
Randomize - вектор рандомизации. Если вы сделаете две одинаковые планеты (всеми параметры идентичны), введите разные значения вектора рандомизации, чтобы заставить их выглядеть по-разному.

colorDistFreq, colorDistMagn - частота и величина «пятен» различных детальных текстур.
detailScale - масштаб детальной текстуры шума, видимой близко к поверхности.
colorConversion true - если указано, SE преобразует цвета атласа текстур в цвета, заданные в файле палитры или в параметрах colorBeach ... colorUpPlants (см ниже).
drivenDarkening - величина потемнения ведущего/ведомого полушария ледяных лун.

seaLevel - относительная глубина моря, устаревший параметр (используйте тег Ocean вместо него).
snowLevel - относительная высота уровня снега на горах.
tropicLatitude, icecapLatitude - синус широты тропиков и широты края полярной шапки (0.0 - экватор, 1.0 - полюс).
icecapHeight - относительная высота ледяных шапок.
climatePole, climateTropic, climateEquator - климат полюсов, тропиков и экватора (это индекс в таблице цветов, 0.0 - пустыни, 0.5 - умеренная зона, 1.0 - снег).
tropicWidth - ширина тропиков.

mainFreq - частота основного (глобального) шума, задаёт распределение континентов и океанов.
venusFreq, venusMagn - частота и величина венероподобных форм рельефа.

mareFreq, mareDensity - частота и плотность (количество) ударных бассейнов, таких как лунные моря.

erosion - величина водной эрозии в горах (0.0 для сухих планет, 1.0 для влажных).
terraceProb - вероятность террас в горах.
montesFreq, montesMagn, montesFraction - частота и величина горных хребтов, и относительная доля этих структур на поверхности планеты.
montesSpiky - величина "остроконечности" гор, как в SE 0.94.

hillsFreq, hillsMagn, hillsFraction, hills2Fraction - частота и величина холмов, и относительная доля этих структур на поверхности планеты (две по-разному выглядящие формы).

dunesFreq, dunesMagn, dunesFraction - частота и величина песчаных дюн, и относительная доля этих структур на поверхности планеты.

canyonFreq, canyonMagn, canyonFraction - частота и величина каньонов, и относительная доля этих структур на поверхности планеты.

riversFreq, riversMagn, riversSin, riversOctaves - частота, величина, кривизна и количество октав псевдо-рек.

cracksFreq, cracksMagn, cracksOctaves - частота, величина и количество октав трещин в ледяной коре, как на Европе.

craterFreq, craterMagn, craterDensity, craterOctaves - частота, величина, плотность (количество) и количество октав кратеров.
craterRayedFactor - число лучистых кратеров по сравнению с обычными кратерами.

volcanoFreq, volcanoMagn, volcanoDensity, volcanoOctaves - частота, величина, плотность (количество) и количество октав вулканов.
volcanoActivity - количество активных вулканов на планете.
volcanoFlows - длина лавовых потоков.
volcanoRadius - радиус вулканов.
volcanoTemp - температура лавы в кальдере и в потоках в Кельвинах.

lavaCoverTidal, lavaCoverSun, lavaCoverYoung - для расплавленных планет: относительное покрытие лавой, связанное с приливным разогревом, нагревом солнечным излучением, и собственным внутренним теплом из-за молодого возраста планеты.

stripeZones, stripeFluct, stipeTwist - число юпитероподобных зон или полос, величина их хаотичности и сила закручивания в вихри (используется для газовых гигантов).

cycloneMagn, cycloneFreq, cycloneDensity, cycloneOctaves - величина величина, частота, плотность и количество октав циклонов (используется для газовых гигантов).

colorSea, colorShelf, colorBeach, colorDesert, colorLowland, colorUpland, colorRock, colorSnow - 8 векторов (в RGB или RGBA формате) таблицы цветов, от более наименьших до наибольших высот рельефа. Значение альфа-канала, если указано, модулирует яркость ледяного блика (для холодных планет) или величину температуры облачных слоёв (для горячих газовых гигантов и коричневых карликов).

colorLayer0, colorLayer1, colorLayer2, colorLayer3, colorLayer4, colorLayer5, colorLayer6, colorLayer7 - синонимы предыдущих параметров, может использоваться для газовых гигантов и коричневых карликов для более понятного кода скрипта.

colorLowPlants и colorUpPlants - модификация параметров colorLowland и colorUpland для планет с жизнью, задаёт цвет растительности.

Параметры, разрешённые только в теге Ocean

Height - высота поверхности воды над самой нижней точкой поверхности планеты в километрах (т.е. от Radius в теге Planet минус BumpOffset в теге Surface). Сделайте её ниже самых высоких гор (меньше, чем BumpHeight), чтобы получить моря и континенты, или выше, чтобы получить планету, полностью покрытую водой.

Параметры, разрешённые только теге Clouds

Height - высота над самой нижней точкой поверхности планеты в километрах (т.е. от Radius в теге Planet минус BumpOffset в теге Surface). Сделайте её это выше самых высоких гор (больше, чем BumpHeight), если вы хотите, чтобы облака не пересекались с горами.
Velocity - скорость облаков на экваторе относительно поверхности планеты, в километрах в секунду.
Coverage - покрытие облаков (0 ... 1). Обратите внимание, что это не реальная доля площади, занятой облаками, а некая очень приблизительная величина.
ModulateColor - масштаб (множитель) цвета и альфа-канала диффузной текстуры облаков. Используйте альфа-компонент, чтобы задать общую прозрачность слоя облаков.

Следующие параметры управляют генерацией процедурных текстур облаков.

mainFreq, mainOctaves - основная частота и количество октав шума.

stripeZones, stripeFluct, stipeTwist - число юпитероподобных зон или полос, величина их хаотичности и сила закручивания в вихри (используется для газовых гигантов).

cycloneMagn, cycloneFreq, cycloneDensity, cycloneOctaves - величина величина, частота, плотность и количество октав циклонов (используется для газовых гигантов и планет земной группы).

TidalLocked true - если указано, образуется гигантский циклон на одной стороне планеты. Используется для планеты, приливно захваченной по отношению к своему солнцу.

Примечание о нескольких слоях облаков. Вы можете ввести тег Clouds несколько раз с пустыми фигурными скобками:

Code
Clouds {}
Clouds {}
Clouds {}


Это создаст три слоя облаков с автоматическими процедурными параметрами. Дополнительно, вы можете ввести свои индивидуальные параметры Height, Velocity и др. в каждом теге Clouds. Но параметры процедурных текстур всегда одинаковые во всех слоях облаков, так что вы можете ввести их один раз в любом из тегов Clouds, или даже в теге Surface (см. выше).

Atmosphere { }

Это тег атмосферы. SpaceEngine использует несколько предрассчитанных моделей атмосфер, хранящихся в pak-файле data/models/atmospheres/Atmospheres.pak в специальном двоичном формате с расширением .atm. Они описаны в скрипт-файле atmospheres.cfg, находящемся в том же pak-файле. Чтобы добавить свою собственную модель, можно создать новый файл addons/models/atmospheres/MyModels.cfg (имя файла не имеет значения), и набрать код модели атмосферы в нём. Обратите внимание, что не все компьютеры пользователей могут правильно сгенерировать .atm файлы из-за неподдерживаемых геометрических шейдеров или некоторых других проблем. Кроме того, вновь созданная модель атмосферы может быть использована только для ваших планет, они не будут использоваться на процедурных планетах в SpaceEngine. Поэтому рекомендуется использовать только стандартные модели атмосфер. Вы можете изменить их внешний вид в широких пределах, используя параметры Bright, Hue и Saturation (см. ниже).

Список стандартных моделей атмосфер:
Earth.atm - модель атмосферы Земли, нормальной плотности, голубое небо и красный закат.
Mars.atm - модель атмосферы Марса, нормальной плотности, красное небо и синий закат.
Venus.atm - модель атмосферы Венеры, плотная, жёлтое небо и синий закат.
Jupiter.atm - модель атмосферы Юпитера, нормальной плотности, белое небо и жёлтый закат.
Neptune.atm - модель атмосферы Нептуна, нормальной плотности, глубокое синее небо и розовый закат.
Titan.atm - модель атмосферы Титана, нормальной плотности, фиолетово-зелено-оранжевое небо и красный закат.
Pluto.atm - модель атмосферы Плутона, разреженная, фиолетово-зелено-оранжевое небо и красный закат.
Chlorine.atm - дополнительная модель атмосферы, толстая, зелёное небо и зелёный закат.
Thick.atm - дополнительная модель атмосферы, толстая, белое небо и оранжевый закат.
Sun.atm - дополнительная модель атмосферы, разреженная, белое небо и белый закат (в результате чего цвет совпадает с цветом свечения звезды).

Model - название модели атмосферы, одна из перечисленных выше, или вашей собственной, если вы создавали новую модель (без расширения файла, то есть "Earth", "Venus", и т.д.).
Height - высота верхней границы атмосферы в км. Типичное значение - 50-100 км для планет земной группы, 500-2000 км для газовых гигантов.
Давление - давление на нулевой высоте в [url=https://ru.wikipedia.org/wiki/Атмосфера_(единица_измерения)]атмосферах[/url].
Density - плотность воздуха при нулевой высоте в кг/м3.
MolarMass - средняя молярная масса газов воздуха в г/моль.
Adiabat - показатель адиабаты.
Greenhouse - температура парникового эффекта в Кельвинах.
Bright - яркость рендеринга. Значение по умолчанию равно 10.
Opacity - непрозрачность рендеринга. Чтобы избежать визуальных артефактов, используйте значение по умолчанию 1.
SkyLight - яркость освещения поверхности планеты небом в дневное время. Значение по умолчанию равно 3.3333.
Hue - изменение оттенка цвета. Значение по умолчанию равно 0.
Saturation - изменение насыщенности цвета. Значение по умолчанию равно 1.

Composition - тег, описывающий химический состав атмосферы. Тег должен содержать несколько числовых параметров, имена которых отражают некоторые газы, а значения - содержание этих газов в процентах. Пример тега Composition для Земли:

Code
Composition
{

N2  77.7729
O2  20.8625
Ar  0.9303
H2O 0.4000
CO2 0.0398

}


Поддерживаемые газы: H2, He, Ne, Ar, Kr, Xe, O2, N2, CO, CO2, SO, SO2, Cl2, NaCl, H2S, H2O, NH3, CH4, C2H2, C2H4, C2H6, C3H8. SpaceEngine может вычислить параметры Density, MolarMass, Adiabat и Greenhouse на основе состава атмосферы.

Все значения, кроме Composition, могут быть изменены в режиме реального времени Редакторе планет.

Если тег Atmosphere не указан, атмосфера может быть сгенерирована процедурно. Чтобы запретить процедурную генерацию, используйте этот параметр в теге Planet:
NoAtmosphere true

Aurora { }

Это тег полярных сияний. Для физического реализма, не создавайте полярные сияния на безвоздушных телах. Полярные сияния всегда создаются в верхней части атмосферы, значит высота их нижней границы равна высоте атмосферы.

Height - вертикальная протяжённость полярных сияний в км.
TopColor - цвет верхней части полярных сияний (RGB).
BottomColor - цвет нижней части полярных сияний (RGB).

Следующий набор параметров описывает соответственно северные и южные сияния.

NorthLat, SouthLat - широта центра аврорального кольца в градусах.
NorthLon, SouthLon - долгота центра аврорального кольца в градусах.
NorthRadius, SouthRadius - радиус аврорального кольца в км.
NorthWidth, SouthWidth - ширина аврорального кольца в км.
NorthRings, SouthRings - количество полос или колец.
NorthBright, SouthBright - яркость сияний.
NorthParticles, SouthParticles - число частиц. Если не указано, используется значение по умолчанию 50000 частиц.

Если тег Aurora не указан, полярные сияния могут быть сгенерированы процедурно. Чтобы запретить процедурную генерацию, используйте этот параметр в теге Planet:
NoAurora true

Rings { }

Это тег системы планетарных колец. Используется для планет, лун и астероидов.

Texture - путь к текстуре кольца. Он должен быть в формате RGBA и иметь размеры х * 2 пикселя, где х - длина текстуры (512, 1024 и т.д.). Первая строка пикселей представляет собой радиальное распределение цвета кольца в прямом свете (с непрозрачностью в альфа-канале), вторая строка - радиальное распределение цвета кольца в обратном (контровом) свете (с непрозрачностью в альфа-канале). Посмотрите на кольца Сатурна в SpaceEngine: они другой различный внешний вид в обратном освещении, когда солнце находится позади Сатурна. Если параметр Texture не указан, текстура будет сгенерирована процедурно.

InnerRadius - радиус внутреннего края колец в км.
OuterRadius - радиус внешнего края колец в км.
FrontBright - яркость прямого освещения колец.
BackBright - яркость обратного освещения колец.
Density - глобальный коэффициент непрозрачности.
Brightness или Exposure - глобальный коэффициент яркости.

RotationPeriod - период вращения кольца в часах.
RotationOffset - начальная фаза вращения в градусах. Не влияет на что-либо, потому что текстура колец в текущей версии (0.9.8.0) не имеет продольных деталей.

Если тег Rings тег не указан, кольца могут быть сгенерированы процедурно. Чтобы запретить процедурную генерацию, используйте этот параметр в теге Planet:
NoRings true

AccretionDisk { }

Это тег аккреционного диска. Используется для создания аккреционного диска вокруг чёрной дыры, нейтронной звезды или белого карлика.

InnerRadius - радиус внутреннего края диска в а.е. Если не указано, сгенерируется процедурное значение.
OuterRadius или Radius - радиус внешнего края диска в а.е.
AccretionRate - скорость аккреции в массах Солнца в год. Используется для расчёта других параметров, если они не указаны.
Temperature - температура самой горячей части диска в Кельвинах.
Luminosity - светимость диска в солнечных светимостях.
TwistMagn - сила эффекта закручивания текстуры.
Density - плотность или значение непрозрачности.
Brightness или Exposure - глобальный коэффициент яркости.

Если тег AccretionDisk не указан, аккреционный диск может быть сгенерирован процедурно. Чтобы запретить процедурную генерацию, используйте этот параметр в теге Planet:
NoAccretionDisk true

CometTail { }

Это тег кометного хвоста. Используется для комет и испаряющихся планет.

MaxLength - максимальная длина хвоста (то есть длина, когда комета или планета проходит перицентр орбиты) в а.е.
Particles - число частиц.
GasToDust - отношение числа частицы газа и пыли. Значение 0.0 генерирует полностью пылевой хвост, 1.0 - полностью газовый (ионный) хвост.
Bright - общая яркость хвоста.
GasBright - яркость частиц пыли.
DustBright - яркость частиц газа.
GasColor - цвет частиц пыли.
DustColor - цвет частиц газа.

Если тег CometTail не указан, кометный хвост может быть сгенерирован процедурно. Чтобы запретить процедурную генерацию, используйте этот параметр в теге Planet:
NoCometTail true

Corona { }

Это тег солнечной короны. Используется только для нормальных звёзд (т.е. не допускается для чёрных дыр, нейтронных звёзд и белых карликов). Эффект короны - процедурный.

Period - период анимации в годах, чем меньше значение, тем быстрее анимация.
Radius - радиус короны в км.
Brightness - яркость короны.
RayDensity - плотность лучистых образований.
RayCurv - кривизна лучистых образований.

Если тег Corona не указан, корона сгенерируется процедурно. Чтобы запретить процедурную генерацию, используйте этот параметр в теге Planet:
NoCorona true

Orbit { }

Это тег орбиты. Текущая версия (0.9.8.0) использует только уравнение Кеплера для вычисления орбитального движения тел. Этот тег использует Кеплеровы элементы орбиты, для описания орбиты объекта.

Epoch - эпоха перицентра в юлианских днях.
Period - орбитальный период T в годах (используется для эллиптических орбит). 1 год = 365.24218985 дней.
MeanMotion - среднее движение n в градусах в день (используется для параболических и гиперболических орбит).
GravParam - параметр силы тяжести μ (используется для параболических и гиперболических орбит).
SemiMajorAxis - большая полуось а в а.е. (используется для эллиптических и гиперболических орбит). Отрицательна для гиперболических орбит.
PericenterDist - перицентрическое расстояние q в а.е. (используется для параболических и гиперболических орбит).
Eccentricity - эксцентриситет e.
Inclination - наклонение i в градусах.
AscendingNode - долгота восходящего узла Ω в градусах.
ArgOfPericen или ArgOfPericenter - аргумент перицентра ω в градусах.
LongOfPericen или LongOfPericenter - долгота перицентра (Ω + ω) в градусах.
AscNodePreces - период прецессии долготы восходящего узла в годах.
ArgOfPeriPreces - период прецессии аргумента перицентра в годах.
MeanAnomaly - средняя аномалия в эпоху M0 в градусах.
MeanLongitude - средняя долгота L0 (M0 + Ω + ω) в градусах.

RefPlane или Type - определяет опорную плоскость кеплеровой орбиты, или используется для описания стационарных координат объекта. Если не указано, используется значение по умолчанию, основыванное на типе объекта. Возможные значения:
"Equator" или "Laplace" - плоскостью отсчёта является экваториальная плоскость родительского объекта. Значение по умолчанию для лун.
"Ecliptic" - плоскостью отсчёта является плоскость эклиптики (нашей Солнечной системы!). Значение по умолчанию для астероидов и комет.
"Extrasolar" - плоскостью отсчёта является картинная плоскость (т.е. плоскость, перпендикулярная к лучу зрения при наблюдении с Земли). Значение по умолчанию для планет, звёзд и барицентров.
"Static" - объект будет зафиксирован относительно родительского объекта, и будет следовать за ним в процессе движется. Параметры PosXYZ и PosPolar используется для указания относительного положения.
"Fixed" - объект будет зафиксирован относительно родительского объекта, и будет следовать за ним и вращаться вместе с ним. Параметры PosXYZ и PosPolar используется для указания относительного положения.

Типы "Static" и "Fixed" используются, чтобы создавать фейковые системы с объектами, фиксировано связанных друг с другом. Следующие параметры задают положение относительно родительского объекта:

PosXYZ - в декартовых координатах, в км. Пример: PosXYZ (5000 1000 2000).
PosPolar - в сферических координатах в виде (долгота в градусах, широта в градусах, расстояние в км). Пример: PosPolar (45 30 3000).

Есть также упрощённые формы статических и фиксированных координат. Они задаются следующими параметрами в самом теге Planet (вместо тега Orbit):
StaticPosXYZ - то же самое, что тег Orbit {} с Type "Static" и PosXYZ.
StaticPosPolar - то же самое, что тег Orbit {} с Type "Static" и PosPolar.
FixedPosXYZ - то же самое, что тег Orbit {} с Type "Fixed" и PosXYZ.
FixedPosPolar - то же самое, что тег Orbit {} с Type "Fixed" и PosPolar.

Если тег Orbit {} не указан, это равносильно статическому положении с координатами (0, 0, 0), т.е. в центре родительского тела. Это используется для описания одиночной звезды с дополнительными параметрами, расположенной в центре системы. Подробнее см. Создание звёзд.

Для различных типов объектов выбираются разные опорные плоскости по умолчанию, с целью сделать большие каталоги более компактными. Плоскость эклиптики используется в нашей Солнечной системе планет, астероидов и комет. RefPlane для планет в каталоге Солнечной системы задано явно как "Ecliptic", потому что значение по умолчанию для планет - "Extrosolar". А для каталогов астероидов и комет RefPlane не указывается, потому что значение по умолчанию для них - "Ecliptic", что делает их более компактными. То же самое для каталога экзопланет и каталог двойных и кратных звёзд: по умолчанию RefPlane для них "Extrosolar". Если вы делаете свою планетную систему, лучше задать RefPlane явно для её планет и астероидов. Задайте RefPlane "Equator" для планет и астероидов, чтобы выровнять плоскость их орбит с плоскостью экватора звезды. Но можно не задавать RefPlane для лун, поскольку значение по умолчанию "Equator" хорошо для них подходит.

Некоторые орбитальные параметры, если они не указаны, могут быть вычислены или сгенерированы SpaceEngine на основе других параметров. Например, Period можно рассчитать из SemiMajorAxis или PericenterDist и массы родительского объекта. Inclinaiton и AscendingNode, если они неизвестны для некоторых планет в системе, могут быть процедурно сгенерированы на основе известных Inclination и AscendingNode других планет в той же системе.

При описании двойную звезду или двойной планеты, убедитесь, что следующие параметры одинаковы для обоих тел в этой системе: Eccentricity, Inclination, AscendingNode, MeanAnomaly. Параметр ArgOfPericenter первого тела должен отличаться на 180 градусов от того же параметра второго тела. Необходимо также вычислить значение SemiMajorAxis для каждого из тел на основе масс компонентов системы с помощью этих простых формул:

Тело 1: a1 = R * M1 / (M1 + M2)
Тело 2: a2 = R * M2 / (M1 + M2)

Здесь R это расстояние между телами, т.е. сумма их больших полуосей a1 + a2;
M1 and M2 - массы тел.

Тройные звёздные системы, как правило, иерархические: пара звёзд вращаются вокруг их общего барицентра, а этот барицентра и третья звезда обращаются вокруг главного барицентра системы. Тот же иерархическая принцип может быть применён для более сложных систем. Для того, чтобы рассчитать правильные большие полуоси орбит каждой пары, необходимо вычислить массу каждого барицентра как сумму масс всех звёзд/звёздных систем, вращающихся вокруг его, и использовать его в формулах, приведённых выше.

Если вы указали массы объекта и его родительского объекта, SpaceEngine может вычислить орбитальный период автоматически. Но для двойных объектов (звёзд и планет) может быть необходимо вычислить орбитальный период вручную. Используйте эту формулу:

P = sqrt(R3 / (M1 + M2))

Здесь sqrt это функция извлечения квадратного корня,
R - расстояние между телами, т.е. сумма их больших полуосей a1 + a2, в астрономических единицах;
M1 and M2 - массы тел в массах Солнца;
тогда период P будет в годах.