It is possible to create your own landscapes for Stellarium. There are three types of landscape:

Single Fish-eye Method Using a fish-eye panorama image.

Single Spherical Method Using a spherical panorama image.

Multiple Image Method (also called “old style” landscapes) Using a series of images split from a 360° “strip” panorama image + a ground image.

Each landscape has it's own sub-directory in <user directory>/landscapes or <installation directory>/landscapes. The name of the sub-directory is called the landscape ID. The sub-directory must contain a file called landscape.ini which describes the landscape type, texture filenames and other data. Texture files for a landscape should by put in the same directory as the landscape.ini file, although if they are not found there they will be searched for in the .../textures directory, allowing shared files for common textures such as the fog texture.

For example, the Moon landscape that is provided with Stellarium has the following files:

.../landscapes/moon/landscape.ini
.../landscapes/moon/apollo17.png

The landscsape.ini file must contain a section called [landscape], which contains the details necessary to render the landscape (which vary, depending on the type of the landscape).

There is also an optional [location] section which is used to tell Stellarium where the landscape is in the solar system. If the [location] section exists, Stellarium can automatically adjust the location of the observer to match the landscape.

Contents

Single Fish-eye Method

The Trees landscape that is provided with Stellarium is an example of the single fish-eye method, and provides a good illustration. The centre of the image is the spot directly above the observer (the zenith). The point below the observer (the nadir) becomes a circle that just touches the edges of the image. The remaining areas of the image (the rounded corners) are not used.

The image file should be saved in PNG format with alpha transparency. Wherever the image is transparent is where Stellarium will render the sky.

The landscape.ini file for a fish-eye type landscape looks like this (this example is based on the Trees landscape which comes with Stellarium):

Single Panorama Method

This method uses a more usual type of panorama - the kind which is produced directly from software such as autostitich. The panorama file should be copied into the <config root>/landscapes/<landscape_id> directory, and a landscape.ini file created. The Moon landscape which comes with Stellarium provides a good example of the contents of a landscape.ini file for a spherical type landscape:

[landscape]
name = Moon
type = spherical
maptex = apollo17.png

Where:

name is what appears in the landscape tab of the configuration window.

type identifies the method used for this landscape. “spherical” in this case.

Note that the name of the section, in this case [moon] must be the landscape ID (i.e. the same as the name of the directory where the landscape.ini file exists).

Multiple Image Method

The multiple image method works by having a 360 panorama of the horizon split into a number of smaller “side textures”, and a separate “ground texture”. This has the advantage over the single image method that the detail level of the horizon can be increased further without ending up with a single very large image file. The ground texture can be a lower resolution than the panorama images. Memory usage may be more efficient because there are no unused texture parts like the corners of the texture file in the fish-eye method.

On the negative side, it is more difficult to create this type of landscape - merging the ground texture with the side textures can prove tricky. The contents of the landscape.ini file for this landscape type is also somewhat more complicated than for other landscape types. Here is the landscape.ini file which describes the Guereins landscape:

name is the name that will appear in the landscape tab of the configuration window for this landscape

type should be “old_style” for the multiple image method.

nbsidetex is the number of side textures for the landscape.

tex0 ... tex<nbsidetex-1> are the side texture file names. These should exist in the .../textures/landscapes directory in PNG format.

nbside is the number of side textures

side0 ... side<nbside-1> are the descriptions of how the side textures should be arranged in the program. Each description contains five fields separated by colon characters (:). The first field is the ID of the texture (e.g. tex0), the remaining fields are the coordinates used to place the texture in the scene.

groundtex is the name of the ground texture file.

ground is the description of the projection of the ground texture in the scene.

fogtex is the name of the texture file for fog in this landscape.

fog is the description of the projection of the fog texture in the scene.

nb_decor_repeat is the number of times to repeat the side textures in the 360 panorama.

decor_alt_angle is the vertical angular size of the textures (i.e. how high they go into the sky).

decor_angle_shift vertical angular offset of the scenery textures, at which height are the side textures placed.

decor_angle_rotatez angular rotation of the scenery around the vertical axis. This is handy for rotating the landscape so North is in the correct direction.

ground_angle_shift vertical angular offset of the ground texture, at which height the ground texture is placed.

ground_angle_rotatez angular rotation of the ground texture around the vertical axis. When the sides are rotated, the ground texture may need to me rotated as well to match up with the sides.

fog_angle_shift vertical angular offset of the fog texture - at what height is it drawn.

draw_ground_first if 1 the ground is drawn in front of the scenery, i.e. the side textures will overlap over the ground texture.

calibrated (optional, not used in this file). New since 0.10.6: Only if true, decor_alt_angle etc. really work as documented above. The (buggy) old code was left to work with the landscapes already existing.

Note that the name of the section, in this case [guereins] must be the landscape ID (i.e. the same as the name of the directory where the landscape.ini file exists).