ENG New site

Advanced search

[ New messages · Forum rules · Members ]
MOD - Creating a Planet 0.95
SpaceEngineerDate: Tuesday, 28.06.2011, 19:54 | Message # 1
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
Last update: Dec 30, 2011 (version 0.95)

SpaceEngine handles all man-made objects in the catalog files named *.sc and they are located in directory data/catalogs/. This files are simple text documents, so you can edit them with notepad (or the better program Notepad++, which I recomend you to download and install). The directory data/catalogs/ have subdirectories named galaxies, clusters, nebulae, stars and planets, for each object type. Here I describe how to make a planetary system. Lets go to data/catalogs/planets/ folder and create there a new file named, MySystem.sc. Open it with notepad.

First, you must choose a star, and which system you want to create. In current version of SE, it is impossible to create system for procedural stars. So you must choose one of the catalog stars, or create a new star (I will describe how to do it in a different thread). You can choose a star directly in SE. Start SE and disable procedural stars in F4 menu. When fly to Sun (press Shift-h, Shift-h and g) and start flying around to search for a star you want. If you want to create a system with habitable planets, note that for physical realism you can choose a yellow or red dwarf star (F5...F9, G0...G9, K0...K5), because only these stars have a long lifetime (billions of years) and have stable characteristics, so life has a lot of time to evolve on planets orbiting these stars. So, choose for example star named "ETA Cas" (Eta Cassiopeiae). This is a G0V sun-like star - A good choice!

Note: Current version (0.95) gave a bug. Do not make planets for stars named 'HD XXXX' or 'HIP XXXX'. You can't make moons for them and have some other glitches.

Open MySystem.sc and type in the code listed below. '//' is a mark or comment, another mark is '/*' and '*/' (like in C/C++). Some parameters are commented in the code, some of this will be described below:

Code

