This is a technical breakdown of various systems implemented for the open-world environment of 'Cosmic Universe'.
All foliage has the option of interpolating between two colors based on a gradient mask. The hue of each tree also differs slightly and is randomly assigned based on its pivot point location, for added variety
The landscape material comprises of 5 layers. Most of the material’s texture and vector parameters can be adjusted through its instance, allowing for quick iteration and on-the-fly changes.
Using noise maps, layers can interpolate between different textures or colors, diminishing any visible tiling. Since the auto-generated grass takes on the ground’s color, it also benefits from this additional diversity.
Rather than being manually painted, the cliff layer is generated based on the ground’s normals. The threshold and power of this effect are adjustable via material instance. Auto-generated grass can’t spawn on the cliff layer.
A dithering opacity mask is used on foliage, softening the edge of the culling range which would normally be visible. The effect can be adjusted via the min and max culling ranges of each foliage type. Picture: Before Dither Mask
Picture: After Dither Mask
This grid effect is using a world-space mask to interpolate between the landscape layer’s color and the red color of the lines. In Cosmic Universe, the effect has a limited range and is toggle-able. It helps players visualize their land plots’ borders
The water material uses the single-layer water shading model, utilizing its accurate light scattering and absorption properties. Mesh distance fields are used to generate ripples on the shore, and around the player. Panning normal maps add surface detail
Using a Runtime Virtual Texture to mask each landscape layer, environment props can be made to appear different based on the layer they are placed on. In this example, rocks can be covered with sand or snow, when placed on those layers respectively
The grass occlusion effect is achieved by feeding the world position of props into the foliage material through the previously mentioned RVT. The grass simply “falls” underground using world-position offset. This offset can be adjusted via instance. The grass occlusion effect is achieved by feeding the world position of props into the foliage material through the previously mentioned RVT. The grass simply “falls” underground using world-position offset This offset can be adjusted via instance.
Similar to props, foliage actors can be modified per layer using RVT masking. The parameters controlling the color, snow mask intensity, and hardness can all be adjusted via instance
For foliage, leaves change color and can even wither away for deciduous trees. Tree branches use the same masking method as the props, allowing snow to pile up on top of them
All foliage has the option of interpolating between two colors based on a gradient mask. The hue of each tree also differs slightly and is randomly assigned based on its pivot point location, for added variety
The landscape material comprises of 5 layers. Most of the material’s texture and vector parameters can be adjusted through its instance, allowing for quick iteration and on-the-fly changes.
Videos
Trees and foliage are affected by wind of adjustable intensity and direction. Both the leaves and trunk of trees are affected. An option to adjust the wind’s intensity and influence on actors is available per instance. Video: Wind Intensity 1
Video: Wind Intensity 6
This system sets the position of the sun and moon in the sky based on a daily timer, what day of the year it is and a set time zone. The post-process exposure values are automatically adjusted throughout the day, so it never gets too dark to see.
A camera tracks the position of movable actors, including the player. That info is then passed on to the RVT via a render target, deforming the grass both downwards and sideways. As the masking happens in real-time, the deformation is physically accurate.