First Day Engine



The First Day Engine (short FDE) is a landscape rendering module that lets you visualize your heightmaps and textures in the "real world". You can also utilize it to render spherical and cubic environment maps (i.e. backdrops) for usage in 3D applications and video games.

The interface of the FDE consists of three pages:

1. Heightmap/Viewer/Sun
2. Textures
3. Scene Setup/Render


1. Use the Heightmap /Viewer/Sun page to load the heightmap and to place the camera position along with its target. The loaded heightmap defines the mountains and valleys of the landscape. It is stretched to a virtual 4000m x 4000m terrain.

The following controls are available:

Waterlevel: Sets the height of the water, e.g. the sea level.

Viewer's Altitude: Height of the camera above the surface (i.e. heightmap)

Viewer's Target Altitude: The target is placed where the camera arrow at the heightmap image points to. This is its altitude over the surface (can be negative).

Camera Mode: Select the way the rendering is performed, like a 360 Panorama or a 4x3 Cubemap Matrix.

Field of View: Increasing this value makes the camera to capture a wider area of the scenery (i.e. viewing angle). Decrease it to zoom in. This value is ignored if the camera mode is other than Normal Camera.

Sun Direction: The horizontal angle of the sun with 0 at the east.

Sun Height: The vertical angle of the sun, affects the time-of-day. Negative values simulate night scenery.

Heightmap Scaling: Scales the heightmap vertically. At 100%, the highest points of the heightmap (where it's white) mark an altitude of about 1000 meters.

Quadratic Scaling: Translates the linear values of the heightmap to a quadratic curve. This allows you to have finer height differences at the ground without having to lower the scaling value. Press the Apply Scaling button after you have changed the scaling value or the quadratic scaling checkbox.


2. How the ground appears can be adjusted at the Textures page.

The landscape is colored with a combination of several textures. You need to load a Mixing Map, which defines what texture is drawn at the different coordinates on the landscape. The map is is stretched to cover the entire terrain. The Sub Mixing Map is tiled multiple times over the terrain and variates it slightly, adding detail.

The landscape materials (e.g. grass, rock) are set up at the Textures panel. Each texture requires a Height Index value (ranging from 0 to 255), which defines what grayscales on the Mixing Map are replaced by the texture. For example if you set the Height Index to 0, the texture is assigned to all coordinates on the Mixing Map that are black. Shades between the height index values are covered with a mixture of the two adjacent textures. You can add up to eight maps to texture the landscape. The textures' Tiling values control the number of repetitions on the landscape.

Because very few landscapes are perfectly smooth, a Bump Map can be added, which roughens the terrain and simulates for example rock or sand. This bump map is applied using multifractal mapping, which allows it to cover large areas without loosing details:

Simple Mapping

Multifractal Mapping


3. Output parameters like the image dimensions, but also scene attributes like the appearance of the sky (including clouds), are controlled at the Scene Setup / Render page.

The Clouds are adjusted with four parameters:

Density: This defines the percentage of the sky, that is covered by cloud particles. The clouds are hardly visible at values below 50. The optimal range is located between 60 and 80.

Sharpness: Adjusts the contrast between the clear sky and the clouds. Low values result in gentle fog, high values in solid objects.

Detail: Due to the rendering complexity of the clouds, this parameter is used to balance between the quality of the clouds and the time that you have to wait for the image to finish.

Cirrus Clouds Density: This is for the clouds, which are located in the high layers of the sky.

Terrain and sky are illuminated by the sun. The brightness of the sun and its tint are adjusted with the Sun Light Color. Ambient light is a constant illumination that is independent of shadows and adds to the scene. The Ambient Color option controls its shade and intensity.

You can add stars for night scenes by increasing the Stars Brightness value.

Atmosphere effects are crucial for the image to look realistic. The Haze Color and Density parameters control the effect of water in the air, which makes distant objects appear indistinct. Distant terrain is blended to the Haze Color.

The light scattering effect, which makes the sky and distant objects blue is adjusted with the Sky Color and Atmosphere Blue Strength value.

There's also a reddening effect, which allows orange sunsets and pink sunrises. Its intensity is controlled by the Atmosphere Red Strength parameter.

The Water Tint is some kind of colored fog in the water, which replaces the ground in the deeper water. The intensity of this fog is regulated with the Water Tint Density value.

At the Rendering Settings panel, the output image parameters like Width and Height can be adjusted. The Antialiasing value increases the quality of the image by smoothing edges and improving the texture filtering. Because more rays have to be calculated per image pixel, the rendering times increase quadratic to the antialiasing value.

The Random Seed value influences the appearance of random objects like the clouds and the water. Each value e.g. defines an unique clouds pattern.

For special purposes, the rendering of the Sun, the Land and the Sky can be disabled. If you enable the Render Alpha Channel option, the rendered image will feature no colors but only the transparency values of the scene. This is useful if you plan later modifications in other image processing software.

Tip: If you want to use the FDE in your scripts, call it with the fderender command.