Planet    "Achird 1"    // Type of object ant it's name
{
     ParentBody      "Achird"    // The body, around wich this planet orbits
     Class           "Terra"     // Class of a planet

     Radius          5098.3      // Radius in km
     Mass            0.76        // Mass in Earth's masses
     Oblateness      0.0         // Oblataness

     Albedo          0.32                   // Albedo
     Color          (0.768, 0.898, 1.000 )  // Color of a particle

     RotationPeriod  27.8        // Rotation period in hours
     RotationOffset  18.6        // Rotation phase in degrees
     RotationEpoch   2451545.0   // Epoch of rotatoin elements, Julian date
     Obliquity       16.58       // Obliquity of rotation axis in degrees
     EqAscendNode    28.16       // Longitude of ascenging node of rotation axis in degrees
     Precession      12500       // Precession period in years
      
     Surface         // Surface tag
     {
         // These parameters describes a texture pack stored on the disk.
         // I comment it out because this planet uses a procedural generation of surface.
         //DiffMap        "Icarus/Surface"   // Surface (color) texture
         //DiffTileSize    512               // Surface texture tile resolution
         //DiffTileBorder  1                 // Surface texture tile border width
         //BumpMap        "Icarus/Bump"      // Bump (heightmap) texture
         //BumpTileSize    512               // Bump texture tile resolution
         //BumpTileBorder  1                 // Bump texture tile border width

         BumpHeight      9.3     // Max height of landscape in km
         BumpOffset      0.3     // Offset of zero height level
         DiffMapAlpha   "Water"  // Mode of specular effect (flecks of sunlight)
         SpecularBright  20.0    // Brightness of specular spot
         SpecularPower   150.0   // Size of specular spot
         DayAmbient      0.1     // Brightness of fake daytime ambient light
         Lommel          0.0     // Lambert to Lommel-Seeliger lighting model ratio
         Exposure        2.0     // Global surface brighness
         Life            true    // true, if there is life on the planet

         // Next are parameters for procedural surface generation
   Style           0.1600855            // Default color scheme
   Randomize      (0.911, 0.373, 0.204) // Randomize vector
   colorDistMagn   0.09464233  // Magnitude of detail textures distortion
   colorDistFreq   945.9523    // Frequency of detail textures distortion
   detailScale     42684.58    // Scale of detail textures
   colorConversion true        // Perform textures color conversion
   seaLevel        0.3133697   // Sea level height (0...1)
   snowLevel       0.9892518   // Snow line level (0...1)
   tropicLatitude  0.8670503   // Latitude of tropics
   icecapLatitude  1.0000000   // Latitude of ice caps boundaries
   icecapHeight    0.3133697   // Height of ice caps
   climatePole     1.000       // Climate of poles   - index to color table (0...1)
   climateTropic   0.450       // Climate of tropics - index to color table (0...1)
   climateEquator  0.625       // Climate of equator - index to color table (0...1)
   tropicWidth     0.07        // Width of tropics
   mainFreq        0.8642751   // Main noise frequency (oceans/continents)
   venusFreq       0.6955331   // Venus-like global structures frequency
   venusMagn       0.3008256   // Venus-like global structures magnitude
   mareFreq        0.9387382   // Lunar mare frequency
   mareDensity     0.06008458  // Lunar mare density
   montesMagn      0.2209584   // Mountains magnitude (0...1)
   montesFreq      412.9121    // Mountains frequency
   montesDensity   0.108095    // Mountains density
   dunesMagn       0.04444444  // Dunes magnitude (0...1)
   dunesFreq       57.8876     // Dunes frequency
   dunesDensity    0.5669919   // Dunes density
   hillsMagn       0.1289276   // Hills magnitude (0...1)
   hillsFreq       503.3618    // Hills frequency
   hillsDensity    0.8554457   // Hills density
   canyonMagn      0.0341905   // Canyons magnitude (0...1)
   canyonFreq      163.7023    // Canyons frequency
   canyonDensity   0.4370083   // Canyons density
   cracksMagn      0.07983515  // Ice cracks magnitude (0...1)
   cracksFreq      0.6574386   // Ice cracks frequency
   cracksOctaves   0           // Number of ice cracks octaves
   craterMagn      0.9358109   // Craters magnitude
   craterFreq      24.14884    // Craters frequency
   craterDensity   0.05892152  // Craters density
   craterOctaves   4.606928    // Number of craters octaves
   craterRayedFactor 0           // Number of rayed craters relative to usual craters
   cycloneMagn     1.905298    // Cyclones magnitude (0...1)
   cycloneFreq     0.7607107   // Cyclones frequency
   cycloneDensity  0.04127789  // Cyclones density
   colorSea       (0.040, 0.100, 0.200, 1.000) // Color of seas
   colorShelf     (0.150, 0.480, 0.460, 1.000) // Color of shelf areas
   colorBeach     (0.850, 0.740, 0.550, 0.000) // Color of beach lines
   colorDesert    (0.770, 0.670, 0.470, 0.000) // Color of deserts
   colorLowland   (0.440, 0.290, 0.170, 0.000) // Color of lower lands
   colorUpland    (0.640, 0.570, 0.470, 0.000) // Color of upper lands
   colorRock      (0.220, 0.200, 0.200, 0.000) // Color of rocks
   colorSnow      (1.000, 1.000, 1.000, 0.016) // Color of snow
   colorLowPlants (0.100, 0.160, 0.070, 0.000) // Color of lower vegetation
   colorUpPlants  (0.090, 0.110, 0.040, 0.000) // Color of upper vegetation
  }

     Clouds      // Clouds layer tag
     {
         // These parameters describes a texture pack stored on the disk.
         // I comment it out because this planet uses a procedural generation of surface.
         //DiffMap        "Icarus/Clouds"    // Color texture
         //DiffTileSize    512               // Color texture tile resolution
         //DiffTileBorder  1                 // Color texture tile border width
         //BumpMap        "Icarus/CloudsBump"// Bump (heightmap) texture
         //BumpTileSize    512               // Bump texture tile resolution
         //BumpTileBorder  1                 // Bump texture tile border width

         BumpHeight      0.5     // Max height of "cloud landscape" in km
         BumpOffset      0.0     // Offset of zero height level
         DayAmbient      2.0     // Brightness of fake daytime ambient light
         Lommel          0.2     // Lambert to Lommel-Seeliger lighting model ratio
         Exposure        2.0     // Global clouds brighness
         Height          6.3     // Height of cloud layer in km
         Velocity        75.0    // Velosity of clouds layer
         Color          (1.0, 1.0, 1.0)  // Global color of clouds layer

         // Next are parameters for procedural surface generation
         mainFreq        0.9     // Main noise frequency
         mainOctaves     10      // Number of octaves of main noise
         Coverage        0.1     // Clouds coverage (0...1)
         twistZones      2.68    // Number of Jupiter-like zones or strips
         twistMagn       2.53    // Strength of twist
  }

  Ocean
  {
   Height          6.009521
   DayAmbient      2.0
   Lommel          0.0
   Exposure        2.0
   Color          (1.000, 1.000, 1.000, 1.000)
  }

     Atmosphere      // Atmosphere tag
     {
         Model          "Earth"  // Model of the atmosphere
         Height          80.0    // Height of the top boundary in km
         Pressure        1.2     // Surface pressure in bars
         Density         1.83    // Surface density in kg/m^3
         Greenhouse      18.0    // Greenhouse effect in degrees
         Bright          10.0    // Brightness (rendering parameter)
         Opacity         1.0     // Opacity (rendering parameter)
         SkyLight        1.0     // Brightness of skylight on terrain
         EclipseBright   250.0               // Brightness of solar eclipse shadow
         EclipseColor   (1.000 0.600 0.200)  // Color of solar eclipse shadow
     }

     Rings       // Rings tag
     {
         // Texture parameter is commented out, becuase
         // this planet use procrdural generation of texture
         //Texture         "Icarus-rings.*"  // Rings texture
         InnerRadius      8318.5  // Inner raduis of rings system in km
         OuterRadius      12438.3 // Outer radius of rings system in km
         RotationPeriod   43.3    // Rings rotation period in hours
         RotationOffset   60.0    // Rings rotation phase in degrees
         FrontBright      1.0     // Direct lighting brightness
         BackBright       5.0     // Back lighting brightness (scattering)
         Density          1.0     // Density (opacity)
         Exposure         2.0     // Global brightness
     }

     Orbit       // Orbit tag
     {
         //Type            "Static"  // This is for non-moving bodies like suns
         RefPlane        "Ecliptic"  // Orbit reference plane
         Epoch           2451545.0   // Orbital parameters epoch, Julian date
         Period          0.91458     // Orbital period in years
         Eccentricity    0.01265     // Eccentricity
         Inclination     0.51346     // Inclination in degrees
         AscendingNode   39.31601    // Longitude of ascending node in degrees

         // Next two are interchangeable: SemiMajorAxis = PericenterDist / (1.0 - Eccentricity)
         SemiMajorAxis   0.958       // Semimajor axis in astronomical units
         PericenterDist  0.9458813   // Pericentric distanse in astronomical units

         // Next two are interchangeable: ArgOfPericen = LongOfPericen - AscendingNode
         ArgOfPericen    268.7741    // (or ArgOfPericenter) Argument of pericenter in degrees
         LongOfPericen   308.09011   // (or LongOfPericenter) Longitude of pericenter in degrees

         // Next two are interchangeable: MeanAnomaly = MeanLongitude - LongOfPericen
         MeanAnomaly     348.84963   // Mean anomaly in degrees
         MeanLongitude   296.93974   // Mean longitude in degrees

         AscNodePreces   131795.3    // Ascending node precession period in years
         ArgOfPeriPreces 26799.51    // Argument of pericenter precession period in years
     }
}


