Planets¶
Overview¶
This guide explains how to add custom planets to the game.
Requirements¶
Requirements: - GIMP or any other image editing tool that can export .dds files in BC5 format
File Locations¶
- Game Directory:
C:\Users\[YourName]\AppData\Local\Programs\Kitten Space Agency\ - Textures:
Content/Core/Textures - Planet Definitions:
Content/Core/Astronomicals.xml - System Files:
Content\Core\EarthOnly.xml,Content\Core\SolSystem.xml
Making a Basic Planet¶
Choosing a template¶
Making a planet from scratch can be very tedious, so I recommend using a template.
Earth Template:
<AtmosphericBody Id="Earth" Parent="Sol">
<MeshCollection Id="EarthScale"/>
<SemiMajorAxis Au="1" />
<Inclination Degrees="0.00005" />
<Eccentricity Value="0.0167" />
<LongitudeOfAscendingNode Degrees="-11.261" />
<ArgumentOfPeriapsis Degrees="114.207" />
<Diffuse Path="Textures/Earth_Diffuse.dds" Category="Terrain"/>
<Normal Path="Textures/Earth_Normal.dds" Category="Terrain"/>
<Height Path="Textures/Earth_Height.ktx2" Category="Terrain">
<Minimum Km="-10.930"/>
<Maximum Km="8.627"/>
</Height>
<Terrain>
<BiomeIDMap Id="EarthBiomeID" Path="Textures/Earth_Biome_ID.png"/>
<BiomeControlMap Id="EarthBiomeControl" Path="Textures/Earth_Biome_Control.png"/>
</Terrain>
<MeanAnomalyAtEpoch Degrees="100" />
<MeanRadius Km="6371" />
<Mass Earths="1" />
<Color R="0.11" G="0.31" B="0.415" />
<Period Days="1"/>
<AxialTilt Degrees="23.44" />
<AxialAlignment Degrees="0" />
<Atmosphere>
<Visual>
<RayleighScattering>
<Coefficients R="0.0058" G="0.0135" B="0.0331" />
<ScaleHeight Km="8" />
</RayleighScattering>
<MieScattering>
<Coefficients R="0.0015761662727847277" G="0.0015761662727847277" B="0.0015761662727847277" />
<ScaleHeight Km="1.8" />
<PhaseFunctionAsymmetry X="0.83" Y="0.83" Z="0.83" />
<AbsorptionMultiplier Value="1.1111" />
</MieScattering>
<Ozone>
<Coefficients R="0.0004766464336060959" G="0.0011544693829723834" B="5.008543960834634E-05" />
<Altitude Km="20" />
<Extent Km="10" />
</Ozone>
<StartHeight Km="0" />
</Visual>
<Physical>
<SeaLevelPressure Atm="1.0"/>
<SeaLevelDensity KgPerM3="1.225"/>
<ScaleHeight Km="8"/>
</Physical>
</Atmosphere>
<Ocean>
<Level Km="0" />
<MeshCollection Id="OceanEarth"/>
<WindWaves>
<!-- The WindTexture is used to adjust wind speed and fetch locally, lerping between min and max-->
<WindTexture Path="Textures/Earth_Ocean_Wind.png" Category="Terrain"/>
<MinWindSpeed Value="2.0" />
<MinWindFetch Km="30.0"/>
<MaxWindSpeed Value="15.0" />
<MaxWindFetch Km="800.0"/>
<Directionality Value="1.0"/>
<FoamAmount Value="0.5"/>
<Depth Km="0.2"/>
</WindWaves>
<GerstnerWaves> <!-- leaving this in just for the cool factor of combining big gerstner waves with FFT -->
<Count Value="0" /> <!-- change to 1 for tsunami waves -->
<Length M="10000" />
<Amplitude Value="0.75" />
<Speed Value="1.0" />
<LengthPersistence Value="0.93" />
<AmplitudePersistence Value="0.975" />
<SpeedPersistence Value="1.01" />
</GerstnerWaves>
<!-- This color value and the colormap's content get multiplied -->
<Color R="0.588" G="0.588" B="0.588" />
<ColorTexture Path="Textures/Earth_Ocean_Color_4096.dds" Category="Terrain"/>
<TransparencyDepth M="100" />
</Ocean>
<Clouds>
<OrbitTransitionStartAltitude Km="500.0"/>
<OrbitTransitionEndAltitude Km="1500.0"/>
<VolumetricsFlickerReductionDistance Km="100.0"/>
<Layer Id="EarthClouds">
<RotationSpeed X="0" Y="0" Z="-20" />
<Texture Id="Textures/Clouds/compressed/Earth_clouds_tile_mask.dds" Path="Textures/Clouds/compressed/Earth_clouds_tile_mask.dds" Category="Terrain"/>
<Detail>
<Texture Id="CloudDetail2048" Path="Textures/Clouds/CloudDetail2048.png" Category="Terrain"/>
<Size Km ="400"/>
</Detail>
<TwoDimensionalCloud>
<Color R="1.0" G="1.0" B="1.0" />
<Lambertian Value="0.65" />
<UseAlphaOnly Value="true" />
</TwoDimensionalCloud>
<Raymarching>
<Step Scale="0.006">
<Size Km="0.07"/>
<MaxSize Km="1.5"/>
</Step>
<LightDistance Km="1.8"/>
<LightSamples Value="6"/>
</Raymarching>
<Noise>
<ScrollSpeed Value="5"/>
</Noise>
<CloudType Name="Stratus">
<StartAltitude Km="2.0"/>
<Height Km="1.2"/>
<Density Value="0.002"/>
<NoiseScale Km="2.3"/>
<EdgeSharpness Value="0.87"/>
<MultipleScatteringBrightness Value="0.7"/>
<CloudShape InterpolateShapes="true">
<ShapeCurve>
<SplinePoint>
<Key Value="0.0"/>
<Value Value="0.0"/>
<InTangent Value="1.633945"/>
<OutTangent Value="1.633945"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.1140957"/>
<Value Value="0.8506892"/>
<InTangent Value="0.06669102"/>
<OutTangent Value="0.261398"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.3686106"/>
<Value Value="0.9575245"/>
<InTangent Value="0.0"/>
<OutTangent Value="0.0"/>
</SplinePoint>
<SplinePoint>
<Key Value="1.0"/>
<Value Value="0.0"/>
<InTangent Value="-0.369256"/>
<OutTangent Value="-0.5550035"/>
</SplinePoint>
</ShapeCurve>
</CloudShape>
</CloudType>
<CloudType Name="Cumulus">
<StartAltitude Km="2.0"/>
<Height Km="2.7"/>
<Density Value="0.012"/>
<NoiseScale Km="2.3"/>
<EdgeSharpness Value="0.96"/>
<MultipleScatteringBrightness Value="0.8"/>
<CloudShape InterpolateShapes="true">
<ShapeCurve>
<SplinePoint>
<Key Value="0.0"/>
<Value Value="0.0"/>
<InTangent Value="1.633945"/>
<OutTangent Value="1.633945"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.08695792"/>
<Value Value="0.976166"/>
<InTangent Value="0.06669102"/>
<OutTangent Value="0.04846065"/>
</SplinePoint>
<SplinePoint>
<Key Value="1.0"/>
<Value Value="0.0"/>
<InTangent Value="-0.7966601"/>
<OutTangent Value="-0.5550035"/>
</SplinePoint>
</ShapeCurve>
</CloudShape>
</CloudType>
<CloudType Name="Cumulus Congestus 1">
<StartAltitude Km="2.0"/>
<Height Km="4.7"/>
<Density Value="0.012"/>
<NoiseScale Km="2.3"/>
<EdgeSharpness Value="0.96"/>
<CloudShape InterpolateShapes="true">
<ShapeCurve>
<SplinePoint>
<Key Value="0.0"/>
<Value Value="0.0"/>
<InTangent Value="1.633945"/>
<OutTangent Value="1.633945"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.08695792"/>
<Value Value="0.976166"/>
<InTangent Value="0.06669102"/>
<OutTangent Value="0.04846065"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.4343985"/>
<Value Value="0.6765829"/>
<InTangent Value="-1.224023"/>
<OutTangent Value="-1.224023"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.8816288"/>
<Value Value="0.3897246"/>
<InTangent Value="-1.164106"/>
<OutTangent Value="-1.164106"/>
</SplinePoint>
<SplinePoint>
<Key Value="1.0"/>
<Value Value="0.0"/>
<InTangent Value="-0.7966601"/>
<OutTangent Value="-0.5550035"/>
</SplinePoint>
</ShapeCurve>
</CloudShape>
</CloudType>
<CloudType Name="Cumulus Congestus 2">
<StartAltitude Km="2.0"/>
<Height Km="6.7"/>
<Density Value="0.006"/>
<NoiseScale Km="2.3"/>
<EdgeSharpness Value="0.96"/>
<CloudShape InterpolateShapes="false">
<ShapeCurve>
<SplinePoint>
<Key Value="0.0"/>
<Value Value="0.0"/>
<InTangent Value="1.633945"/>
<OutTangent Value="1.633945"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.09431168"/>
<Value Value="0.9640306"/>
<InTangent Value="0.06669102"/>
<OutTangent Value="-0.8954304"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.2904161"/>
<Value Value="0.8003764"/>
<InTangent Value="0.2357683"/>
<OutTangent Value="0.2357683"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.59456"/>
<Value Value="0.7429472"/>
<InTangent Value="-0.001872113"/>
<OutTangent Value="-0.001872113"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.734686"/>
<Value Value="0.7428927"/>
<InTangent Value="-3.4198"/>
<OutTangent Value="-1.176937"/>
</SplinePoint>
<SplinePoint>
<Key Value="1.0"/>
<Value Value="0.0"/>
<InTangent Value="-0.8304251"/>
<OutTangent Value="-0.5550035"/>
</SplinePoint>
</ShapeCurve>
</CloudShape>
</CloudType>
<CloudType Name="Cumulus Congestus 3">
<StartAltitude Km="2.0"/>
<Height Km="6.7"/>
<Density Value="0.006"/>
<NoiseScale Km="2.3"/>
<EdgeSharpness Value="0.96"/>
<CloudShape InterpolateShapes="false">
<ShapeCurve>
<SplinePoint>
<Key Value="0.0"/>
<Value Value="0.0"/>
<InTangent Value="1.633945"/>
<OutTangent Value="1.633945"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.09431168"/>
<Value Value="0.9640306"/>
<InTangent Value="0.06669102"/>
<OutTangent Value="-0.8954304"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.2904161"/>
<Value Value="0.8003764"/>
<InTangent Value="0.2357683"/>
<OutTangent Value="0.2357683"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.734686"/>
<Value Value="0.7428927"/>
<InTangent Value="-3.4198"/>
<OutTangent Value="-1.176937"/>
</SplinePoint>
<SplinePoint>
<Key Value="1.0"/>
<Value Value="0.0"/>
<InTangent Value="-0.8304251"/>
<OutTangent Value="-0.5550035"/>
</SplinePoint>
</ShapeCurve>
</CloudShape>
</CloudType>
</Layer>
<Layer Id="EarthClouds2">
<RotationSpeed X="0" Y="0" Z="-30" />
<Texture Id="Textures/Clouds/compressed/Earth_clouds_placeholder_top_layer.dds" Path="Textures/Clouds/compressed/Earth_clouds_placeholder_top_layer.dds" Category="Terrain"/ >
<Detail>
<Texture Path="Textures/Clouds/compressed/CirroStratusDetail.dds" Category="Terrain"/>
<Size Km ="400"/>
</Detail>
<Color R="1.0" G="1.0" B="1.0" />
<TwoDimensionalCloud>
<Color R="1.0" G="1.0" B="1.0" />
<Lambertian Value="0.65" />
<UseAlphaOnly Value="true" />
</TwoDimensionalCloud>
<Raymarching>
<Step Scale="0.0044">
<Size Km="0.11"/>
<MaxSize Km="4.5"/>
</Step>
<LightDistance Km="2.8"/>
<LightSamples Value="4"/>
</Raymarching>
<Noise>
<ScrollSpeed Value="5"/>
</Noise>
<CloudType Name="CirroStratus">
<StartAltitude Km="11.0"/>
<Height Km="1.2"/>
<Density Value="0.001"/>
<NoiseScale Km="4.0"/>
<EdgeSharpness Value="0.5"/>
<MultipleScatteringBrightness Value="0.7"/>
<CloudShape InterpolateShapes="true">
<ShapeCurve>
<SplinePoint>
<Key Value="0.0"/>
<Value Value="0.0"/>
<InTangent Value="2.0"/>
<OutTangent Value="2.0"/>
</SplinePoint>
<SplinePoint>
<Key Value="0.5"/>
<Value Value="1.0"/>
<InTangent Value="0.0"/>
<OutTangent Value="0.0"/>
</SplinePoint>
<SplinePoint>
<Key Value="1.0"/>
<Value Value="0.0"/>
<InTangent Value="-2.0"/>
<OutTangent Value="-2.0"/>
</SplinePoint>
</ShapeCurve>
</CloudShape>
</CloudType>
</Layer>
</Clouds>
</AtmosphericBody>
<AtmosphericBody Id="Jupiter" Parent="Sol">
<MeshCollection Id="Default"/>
<SemiMajorAxis Au="5.2044" />
<Inclination Degrees="1.30530" />
<Eccentricity Value="0.0489" />
<LongitudeOfAscendingNode Degrees="100.464" />
<ArgumentOfPeriapsis Degrees="273.867" />
<MeanAnomalyAtEpoch Degrees="34.35152" />
<MeanRadius Km="69911" />
<Mass Jupiters="1" />
<Diffuse Id="JupiterDiffuse" Path="Textures/Jupiter_Diffuse.dds" Category="Terrain"/>
<Color R="1.0" G="0.69" B="0.36" />
<Period Hours="9" Minutes="55" Seconds="30"/>
<AxialTilt Degrees="3.13" />
<AxialAlignment Degrees="0" />
<Atmosphere>
<Visual>
<RayleighScattering>
<Coefficients R="1.8e-4" G="1.8e-4" B="1.1e-4" />
<ScaleHeight Km="650"/>
</RayleighScattering>
<MieScattering>
<Coefficients R="4e-4" G="4e-4" B="4e-4"/>
<ScaleHeight Km="100"/>
<PhaseFunctionAsymmetry X="0.1" Y="0.1" Z="0.1"/>
</MieScattering>
</Visual>
<Physical>
<SeaLevelPressure Atm="1.0"/>
<SeaLevelDensity KgPerM3="0.16"/>
<ScaleHeight Km="150" />
</Physical>
</Atmosphere>
<Clouds>
<OrbitTransitionStartAltitude Km="5000" />
<OrbitTransitionEndAltitude Km="9000" />
<MaxShadowsAltitude Km="9000" />
<VolumetricsFlickerReductionDistance Km="10000.0"/>
<Layer Id="JupiterLowerClouds">
<RotationSpeed X="0" Y="0" Z="0" />
<Texture Id="JupiterLowerCloudsMask" Path="Textures/Clouds/Compressed/JupiterLowerCloudsMask.dds" Category="Terrain">
<IsVirtual>false</IsVirtual>
<Manifest>
<MaxSize>0</MaxSize>
<MipMaps>false</MipMaps>
</Manifest>
</Texture>
<Detail>
<Texture Path="Textures/Clouds/Compressed/JupiterLowerLayerDetail.dds" Category="Terrain">
<IsVirtual>false</IsVirtual>
<Manifest>
<MaxSize>0</MaxSize>
<MipMaps>false</MipMaps>
</Manifest>
</Texture>
<Size Km ="40000"/>
</Detail>
<TwoDimensionalCloud>
<Texture Id="JupiterDiffuse"/>
<UseAlphaOnly Value="false" />
<Color R="1.0" G="1.0" B="1.0" />
<Lambertian Value="0.5" />
</TwoDimensionalCloud>
<Color R="0.29537368" G="0.29537368" B="0.29537368" />
<MatchGroundColor Value="false" />
<VolumetricsFlowMap>
<Texture Id="JupiterFlowmap" Category="Terrain"/>
<Displacement Km="1840.0"/>
<LoopDuration Hours="0.5"/>
</VolumetricsFlowMap>
<VolumetricsColorMap Id="JupiterDiffuse"/>
<Raymarching>
<Step Scale="0.00275">
<Size M="10000" />
<MaxSize M="175000" />
</Step>
<LightDistance M="120000" />
<LightSamples Value="6" />
</Raymarching>
<Noise>
<ScrollSpeed Value="30" />
</Noise>
<CloudType Name="DiffuseCloud">
<StartAltitude M="0" />
<Height M="220000" />
<Density Value="0.0002800000074785203" />
<NoiseScale M="120000" />
<EdgeSharpness Value="0.9700000286102295" />
<MultipleScatteringBrightness Value="1" />
<CloudShape InterpolateShapes="true">
<ShapeCurve>
<SplinePoint>
<Key Value="0" />
<Value Value="1" />
<InTangent Value="0.01987062" />
<OutTangent Value="0.01987062" />
</SplinePoint>
<SplinePoint>
<Key Value="0.06069539" />
<Value Value="0.4903364" />
<InTangent Value="-1.326968" />
<OutTangent Value="-1.326968" />
</SplinePoint>
<SplinePoint>
<Key Value="0.2747427" />
<Value Value="-0.003249101" />
<InTangent Value="-1.609576" />
<OutTangent Value="-1.609576" />
</SplinePoint>
<SplinePoint>
<Key Value="0.4130899" />
<Value Value="0.003613152" />
<InTangent Value="1.113726" />
<OutTangent Value="1.113726" />
</SplinePoint>
<SplinePoint>
<Key Value="0.5144587755203247" />
<Value Value="0.4342148005962372" />
<InTangent Value="-0.8097732" />
<OutTangent Value="-0.8097732" />
</SplinePoint>
<SplinePoint>
<Key Value="0.5887667" />
<Value Value="0.008177351" />
<InTangent Value="-6.05793" />
<OutTangent Value="-6.05793" />
</SplinePoint>
<SplinePoint>
<Key Value="0.6785794" />
<Value Value="-0.06444599" />
<InTangent Value="0.0343262" />
<OutTangent Value="0.0343262" />
</SplinePoint>
<SplinePoint>
<Key Value="1" />
<Value Value="1" />
<InTangent Value="2.295903205871582" />
<OutTangent Value="0.06266714" />
</SplinePoint>
</ShapeCurve>
<DensityCurve>
<SplinePoint>
<Key Value="0" />
<Value Value="1" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.07735103368759155" />
<Value Value="1.0004963874816895" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.15438231825828552" />
<Value Value="0.28357529640197754" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.5162501931190491" />
<Value Value="0.09440368413925171" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.9031978845596313" />
<Value Value="0.25868427753448486" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.9300693273544312" />
<Value Value="0.9839124083518982" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="1" />
<Value Value="1" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
</DensityCurve>
</CloudShape>
</CloudType>
<CloudType Name="StormCenter">
<StartAltitude M="0" />
<Height M="220000" />
<Density Value="0.0007999999797903001" />
<NoiseScale M="120000" />
<EdgeSharpness Value="0.97" />
<MultipleScatteringBrightness Value="1" />
<CloudShape InterpolateShapes="true">
<ShapeCurve>
<SplinePoint>
<Key Value="0" />
<Value Value="1" />
<InTangent Value="-0.03297058" />
<OutTangent Value="19.57472" />
</SplinePoint>
<SplinePoint>
<Key Value="0.1271144" />
<Value Value="0.9584956" />
<InTangent Value="0.01987062" />
<OutTangent Value="0.01987062" />
</SplinePoint>
<SplinePoint>
<Key Value="0.5853482" />
<Value Value="2.2663" />
<InTangent Value="0.0343262" />
<OutTangent Value="0.0343262" />
</SplinePoint>
<SplinePoint>
<Key Value="0.9048536" />
<Value Value="1" />
<InTangent Value="0.06266714" />
<OutTangent Value="0.06266714" />
</SplinePoint>
<SplinePoint>
<Key Value="1" />
<Value Value="1" />
<InTangent Value="-14.69716" />
<OutTangent Value="-14.69716" />
</SplinePoint>
</ShapeCurve>
<DensityCurve>
<SplinePoint>
<Key Value="0" />
<Value Value="1" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="1" />
<Value Value="1" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
</DensityCurve>
</CloudShape>
</CloudType>
</Layer>
<Layer Id="JupiterClouds">
<RotationSpeed X="0" Y="0" Z="0" />
<Texture Id="JupiterMask" Path="Textures/Clouds/Compressed/JupiterMask.dds" Category="Terrain">
<IsVirtual>false</IsVirtual>
<Manifest>
<MaxSize>0</MaxSize>
<MipMaps>false</MipMaps>
</Manifest>
</Texture>
<Detail>
<!-- Jupiter detail texture is a "passthrough" to use tilemask diectly as cloud type map -->
<Texture Id="JupiterDetail" Path="Textures/Clouds/JupiterDetail.png" Category="Terrain">
<IsVirtual>false</IsVirtual>
<Manifest>
<MaxSize>0</MaxSize>
<MipMaps>false</MipMaps>
</Manifest>
</Texture>
<Size Km="400" />
</Detail>
<TwoDimensionalCloud>
<Texture Id="JupiterDiffuse"/>
<UseAlphaOnly Value="false" />
<Color R="1.0" G="1.0" B="1.0" />
<Lambertian Value="0.5" />
<FlowMap>
<Texture Id="Jupiter2DFlowmap" Path="Textures/Clouds/Compressed/Jupiter2DFlowmap.dds" Category="Terrain">
<IsVirtual>false</IsVirtual>
<Manifest>
<MaxSize>0</MaxSize>
<MipMaps>true</MipMaps>
</Manifest>
</Texture>
<!-- these values are ridiculous but will show the animation in a reasonable timeframe -->
<Displacement Km="21080.0"/>
<LoopDuration Hours="1.0"/>
</FlowMap>
</TwoDimensionalCloud>
<Color R="1.0" G="1.0" B="1.0" />
<MatchGroundColor Value="false" />
<VolumetricsFlowMap>
<Texture Id="JupiterFlowmap" Path="Textures/Clouds/Compressed/JupiterFlowmap.dds" Category="Terrain">
<IsVirtual>false</IsVirtual>
<Manifest>
<MaxSize>0</MaxSize>
<MipMaps>false</MipMaps>
</Manifest>
</Texture>
<Displacement Km="1240.0"/>
<LoopDuration Hours="1.0"/>
</VolumetricsFlowMap>
<VolumetricsColorMap Id="JupiterDiffuse"/>
<Raymarching>
<Step Scale="0.00275">
<Size M="10000" />
<MaxSize M="175000" />
</Step>
<LightDistance M="120000" />
<LightSamples Value="6" />
</Raymarching>
<Noise>
<ScrollSpeed Value="30" />
</Noise>
<CloudType Name="StormCenter">
<StartAltitude M="220000" />
<Height M="55000" />
<Density Value="0.00018" />
<NoiseScale M="420000" />
<EdgeSharpness Value="0.97" />
<MultipleScatteringBrightness Value="1.0" />
<CloudShape InterpolateShapes="true">
<ShapeCurve>
<SplinePoint>
<Key Value="0" />
<Value Value="0" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.02634327" />
<Value Value="1.0" />
<InTangent Value="0.111055" />
<OutTangent Value="0.111055" />
</SplinePoint>
<SplinePoint>
<Key Value="0.3164966" />
<Value Value="0.7820052" />
<InTangent Value="-1.475057" />
<OutTangent Value="-1.475057" />
</SplinePoint>
<SplinePoint>
<Key Value="1.0" />
<Value Value="0.0" />
<InTangent Value="-0.0226933" />
<OutTangent Value="-0.0226933" />
</SplinePoint>
</ShapeCurve>
<DensityCurve>
<SplinePoint>
<Key Value="0.0" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
<SplinePoint>
<Key Value="1.0" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
</DensityCurve>
</CloudShape>
</CloudType>
<CloudType Name="StormEdge">
<StartAltitude M="220000" />
<Height M="330000" />
<Density Value="0.0004" />
<NoiseScale M="420000" />
<EdgeSharpness Value="0.0" />
<MultipleScatteringBrightness Value="1.0" />
<CloudShape InterpolateShapes="true">
<ShapeCurve>
<SplinePoint>
<Key Value="0" />
<Value Value="0" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.02634327" />
<Value Value="1.0" />
<InTangent Value="0.111055" />
<OutTangent Value="0.111055" />
</SplinePoint>
<SplinePoint>
<Key Value="0.3164966" />
<Value Value="0.7820052" />
<InTangent Value="-1.475057" />
<OutTangent Value="-1.475057" />
</SplinePoint>
<SplinePoint>
<Key Value="1.0" />
<Value Value="0.0" />
<InTangent Value="-0.0226933" />
<OutTangent Value="-0.0226933" />
</SplinePoint>
</ShapeCurve>
<DensityCurve>
<SplinePoint>
<Key Value="0.0" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
<SplinePoint>
<Key Value="1.0" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
</DensityCurve>
</CloudShape>
</CloudType>
<CloudType Name="LowDensityCloud">
<StartAltitude M="220000" />
<Height M="440000" />
<Density Value="0.0000081" />
<NoiseScale M="420000" />
<EdgeSharpness Value="0.97" />
<MultipleScatteringBrightness Value="1.0" />
<CloudShape InterpolateShapes="false">
<ShapeCurve>
<SplinePoint>
<Key Value="0" />
<Value Value="0" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.02634327" />
<Value Value="1.0" />
<InTangent Value="0.111055" />
<OutTangent Value="0.111055" />
</SplinePoint>
<SplinePoint>
<Key Value="0.5562" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
<SplinePoint>
<Key Value="1.0" />
<Value Value="0.0" />
<InTangent Value="-0.0226933" />
<OutTangent Value="-0.0226933" />
</SplinePoint>
</ShapeCurve>
<DensityCurve>
<SplinePoint>
<Key Value="0.0" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
<SplinePoint>
<Key Value="1.0" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
</DensityCurve>
</CloudShape>
</CloudType>
<CloudType Name="HighDensityCloud">
<StartAltitude M="220000" />
<Height M="550000" />
<Density Value="0.00035" />
<NoiseScale M="420000" />
<EdgeSharpness Value="0.97" />
<MultipleScatteringBrightness Value="1.0" />
<CloudShape InterpolateShapes="false">
<ShapeCurve>
<SplinePoint>
<Key Value="0" />
<Value Value="0" />
<InTangent Value="0" />
<OutTangent Value="0" />
</SplinePoint>
<SplinePoint>
<Key Value="0.02634327" />
<Value Value="1.0" />
<InTangent Value="0.111055" />
<OutTangent Value="0.111055" />
</SplinePoint>
<SplinePoint>
<Key Value="0.5562" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
<SplinePoint>
<Key Value="1.0" />
<Value Value="0.0" />
<InTangent Value="-0.0226933" />
<OutTangent Value="-0.0226933" />
</SplinePoint>
</ShapeCurve>
<DensityCurve>
<SplinePoint>
<Key Value="0.0" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
<SplinePoint>
<Key Value="1.0" />
<Value Value="1.0" />
<InTangent Value="0.0" />
<OutTangent Value="0.0" />
</SplinePoint>
</DensityCurve>
</CloudShape>
</CloudType>
</Layer>
</Clouds>
</AtmosphericBody>
<TerrestrialBody Id="Pluto" Parent="Sol">
<MeshCollection Id="Asteroid"/>
<SemiMajorAxis Km=" 10000488.231" />
<Inclination Degrees="1" />
<Eccentricity Value="0" />
<LongitudeOfAscendingNode Degrees="55" />
<ArgumentOfPeriapsis Degrees="0" />
<MeanAnomalyAtEpoch Degrees="0" />
<MeanRadius Km="600" />
<Mass Kg="12166330000000000" />
<Color R="0.941176" G="0.901961" B="0.54902" />
<Diffuse Path="Textures/Pluto_Diffuse.dds" Category="Terrain"/>
<Normal Path="Textures/Pluto_Normal.dds" Category="Terrain"/>
<Height Path="Textures/Pluto_Height.htx2" Category="Terrain">
<Maximum Km="3.8734"/>
<Minimum Km="-0.3869"/>
</Height>
</TerrestrialBody>
Parts of the Planet Block¶
Types of Planets¶
This defines what type of planet it is
TerrestrialBody¶
- Example:
<TerrestrialBody Id="Pluto" Parent="Sol"> - TerrestrialBody: This defines the planet as not having an atmosphere
- Pluto: The ID/Name of the planet
- Sol: The body the planet orbits
AtmosphericBody¶
- Example:
<AtmosphericBody Id="Earth" Parent="Sol"> - AtmosphericBody: This defines the planet as having an atmosphere. This is used for both gas giants and atmospheric planets
- Earth: The ID/Name of the planet
- Sol: The body the planet orbits
Orbital Specifications¶
This defines how the object orbits its parent body
SemiMajorAxis¶
- Supported Units (in Ascending Order): M, Km, Gm, Au, Ly
- Example:
<SemiMajorAxis Km=" 100000.327" /> - The SemiMajorAxis is the longest radius of the orbit
Inclination¶
- Supported Units: Degrees
- Example:
<Inclination Degrees="1" /> - The Inclination is the angle at which the object orbits relative to the plane the object rotates
Eccentricity¶
- Supported Units: Value
- Example:
<Eccentricity Value="0.5" /> - Eccentricity is the amount that the object's orbit differs from a circle. A value of 0 would be a perfect circle, and a value of 1 would go juse outside the SOI.
LongitudeOfAscendingNode¶
- Supported Units: Degrees
- Example:
<LongitudeOfAscendingNode Degrees="55" /> - The LongitudeOfAscendingNode is an orbital element that measures the angle from a reference direction to the point where an orbit crosses a reference plane in an upward direction (from south to north)
ArgumentOfPeriapsis¶
- Supported Units: Degrees
- Example:
<ArgumentOfPeriapsis Degrees="3" /> - The ArgumentOfPeriapsis is the point in the orbital plane between the Periapsis and Ascending Node
MeanAnomalyAtEpoch¶
- Supported Units: Degrees
- Example:
<MeanAnomalyAtEpoch Degrees="86.37" /> - The MeanAnomalyAtEpoch is the the position of an object in its orbit at a particular moment in time, known as the epoch
Body Specifications¶
This is defining how the object is shaped. Includes it's mass, radius, and height map
MeanRadius¶
- Supported Units (in Ascending Order): M, Km. Others, however not recommended, are Gm, Au, Ly
- Example:
<MeanRadius Km="60" /> - The MeanRadius is the average distance from the center of a planet to its surface. Can also be used as equatorial radius
Mass¶
- Supported Units (in Ascending Order): Kg, Zg, Lunas, Earths, Jupiters, Sols
- Example:
<Mass Zg="1.216633" /> - The Mass of an object determines the gravity and SOI of an object. Wrong masses will result in wrong gravities and SOIs
Height¶
- Requires a texture
- Supported texture formats: JPG, PNG, DDS (BC5 Format), HTX2
- Example:
<Height Path="Textures/Pluto_Height.jpg" Category="Terrain"> <Maximum Km="3.8734"/> <Minimum Km="-0.3869"/> </Height> - Path: This can be any path in your textures folder
- Maximum: Highest point on the surface
- Minimum: Lowest point on the surface
Normal¶
- Requires a texture
- Supported texture formats: JPG, PNG, DDS (BC5 Format)
- Example:
<Normal Path="Textures/Pluto_Normal.dds" Category="Terrain"/> - Path: This can be any path in your textures folder
Cosmetic¶
This is just how the planet looks, only required part is the Diffuse
Diffuse¶
- Color of the planet
- Requires a texture
- Supported texture formats: JPG, PNG, DDS (most formats)
- Example:
<Diffuse Path="Textures/Pluto_Diffuse.dds" Category="Terrain"/> - Path: This can be any path in your textures folder
Color¶
- The color of the planet's orbit path
- Example:
<Color R="0.941176" G="0.901961" B="0.54902" /> - R: Red color, RGB 0-1
- G: Green color, RGB 0-1
- B: Blue color, RGB 0-1
Atmosphere¶
The atmosphere block can only be used for atmospheric bodies. The atmosphere block contains 2 sections, physical and visual.
Physical¶
This is obviously required, as without it your atmosphere won't do anything.
The following text is an example of a physical atmosphere:
<Atmosphere>
<Physical>
<SeaLevelPressure Atm="1.0"/>
<SeaLevelDensity KgPerM3="0.16"/>
<ScaleHeight Km="75" />
</Physical>
</Atmosphere>
SeaLevelDensity: This is the density of the atmosphere at sea level. If it is higher than the density of your vessel, your vessel will float above a certain point. Uses units KgPerM3 (Kilograms per cubic Meter).
ScaleHeight: This is the height at which your atmosphere will have 0 pressure and 0 density. Uses all units for 1 dimensional measurement that are implemented into the game.
Visual¶
This determines the color, light reflection, and overall look of the atmosphere. Without it, the atmosphere will not be visible.
The following text is an example of a visual atmosphere:
<Atmosphere>
<Visual>
<RayleighScattering>
<Coefficients R="1.8e-4" G="1.8e-4" B="1.1e-4" />
<ScaleHeight Km="650"/>
</RayleighScattering>
<MieScattering>
<Coefficients R="4e-4" G="4e-4" B="4e-4"/>
<ScaleHeight Km="100"/>
<PhaseFunctionAsymmetry X="0.1" Y="0.1" Z="0.1"/>
</MieScattering>
</Visual>
</Atmosphere>
MieScattering: - This is the light scattering in the lower atmosphere - Coefficients: This is the color. Higher numbers will show denser and less transparent. Uses RGB 0-1. - ScaleHeight: The height at which the atmosphere will no longer be visible - PhaseFunctionAsymmetry: This makes light bounce in different differections. For example, a higher X value will make light more likely to bounce in the X direction
Full Example¶
<Atmosphere>
<Visual>
<RayleighScattering>
<Coefficients R="1.8e-4" G="1.8e-4" B="1.1e-4" />
<ScaleHeight Km="650"/>
</RayleighScattering>
<MieScattering>
<Coefficients R="4e-4" G="4e-4" B="4e-4"/>
<ScaleHeight Km="100"/>
<PhaseFunctionAsymmetry X="0.1" Y="0.1" Z="0.1"/>
</MieScattering>
</Visual>
<Physical>
<SeaLevelPressure Atm="1.0"/>
<SeaLevelDensity KgPerM3="0.16"/>
<ScaleHeight Km="75" />
</Physical>
</Atmosphere>
Oceans¶
TBA
Clouds¶
TBA