#cologne #lastborn #82+ #green

MA_Milkyway


Published: 31.10.2025
Status: experimental
The only macro MW_Milkyway_Pigment so far returns a pigment that is normally added to a sky sphere. The pigment contains one or more image maps, rotated and moved as specified by macro call and the global variables MW_*.

The resulting view is created by supplied, very high-resolution images. Nothing is created with textures, color maps or other Povray stuff.

Raw data and further informations
All raw images come from a website of the GSFC. I have limited the files contained in the package to a resolution of 16,000x8,000 pixels (16k) so that the file size of the ZIP does not get out of hand.

For more information, additional maps and 32k versions of all images, see the section Download - Milky Way.

The highest resolutions should be handled carefully. When the Milky Way is displayed together with all 3 line maps, four 32k images end up in RAM, where Povray converts the JPEGs/PNGs into uncompressed format.

Example files

In the file ma_milkyway_examples.pov I've provided several use cases that can be used to test the package.

File ma_milkyway_example_simple.pov contains the minimum code required to display two maps on top of each other without the package.

Simple example
Once all the Povray work around it has been done (version, camera, light), only a few lines are needed to create the Milkyway.

#include "ma_milkyway.inc"
sky_sphere {
	//MW_Milkyway_Pigment (mMoveRight, mMoveUp, mResolution)
	  MW_Milkyway_Pigment(98, 61, 32) //Crux
}

Southern Cross

The macro MW_Milkyway_Pigment returns one or more pigments that are placed on the sky sphere.

All images contained in the pigment are moved 98 degrees to the right and 61 degrees up. If the camera is placed on Z- and looks at <0,0,0>, the Southern Cross will appear in the Z+ area.

The last parameter specifies the resolution, 32 is equivalent to 32k (32,000 pixels width). The package includes the sizes 4k, 8k and 16k, the 32 version is in the Download section.

The 16k version is completely sufficient for HD renderings and a camera angle of 40 degrees or higher, while the smaller versions are available for quick tests or camera angles > 60 degrees.

Variables
The result can be further modified by means of global, predefined variables.

#include "ma_milkyway.inc"
#declare MW_Show_Figures = 1;
#declare MW_Show_Bounds	 = 1;
#declare MW_Show_Grid	 = 1;
sky_sphere {
	MW_Milkyway_Pigment(-155, -28, 8) //Summer Triangle
}

The Summer Triangle with all available lines maps.
It's a bit too much content.

Line maps are transparent except for the lines and are placed in front of the Milky Way.

The intensity of all maps can be adjusted using the variables MW_Transmit_*. Value 0 is the unchanged maps, value 1 means they turn up completely black or transparent, negative values turn up the brightness. In animations, a slow increase from 0 to 1 is a good way to fade out a scene.

#include "ma_milkyway.inc"
#declare MW_Show_Figures = 1;
#declare MW_Show_Bounds	 = 1;
#declare MW_Transmit_Milkyway	= -2.7;
#declare MW_Transmit_Figures	= +0.2;
#declare MW_Transmit_Bounds		= -0.3;
sky_sphere {
	MW_Milkyway_Pigment(-155, -28, 8) //Summertriangle
}

The same section as above, only with a lighter Milky Way and lines of different thicknesses.

For further explanations see the example file ma_milkyway_examples.pov.

Maps path
The path to the images must be specified relative to the executing script. Theoretically, you could also specify the path absolutely or put everything in the Povray include folders, but you quickly lose track of it.
Anyway, the global variable MW_Maps_Path is responsible for this.

The following file structure is assumed:
projects (folder)
--> my_space_scene.pov
packages (folder)
--> maps (folder)
--> ma_milkyway.inc

Accordingly, the path must be set in the file my_space_scene.pov:
#declare MW_Maps_Path = "../packages/maps/";
#include "../packages/ma_milkyway.inc"
sky_sphere { ... }

Whether before or after the include does not matter, it is only used inside the macro.

Todos
So far, I've only tested what the output looks like in a space scene. I left out a terrestrial view, with earthly objects in the foreground and different lighting conditions, for the time being. Perhaps further changes will be necessary for this.

The comparison with other planetary objects will also be interesting, e.g. how to adjust the brightness of the Moon, Mars and the Milky Way. Always recreating new maps, only with different brightness values, is certainly not an option.

Furthermore, the transmit behavior of the map but also of the lines has only been tested to a limited extent. As is well known, everything looks different in an animation than in a standalone rendering.

So there is still work to be done.
Version 1.1 will come at some point.

I have already successfully used an older version of MW_Milkyway in a video.

Download

ma_milkyway.7z => 107 MB 7-Zip - Current version 1.0 from 31. October 2025