*
 
SpaceEngineerDate: Tuesday, 28.06.2011, 19:55 | Message # 2
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
Now test this planet. First, you must link new catalog to SpaceEngine. Goto config/ folder and open the universe.cfg file with notepad. Find there the PlanetsCatalogs parameter and add there at any place this line:

Code

                 "data/catalogs/planets/MySystem.sc"


Save changes and launch SpaceEngine. Hit F3 key and enter your planet's name: "Achird 1". Then press G key and you can see your planet:



If you don't like it's appearance, change some parameters in your planet catalog script. Remember: you must restart SpaceEngine to see changes.

Take a look at planet script. It consists of several parameters. A Parameter is a line with parameter name at left side and parameter value at right side. Name and value must be divided with space or tabulation. Only one parameter per line allowed. Comments are in C/C++ format ('//' or '/*' and '*/'). Parameters can have one of the following formats:
number: Radius 5098.3
vector: Color (0.768, 0.898, 1.000)
string: ParentBody "Eta Cas"
number in 'deg min sec' of 'hrs min sec' format: Dec 18 32 16.23
tags: Planet "PlanetName" { ... }
Tags are special parameters that divide the script into sections, enclosed in curly braces. In planetary system script these tags are allowed:
Planet "Name" { } (see below for details)
Surface { }
Clouds { }
Atmosphere { }
Rings { }
Orbit { }
Read descriptions of some parameters below. The functions of other parameters can be see above in comments of sample script. Note: if some parameters are missing, then they are initialized by default values. But some parameters are absolutely neccessary.



  • Planet
    This is a main tag name, describes a planetary body. Other possible body types:
    Planet - normal planet
    DwarfPlanet - dwarf planet (like Pluto, Ceres, etc)
    Moon - normal moon
    DwarfMoon - dwarf moon (small irregular asteroid-like moons)
    Asteroid - asteroid orbiting a star
    Comet - comet (note: in current version (0.95) comets are rendered exactly as asteroids)
    Star - star (sun)
    BlackHole - black hole
    Barycenter - barycenter of binary star or binary planet
    So, if you want to make a moon, type this:
    Code

    Moon    "MyMoonName"
    {
                     ParentBody     "MyPlanetName"
                  ...
    }

    Make sure that ParentBody contains the name of parent planet. It is possible to make a moon orbiting the sun, but this is incorrect in the astronomical sense.
    All the Planet, Moon etc tags must have a body name description - string value after parameter name. If you want to give several alternate names for a body, divide them by slash '/':
    Code

    Planet    "Icarus/Eta Cas 3/Eta Cassiopeiae 3"

    The Barycenter tag is a description of fictional "body" that must be the parent body for two stars of binary star system or two planets of binary planet. It can orbit another body (star or barycenter) itself. Use Barycenter tag to make hierarchical multiple stars and binary planets. But make sure you use correct orbits for two bodies orbiting barycenters (see below the Orbit tag description).

  • Class
    This is string the parameter that describes a class of a planet or spectral class of a star. The planet classes are:
    "Terra" - rocky planet with water on the surface (like Earth).
    "Desert" - rocky planet without water on the surface (like Venus or Mars).
    "Selena" - rocky planet without atmosphere (like Mercury, Moon, Io).
    "IceWorld" - icy planet with atmosphere (like Titan) or without atmosphere (like Europa, Ganymede, Callisto).
    "Asteroid" - asteroid-like body with incorrect shape.
    "GasGiant" or "Jovian" - gas giant planet (like Jupiter or Saturn).
    "IceGiant" or "Neptune" - ice giant planet (like Uranus or Neptune).

    If you describe a star (uses Star main tag), the Class tag is a string of star's spectral class:
    Normal star classes: O B A F G K M and R S N
    Wolf-Rayett classes: WC WN
    Brown dwarf classes: L T C
    White dwarf classes: DA DB DC DO DQ DZ
    All classes listed above use subclass index (digit 0...9). All except white dwarfs use
    luminosity class index: Ia-0 Ia Ib II III IV V VI
    Example: G2V, M5III, DB3.
    There are also some special "classes":
    Q - neutron star
    X - black hole (use BlackHole tag instead of this)
    SB - barycenter (use Barycenter tag instead of this)

  • Surface
    This is the planetary surface description. If you make a planet with textures stored on disk, use DiffMap and BumpMap parameters to describe textures (I will describe how to do it in a different thread). Some other parameters are:
    BumpHeight - max height of landscape in km.
    BumpOffset - negative offset of landscape in km. For example, if you want to make landscape from -8 km to +12 km, type BumpHeight 20 and BumpOffset 8.
    DiffMapAlpha - the mode of alpha channel of texture:
    "Water" - water specular (solar specular spot on water surfaces)
    "Ice" - ice specular (solar specular spot follows all curved surface of body)
    "None" - ignore alpha channel
    DayAmbient - fake ambient lighting at daylight time. Usable for bodies without atmospheres and for cloud layers.
    Lommel - Lambert lighting model to Lommel-Seeliger lighting model ratio. Type Lommel 0.0 for Lambert only model (good for gas giants) or Lommel 1.0 for Lommel-Seeliger only model (good for dusty bodies without atmosphere, like Moon). Intermediate values for mixed lighting model (linear interpolation).
    Life - seed a life on a planet. If you type Life true, SpaceEngine will type "with life" string in planet's info table.
    Randomize - a randomization vector. If you make two identical planets (with all parameters identical), type different randomization values to make them look different.
    colorDistFreq, colorDistMagn - frequency and magnitude of "spots" of various detail textures.
    detailScale - scale of detail textures.
    colorConversion - convert colors of detail textures to colors of color table, defined by colorBeach ... colorUpPlants parameters (see below).
    seaLevel - relative depth of sea, obsolete parameter (use Ocean tag instead).
    snowLevel - relative height of snow level on mountains, obsolete parameter.
    tropicLatitude, icecapLatitude - sinus of latitude of tropics and polar ice cap endge (0.0 - equator, 1.0 - pole).
    icecapHeight - relative height of ice caps.
    climatePole, climateTropic, climateEquator - climate of poles, tropics and equator (it is an index to color table, 0.0 - desert, 0.5 - temperate zone, 1.0 - snow).
    tropicWidth - tropics width.
    mainFreq - frequency of main (global) noise, defines continents/oceans distribution.
    venusFreq, venusMagn - frequency and magnitude of Venus-like landscape forms.
    mareFreq, mareDensity - frequency and density (number) of impact bassins aka lunar mares.
    montesFreq, montesMagn, montesDensity - frequency and magnitude of mountains, density (number) of mountain massifs.
    hillsFreq, hillsMagn, hillsDensity - frequency and magnitude of mountains aka "eroded hills", density (number) of mountain massifs (works only on Desert and Terra).
    dunesFreq, dunesMagn, dunesDensity - frequency and magnitude of dunes, density (number) of dune massifs.
    canyonFreq, canyonMagn, canyonDensity - frequency and magnitude of canyons, density (number) of canyon massifs.
    cracksFreq, cracksMagn, cracksOctaves - frequency, magnitude and number of octaves of cracks in icy crust, like on Europa (works only on Selena and Ice World).
    craterFreq, craterMagn, craterDensity, craterOctaves - frequency, magnitude, density (number) and number of octaves of craters.
    craterRayedFactor - number of rayed craters relative to regular craters.
    cycloneFreq, cycloneMagn, cycloneDensity - frequency, magnitude and density (number) of cyclones in clouds layer.
    colorSea, colorShelf, colorBeach, colorDesert, colorLowland, colorUpland, colorRock, colorSnow - 8 vectors for color table from lower altitudes to higher altitudes.
    colorLowPlants and colorUpPlants - modification of colorLowland and colorUpland parameters for planets with life (Life true).

  • Ocean
    This is water layer description. Planets may have several layers of water at different heights, but it is useful yet. The water is rendered as transparent spherical layer around the planet.
    Height - height of water surface above the lowest point of the planet's surface (Surface.Radius - Surface.BumpOffset) in kilometers. Make it lower than the highest mountains (Surface.BumpHeight) to obtain the seas and continents, and above them to get a planet completely covered by water.
    SpecularBright - bright of the solar spot glare, the default value is 20.
    SpecularPower - size of the solar spot glare, the default value of 150, the less the value - the larger the spot.
    DayAmbient - fake ambient lighting at daylight time.
    Color - modificator of the color of the water surface. Use the colorSea parameter from the Surface tag instead.

  • Clouds
    This is the cloud layer description. Planet can have several clouds layers with different textures, altitudes and moving velocities. To do this simply type Clouds { } tag several times with different parameters inside them. If you make a planet with cloud textures stored on disk, use DiffMap and BumpMap parameters to describe textures (I will describe how to do this in different thread). Some other parameters are:
    Height - the height of the clouds above the lowest point of the planet's surface (Surface.Radius - Surface.BumpOffset) in kilometers. Make it is higher than the highest mountains (Surface.BumpHeight), so the clouds with no overlap with them.
    Velocity - velocity clouds at the equator relative to the planet's surface, in kilometers per second.
    Coverage - clouds coverage (0...1). Note that this is not coverage amount, but factor of converting heightmap to color map.
    twistZones and twistMagn - number of Jupiter-like zones or strips and its strength. To make a Venus-like cloud layer, type twistZones 1 and twistMagn 3.5.
    DayAmbient - fake ambient lighting at daylight time.

  • Atmosphere
    This is the atmosphere tag. SpaceEngine uses several precomputed models of atmospheres, stored in data/models/atmospheres/ folder in the binary files with .atm extension. They are described in the script file atmospheres.cfg, stored in the same folder. To add your own model, you must add atmosphere model description in this file. Note that not all systems can correctly calculate atmospheric models due to unsupported geometry shaders or some other issues. So I recommend to use standard models, that you can find in these folders:
    Earth.atm - Earth atmosphere model, blue sky and red sunset.
    Mars.atm - Mars atmosphere model, red sky and blue sunset.
    Venus.atm - Venus atmosphere model, yellow sky and blue sunset, big density.
    Jupiter.atm - Jupiter atmosphere model, white sky and yellow sunset.
    Neptune.atm - Neptune atmosphere model, deep blue sky and pink sunset.
    Titan.atm - Titan atmosphere model, violet-green-orange sky and red sunset.
    Sun.atm - Star atmosphere model, white sky and white sunset (real color is matched to star light color).
    Some parameters are:
    Model - name of atmospheric model ("Earth", "Venus", etc).
    Height - height of the top boundary of the atmosphere in km. Typical value 50-100 km for terrestrial planets, 500-2000 km for gas giants.
    Pressure, Density, Greenhouse - physical parameters, some of them are typed by SpaceEngine in planet's info table. Greenhouse is a temperature of the greenhouse effect in Celsius or Kelvin degrees.
    Bright and Opacity - rendering parameters. To avoid visual artifacts, use Opacity = 0.1*Bright.

  • Rings
    This is the planetary rings system tag. In current version (0.95) rings are drawn as flat textured ring around planet with 4 levels of procedural noise. There is no way to control global noise pattern but to make a texture for it.
    Texture - the path to global texture. It must be in RGBA format and have dimentions of x*2 pixels, there x is the length of texture (512, 1024, etc). First row of pixels is a front-light radial color pattern (with opacity in alpha channel), and second row is a back-light radial color pattern (with opacity in alpha channel). Look at Saturn's rings in SpaceEngine: it has different appearance in back lighting, when Sun is behind Saturn.
    FrontBright - brightness of rings in front ("day") lighting.
    BackBright - brightness of rings in back ("night") lighting.
    Density - global opacity multiplier.
    Exposure - global brightness multiplier.

  • Orbit
    This is the planetary orbit tag. Current version (0.95) uses only Kepler equations to compute orbital motions of bodies. If you do not know about Kepler orbital elements, refer to Wikipedia.
    Note: the Period parameter can be calculated automatically by SpaceEngine from the SemiMajorAxis or PericenterDist.
    If you want to make a binary system, make sure that the following parameters are the same for both two bodies of the system: Eccentricity, Inclination, AscendingNode, MeanAnomaly. The ArgOfPericenter parameter of one body must differ by 180 degrees from the ArgOfPericenter parameter of another body. Calculate the SemiMajorAxis parameter from actual system components mass ratio (here R is the desired distance between the bodies):

    Body A: SemiMajorAxis = R * MassB / (MassA + MassB)
    Body B: SemiMajorAxis = R * MassA / (MassA + MassB)



