Procedural Skyboxes

What follows is a brief explanation of a portion of the procedural skybox parameters. Note that procedural skyboxes are only available in Forged Alliance version maps, i.e., version 60.

A few examples of what is possible before we start.
a7d49616-5b2d-4de8-91fc-32d1b46094a2-image.png
88fa95a2-7f81-4eb3-b93d-84684fe6352e-image.png

To give this a try you will need: a text editor like Notepad or VSCode, FAF Map Editor, and of course Forged Alliance.

The FAF Map Editor can export procedural skybox settings in JSON format. Open the map editor and select the Lighting category. At the bottom of the sidebar are the export and import buttons. You will use these buttons a lot while experimenting. Export and save the skybox parameters as an .scmskybox file.

58a17a37-5cc4-4f54-8af2-bdc4cb38c3df-image.png

I'm not going define all of the parameters because there are several that, either don't do anything substantial, or I haven't tested yet. I'll cover what I use the most.

        "HorizonHeight": -42.5,
        "HorizonColor": {
            "r": 0.6485937237739563,
            "g": 0.8204687237739563,
            "b": 0.8399999737739563,
            "a": 1.0},
        "ZenithColor": {
            "r": 0.21999996900558473,
            "g": 0.4099999666213989,
            "b": 0.7199999690055847,
            "a": 1.0},
        "DecalGlowMultiplier": 0.10000000149011612,
        "Albedo": "/textures/environment/Decal_test_Albedo003.dds",
        "Glow": "/textures/environment/Decal_test_Glow003.dds",
        "Planets": [
            {
                "Position": {
                    "x": 2190.58056640625,
                    "y": 570.74267578125,
                    "z": -1020.002685546875
                },
                "Rotation": -1.5847588777542115,
                "Scale": {
                    "x": 183.0,
                    "y": 183.0
                },
                "Uv": {
                    "x": 0.0,
                    "y": 0.5,
                    "z": 0.5,
                    "w": 0.5
                }
            },
  • HorizonHeight - sets the position of the horizon with respect to the terrain, default value should be fine for most scenarios. It can be moved closer to zero for a more distinct horizon.

  • HorizonColor - sets the color of the lower portion of the skybox. I often start by setting these values equal to the Fog Color values and start adjusting from there.

  • ZenithColor - sets the color of the upper portion of the skybox

  • DecalGlowMultiplier - sets the glow value of the entities in the list of planets

  • Planets - sets the list of entities to be added to the skybox. Each planet has parameters that define its position, size, and rotation.

  • Position - sets the position of the planet in the skybox using the same coordinate system as the map editor

  • Rotation - sets the rotation of the planet from -2.0 to 2.0. Should be set to match the map lighting style and light direction

  • Scale - sets the size of the planet. In combination with the position values, can be used to create tiny distant stars, large near moons, and everything in between

After making some changes and saving the file you can import the changes into the FAF Map Editor. The map editor will give you a representation of the position, size, and colors, but will not render planets or clouds.

I'll update this post with the cloud settings as well as the planet Uv values when I get some more time.

Attached are the skyboxes for the earlier examples.

skybox examples.zip

hmm... Can you go make all our existing maps pretty now pls? XD

add this as a setting in the game to be able to do this on any map.

Good stuff, looking forward to more info!

"Design is an iterative process. The necessary number of iterations is one more than the number you have currently done. This is true at any point in time."

Newest map: luminary.png