FeatureHead

Skyline Gen2 – Terrain Development February 2017


Hello Fellow skyline game devs,

This time we have some great news about Gen2 and the new terrain system that is being developed. The past week has shot past but within it we managed to really shoot forward with the terrain system and managed to add a good portion of the features Gen1 had.

Gen2_Terrain_Image00

Terrain Editing:

For example, we now have all the height editing modes which include Raise, Lower, Flatten, Leveler and Smooth Average. This allows you to edit the terrain once again and edit your paths directly into the terrain if you have the resolution to handle that.

Gen2_Terrain_Image05

Terrain Painting:

We now also have the Painting features implemented again including Painting & Removing Layer Textures, Painting & Removing Colour map information and as of yesterday, we also have the auto paint feature back.. Hooray! 😀
Gen2_Terrain_Image02

Gen2_Terrain_Image01

The facts about painting layers!!

As for how many layers? Well, currently since we have been catching up to the Gen1 terrain system; we have implemented 5 layers that each hold an albedo(diffuse) map, Normal map and roughness map. The normals are like the other PBR system in respect that the normal maps have to be placed in the terrain as a BC5_SNORM format. However skyline again comes to the rescue and automatically converts your normal map of choice into a format that is acceptable.

In order to get the textures to display correctly, we had to open skyline to using Texture Arrays which is where multiple textures are packed into a single array that are then accessed by an array index value in the shader. We are unsure how Texture arrays are going to affect the engine, but we have started with smaller arrays in cases for small GFX cards such as a 1GB memory as texture arrays can really go big on memory if formats, sizes and mip map counts are not shared across textures, but as usual, we are planning the beginnings stages of handling texture conversions for you to save your time when developing your game.
Now for the positive :) Because of texture arrays and them storing more textures in 1 texture much like an atlas does, this means we may be able to open up more texture layers if textures are shared which will add a huge variety to the way terrains look.

Because of the PBR shader inside the terrain, it means normals and textures are looking mighty flash now, and get the right normal and it can look like this:
Gen2_Terrain_Image04

Speed and Performance:

The speed and performance of the terrain is far better than Gen1 was, without the HBAO on terrain, it takes less than 10 frames at the 170 mark on an ageing machine.

Heightmap images can be loaded on but can be a bit slow at the moment as it has to delete the terrain and recreate from the same settings as previous, but this can be improved by editing the vertex data on the existing terrain which should make it much faster to see the reflected changes.

Auto paint takes the same amount of time to process as it did in Gen1 if not a bit faster.

What’s left for the first pass?

Moving on to whats required to complete this task is:

  • Convert the normals from being stored in the mesh data to reading them in from a texture and dynamically create the nornal map as we edit the terrain height, this will be quicker when editing also as we can update the image on the GPU every few frames instead of every frame.
  • Lod stages need to reflect the edited height data using the brushes as only the high rez is currently being changed. This will ensure the terrain looks correct over the whole distance.
  • Brushes need to be expanded on their workflow adding the ability to change Brush Size and Brush intensity using the keyboard while editing rather than having to go to the panel everytime. Oh and of course, one of the newer features we wish to add first is the ability to rotate a brush to create infinitely complex texture sculpting.
  • The lightmap! Terrains look a bit naff when they dont have a lightmap, dont you think? So this is a must feature and has already been started, which means you will be seeing lightmapped terrain in the near future :)
  • Now, this is possibly one of the most important features that we need from the terrain system; Load & Save. … i know you would think it would be the first thing to be added but we have left it til one of the last tasks. Why? Well, terrains store a lot of information whether it is height data, blend map data, slope data or just which textures are on which layers. This means that we needed most of the information first to create the best and most efficient load and save routine.
  • Import / Export Blendmap layers: This is quite a handy tool Gen1 terrain already had and because it existed it needs to be added again lol.
  • We also have some images to display on the Editor panel on the paint layers tab as i just havent got around to it yet.

Once these tasks are done, it means that the Gen2 Alpha testers can start to make terrains and scenes again and populate worlds with better visuals and Gen1 users are 1 step closer to getting a stable public version of Gen2.

When these tasks have completed, we will then announce the next set of features to be added to terrain.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>