*

Attachments: 5518329.jpg (157.4 Kb)
 
SpaceEngineerDate: Tuesday, 28.06.2011, 19:57 | Message # 3
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
Here are the sample codes for moon. Some parameters have no sense for this type of body, so those are skipped.

Code

Moon      "Achird 1.1"    // Type of object ant it's name
{
       ParentBody      "Achird 1"  // The body, around wich this planet orbits
       Class           "Selena"    // Class of a planet

       Radius          1112.5      // Radius in km
       //Mass            0.76        // Mass in Earth's masses
       Oblateness      0.0         // Oblataness

       Albedo          0.12                   // Albedo
       Color          (1.000, 1.000, 0.955 )  // Color of a particle

       /* Do not describe rotation parameters if you want
          to let SpaceEngine auto calculate tidal locking */
       //RotationPeriod  27.8        // Rotation period in hours
       //RotationOffset  18.6        // Rotation phase in degrees
       //RotationEpoch   2451545.0   // Epoch of rotatoin elements, Julian date
       //Obliquity       16.58       // Obliquity of rotation axis in degrees
       //EqAscendNode    28.16       // Longitude of ascenging node of rotation axis in degrees
       //Precession      12500       // Precession period in years
          
       Surface         // Surface tag
       {
           // These parameters describes a texture pack stored on the disk.
           // I comment it out because this planet uses a procedural generation of surface.
           //DiffMap        "Icarus1/Surface"  // Surface (color) texture
           //DiffTileSize    512               // Surface texture tile resolution
           //DiffTileBorder  1                 // Surface texture tile border width
           //BumpMap        "Icarus1/Bump"     // Bump (heightmap) texture
           //BumpTileSize    512               // Bump texture tile resolution
           //BumpTileBorder  1                 // Bump texture tile border width

           BumpHeight      20.58671 // Max height of landscape in km
           BumpOffset      5.35812  // Offset of zero height level
           //DiffMapAlpha   "None"   // Mode of specular effect (flecks of sunlight)
           //SpecularBright  20.0    // Brightness of specular spot
           //SpecularPower   150.0   // Size of specular spot
           DayAmbient      0.07    // Brightness of fake daytime ambient light
           Lommel          1.0     // Lambert to Lommel-Seeliger lighting model ratio
           Exposure        2.0     // Global surface brighness
           Life            false   // True if there is life on the planet

           // Next are parameters for procedural surface generation
     Style           0.589168                // Default color scheme
     Randomize      (-0.031, -0.725, -0.872) // Randomize vector
     colorDistMagn   0.04671758  // Magnitude of detail textures distortion
     colorDistFreq   14.59185    // Frequency of detail textures distortion
     detailScale     665.3179    // Scale of detail textures
     colorConversion true        // Perform textures color conversion
     seaLevel        0.2344274    // Mare level height (0...1)
     snowLevel       0.990009    // Snow line level (0...1)
     tropicLatitude  0.0         // Latitude of tropics
     icecapLatitude  0.5         // Latitude of ice caps boundaries
     icecapHeight    0.4566726   // Height of ice caps
     climatePole     1.000       // Climate of poles   - index to color table (0...1)
     climateTropic   0.450       // Climate of tropics - index to color table (0...1)
     climateEquator  0.625       // Climate of equator - index to color table (0...1)
     tropicWidth     0.07        // Width of tropics
     mainFreq        1.770453    // Main noise frequency (oceans/continents)
     venusFreq       0.90631     // Venus-like global structures frequency
     venusMagn       0.1794956   // Venus-like global structures magnitude
     mareFreq        1.590966    // Lunar mare frequency
     mareDensity     0.1880112   // Lunar mare density
     montesMagn      0.2106156   // Lunar mare magnitude
     montesFreq      447.9364    // Lunar mare frequency
     montesDensity   0.1032389   // Lunar mare density
     dunesMagn       0.05065665  // Dunes magnitude (0...1)
     dunesFreq       7542.516    // Dunes frequency
     dunesDensity    0.0         // Dunes density
     hillsMagn       0.125375    // Hills magnitude (0...1)
     hillsFreq       0.3447827   // Hills frequency
     hillsDensity    0.5050473   // Hills density
     canyonMagn      0.003447684 // Canyons magnitude (0...1)
     canyonFreq      658.1566    // Canyons frequency
     canyonDensity   0.3917769   // Canyons density
     cracksMagn      0.02371026  // Ice cracks magnitude (0...1)
     cracksFreq      2.237627    // Ice cracks frequency
     cracksOctaves   0           // Number of ice cracks octaves
     craterMagn      0.6555124   // Craters magnitude
     craterFreq      17.41361    // Craters frequency
     craterDensity   0.8474388   // Craters density
     craterOctaves   10          // Number of craters octaves
     craterRayedFactor 0.2032161 // Number of rayed craters relative to usual craters
     colorSea       (0.400, 0.350, 0.320, 0.000) // Color of mare          
     colorShelf     (0.470, 0.410, 0.380, 0.000) // Color of mare          
     colorBeach     (0.560, 0.470, 0.420, 0.000) // Color of continents          
     colorDesert    (0.510, 0.440, 0.370, 0.200) // Color of continents          
     colorLowland   (0.390, 0.340, 0.280, 0.500) // Color of continents          
     colorUpland    (0.660, 0.600, 0.520, 0.800) // Color of continents          
     colorRock      (0.670, 0.620, 0.550, 1.000) // Color of continents          
     colorSnow      (1.000, 1.000, 1.000, 1.000) // Color of continents        
    }

    /* There is no atmosphere, clouds, oceans and rings on this moon */
       //Clouds
    //Ocean
       //Atmosphere
       //Rings

       Orbit       // Orbit tag
       {
           //Type            "Static"  // This is for non-moving bodies like suns
           RefPlane        "Equator"   // Orbit reference plane
           Epoch           2451545.0   // Orbital parameters epoch, Julian date
           //Period          0.91458     // Orbital period in years
           Eccentricity    0.0366      // Eccentricity
           Inclination     1.81546     // Inclination in degrees
           AscendingNode   0.15441     // Longitude of ascending node in degrees

           // Next two are interchangeable: SemiMajorAxis = PericenterDist / (1.0 - Eccentricity)
           SemiMajorAxis   0.0011029   // Semimajor axis in astronomical units
           PericenterDist  0.0010625   // Pericentric distanse in astronomical units

           // Next two are interchangeable: ArgOfPericen = LongOfPericen - AscendingNode
           ArgOfPericen    18.768      // (or ArgOfPericenter) Argument of pericenter in degrees
           LongOfPericen   18.61359    // (or LongOfPericenter) Longitude of pericenter in degrees

           // Next two are interchangeable: MeanAnomaly = MeanLongitude - LongOfPericen
           MeanAnomaly     275.156898  // Mean anomaly in degrees
           MeanLongitude   294.079308  // Mean longitude in degrees

           AscNodePreces   6.3548      // Ascending node precession period in years
           ArgOfPeriPreces 1297.156    // Argument of pericenter precession period in years
       }
}




Here is the sample code for a gas giant. Some parameters have no sense for this type of body, so they have been skipped.
Note how clouds are described. You can see three empty Clouds { } tags, that tells SpaceEngine to generate parameters automatically. However, you can type Height, Velocity and other physical parameters to each Clouds tag individually. But procedural texture parameters will be the same for each Clouds tag. You can type them in any Clouds tag of Surface tag. Here are all clouds procedural texture parameters:
mainFreq, mainOctaves, Coverage, twistZones, twistMagn
Note that color table tags (colorSea ... colorSnow) here means colors of clouds at different altitudes, and is described in the Surface tag.

Code

Planet    "Achird 2"  // Type of object ant it's name
{
       ParentBody      "Achird"    // The body, around wich this planet orbits
       Class           "GasGiant"  // Class of a planet

       Radius          78293.2     // Radius in km
       Mass            448.2       // Mass in Earth's masses
       Oblateness      0.0         // Oblataness

       Albedo          0.36                   // Albedo
       Color          (1.000, 0.898, 0.768 )  // Color of a particle

       RotationPeriod  12.2        // Rotation period in hours
       RotationOffset  23.3        // Rotation phase in degrees
       RotationEpoch   2451545.0   // Epoch of rotatoin elements, Julian date
       Obliquity       13.58       // Obliquity of rotation axis in degrees
       EqAscendNode    2.44        // Longitude of ascenging node of rotation axis in degrees
       Precession      432300      // Precession period in years
          
       Surface         // Surface tag
       {
           // These parameters describes a texture pack stored on the disk.
           // I comment it out because this planet uses a procedural generation of surface.
           //DiffMap        "Daedalus/Surface" // Surface (color) texture
           //DiffTileSize    512               // Surface texture tile resolution
           //DiffTileBorder  1                 // Surface texture tile border width
           //BumpMap        "Daedalus/Bump"    // Bump (heightmap) texture
           //BumpTileSize    512               // Bump texture tile resolution
           //BumpTileBorder  1                 // Bump texture tile border width

           BumpHeight      9.3     // Max height of landscape in km
           BumpOffset      0.3     // Offset of zero height level
           DiffMapAlpha   "Water"  // Mode of specular effect (flecks of sunlight)
           SpecularBright  20.0    // Brightness of specular spot
           SpecularPower   150.0   // Size of specular spot
           DayAmbient      3.0     // Brightness of fake daytime ambient light
           Lommel          0.0     // Lambert to Lommel-Seeliger lighting model ratio
           Exposure        2.0     // Global surface brighness
           Life            false   // True if there is life on the planet

           // Next are parameters for procedural surface generation
           Style           0.03865                 // Default color scheme
           Randomize      (0.669, 0.520, -0.672)   // Randomize vector
           mainFreq        0.0256  // Main noise frequency
           mainOctaves     8       // Number of octaves of main noise
           colorDistFreq   1.76344 // Color distorsion amplitude
           colorDistMagn   0.179   // Color distorsion frequency
     twistZones      2.095   // Number of Jupiter-like zones or strips
     twistMagn       0.599   // Strength of twist
     cycloneMagn     18.851  // Cyclones magnitude
     cycloneFreq     0.2897  // Cyclones frequency
     cycloneDensity  0.1037  // Cyclones density
     cycloneOctaves  1       // Number of cyclones octaves
           twistZones      4.0     // Number of Jupiter-like zones or strips
           twistMagn       0.3     // Strength of twist
           colorSea       (0.630000, 0.600000, 0.550000, 0.000000)
           colorShelf     (0.700000, 0.700000, 0.690000, 0.000000)
           colorBeach     (0.800000, 0.870000, 0.920000, 0.000000)
           colorDesert    (0.650000, 0.420000, 0.270000, 0.000000)
           colorLowland   (0.730000, 0.330000, 0.270000, 0.000000)
           colorUpland    (0.750000, 0.350000, 0.290000, 0.000000)
           colorLowPlants (0.730000, 0.330000, 0.270000, 0.000000)
           colorLowPlants (0.730000, 0.330000, 0.270000, 0.000000)
           colorRock      (0.900000, 0.550000, 0.290000, 0.000000)
           colorSnow      (0.950000, 0.590000, 0.220000, 0.000000)
       }

       // 3 cloud layers
       Clouds { }
       Clouds { }
       Clouds { }

       Atmosphere      // Atmosphere tag
       {
           Model          "Jupiter"// Model of the atmosphere
           Height          680.0   // Height of the top boundary in km
           Bright          10.0    // Brightness (rendering parameter)
           Opacity         1.0     // Opacity (rendering parameter)
           SkyLight        1.0     // Brightness of skylight on terrain
           EclipseBright   250.0               // Brightness of solar eclipse shadow
           EclipseColor   (1.000 0.600 0.200)  // Color of solar eclipse shadow
       }

       Rings       // Rings tag
       {
           // Texture parameter is commented out, becuase
           // this planet use procrdural generation of texture
           //Texture         "Daedalus-rings.*"  // Rings texture
           InnerRadius      83000   // Inner raduis of rings system in km
           OuterRadius      165000  // Outer radius of rings system in km
           RotationPeriod   13.3    // Rings rotation period in hours
           RotationOffset   20.0    // Rings rotation phase in degrees
           FrontBright      1.0     // Direct lighting brightness
           BackBright       5.0     // Back lighting brightness (scattering)
           Density          1.0     // Density (opacity)
           Exposure         2.0     // Global brightness
       }

       Orbit       // Orbit tag
       {
           //Type            "Static"  // This is for non-moving bodies like suns
           RefPlane        "Ecliptic"  // Orbit reference plane
           Epoch           2451545.0   // Orbital parameters epoch, Julian date
           Period          10.139      // Orbital period in years
           Eccentricity    0.0235      // Eccentricity
           Inclination     0.0572      // Inclination in degrees
           AscendingNode   44.23281    // Longitude of ascending node in degrees

           // Next two are interchangeable: SemiMajorAxis = PericenterDist / (1.0 - Eccentricity)
           SemiMajorAxis   4.7632      // Semimajor axis in astronomical units
           PericenterDist  4.6512648   // Pericentric distanse in astronomical units

           // Next two are interchangeable: ArgOfPericen = LongOfPericen - AscendingNode
           ArgOfPericen    74.32142    // (or ArgOfPericenter) Argument of pericenter in degrees
           LongOfPericen   118.55423   // (or LongOfPericenter) Longitude of pericenter in degrees

           // Next two are interchangeable: MeanAnomaly = MeanLongitude - LongOfPericen
           MeanAnomaly     12.214751   // Mean anomaly in degrees
           MeanLongitude   91.1874358  // Mean longitude in degrees

           AscNodePreces   1.123e6     // Ascending node precession period in years
           ArgOfPeriPreces 2.124e7     // Argument of pericenter precession period in years
       }
}




You can download script for this tutorial here.

*

Attachments: 1439158.jpg (118.1 Kb) · 0243509.jpg (144.5 Kb) · MySystem.sc (23.5 Kb)
 
NeonDate: Wednesday, 29.06.2011, 16:09 | Message # 4
Explorer
Group: SE team
Australia
Messages: 208
Status: Offline
Very nice... Vova, thanks for doing that smile
 
TotyDate: Wednesday, 29.06.2011, 16:24 | Message # 5
Explorer
Group: SE team
Spain
Messages: 158
Status: Offline
Awesome and useful work. Thanks. happy
 
SpaceEngineerDate: Wednesday, 29.06.2011, 18:02 | Message # 6
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
Ask in this thread about the workings of parameters.

*





 
JabberwockxenoDate: Thursday, 25.08.2011, 00:19 | Message # 7
Observer
Group: Users
United States
Messages: 10
Status: Offline
Oh wow!

This is like spore, only better!

It lacks some of the more personal tools though, I wish I could carve a smilky face on it like in spore smile
 
TuskinDate: Wednesday, 31.08.2011, 00:02 | Message # 8
Space Pilot
Group: Users
Canada
Messages: 94
Status: Offline
I made this before you made the guide, the planet Reach from 'Halo'. Your code was neat a easy to follow

Code
Planet    "Reach/Epsilon Eri 2/18 Eri 2"
{
    ParentBody     "18 Eri"
    Class          "Terra"

    Mass            1.55   // M_Earth
    Radius          7636.5     // km
    //Oblateness      0.0034

    RotationPeriod  27  // hours
    RotationOffset  280.5       // degrees
    Precession      25592       // years
    //Obliquity      -23.4392911  // degrees

    Color         ( 0.850 0.850 1.000 )
    Albedo          0.3

    Surface
    {
     Style           0.20
     Life            true
     //Randomize      (0.86, 0.43, 0.75)
     seaLevel        0.4
     mareDensity     0.0
     craterDensity   0.3
     //climatePole     1.0
     //climateTropic   0.45
     //climateEquator  0.625
     latIceCaps      0.86
     /*colorSea        (0.04, 0.10, 0.20, 1.00)
     colorShelf      (0.15, 0.48, 0.46, 1.00)
     colorBeach      (0.82, 0.73, 0.57, 0.00)
     colorDesert     (0.38, 0.32, 0.22, 0.00)
     colorLowland    (0.34, 0.29, 0.18, 0.00)
     colorUpland     (0.57, 0.54, 0.42, 0.00)
     colorRock       (0.10, 0.10, 0.10, 0.00)
     colorSnow       (1.00, 1.00, 1.00, 0.50)
     colorLowPlants  (0.18, 0.24, 0.09, 0.00)
     colorUpPlants   (0.15, 0.17, 0.07, 0.00)*/
     //BumpMap         "Moon/bump"
     BumpHeight      11.5
     DiffMapAlpha   "Water"
     SpecularBright  20
     SpecularPower   150
    }

     Clouds
    Clouds
    {
     Coverage   0.20
     mainFreq   1.0
     Velocity   40
     Height     5
     BumpHeight 0.5
    }

    Atmosphere
    {
     Height      90
     Pressure    1
     Density     1.548
     Model      "Earth"
     Bright      10.0
     Opacity     1.0
     EclipseColor ( 1.000 0.600 0.200 )
    }

    Orbit
    {
     Period         1.08          // years
     SemiMajorAxis  0.6 // a.u.
     Eccentricity   0.0167086342
     Inclination    0.0          // degrees
     AscendingNode  348.739      // degrees
     LongOfPericen  102.93734808 // degrees
     MeanLongitude  100.46645683 // degrees
    }
}


Thanks to your guide though I can make my own Catalogue.
Right now I just have this pasted at the bottom of the "SolarSys.sc" file.


Edited by Tuskin - Wednesday, 31.08.2011, 00:06
 
SpaceEngineerDate: Wednesday, 31.08.2011, 10:54 | Message # 9
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
Here it is:

This is a render from new version.

*

Attachments: 7530647.jpg (98.5 Kb)





 
TuskinDate: Monday, 05.09.2011, 16:09 | Message # 10
Space Pilot
Group: Users
Canada
Messages: 94
Status: Offline
that looks very nice
 
HarbingerDawnDate: Wednesday, 23.11.2011, 16:23 | Message # 11
Cosmic Curator
Group: Administrators
United States
Messages: 8717
Status: Offline
SpaceEngineer, thank you for this thread, it is an invaluable resource! smile
I was wondering if any changes to existing planet parameters, or new parameters, had been added for version 0.95. I am also curious how to specify 3D models since that is now an experimental feature?
Thanks!





All forum users, please read this!
My SE mods and addons
Phenom II X6 1090T 3.2 GHz, 16 GB DDR3 RAM, GTX 970 3584 MB VRAM


Edited by HarbingerDawn - Wednesday, 23.11.2011, 16:36
 
SpaceEngineerDate: Wednesday, 23.11.2011, 22:11 | Message # 12
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
This tutorial will be updated soon. Version 0.95 has a lot of new parameters.

*





 
SpaceEngineerDate: Friday, 30.12.2011, 16:05 | Message # 13
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
The tutorial has been updated (v0.95). Press "Refresh page" in your browser to view updated images.




 
TalynDate: Friday, 27.04.2012, 00:49 | Message # 14
Explorer
Group: Users
Portugal
Messages: 207
Status: Offline
Is there a way to change the tint of the atmosphere with the earth model, without making a new model?




PC: Intel Core2Duo E6850 @ 3.00 GHz & 4GB DDR3 @ 1333 - NVIDIA GeForce 8800 GTS with 640 MB VRAM
Laptop: Intel Core2Duo T9400 @ 2.53 GHz & 4 GB DDR @ 1066 - NVIDIA GeForce 9600M GT
 
SpaceEngineerDate: Friday, 27.04.2012, 15:07 | Message # 15
Author of Space Engine
Group: Administrators
Russian Federation
Messages: 4800
Status: Offline
Quote (Talyn)
Is there a way to change the tint of the atmosphere with the earth model, without making a new model?

No. You only can control its brightness and opacity. Creating a new model is a bad idea, because atmosphere models are not deleted from video memory once being unnecessary (like planetary textures and stars).

*





 
Search: