Different sources of GIS data vary considerably in accuracy, quality and detail. The suitability of the data for use in Unreal varies too. This tutorial describes how to modify/enhance your GIS data to get the best out of it in UE4. 


The screenshots below (from the UE4 landscape created using data downloaded from the USGS National Map in Tutorial 1.) show some of the issues caused by perfectly good GIS data that’s less than ideal for use in Unreal. Problems mainly fall into two categories: 1. too little data, and; 2. too much data.

Not Enough Data:

When TerraForm imports the GIS vector lines as landscape splines, each vertex (control point) is clamped to the altitude of the landscape. We do this so that you can easily blend the landscape spline mesh (e.g. road/rail track) with the terrain.

If there are too few data points (as in the examples below), there can be large variations in the altitude of the terrain between control points. Deforming the landscape to meet the roads results in some pretty unrealistic constructions.

Too Much Data:

If the control points of the landscape splines are too close together (the data is too dense), the spline mesh that’s applied to create the road’s surface can get compressed. We don’t get the opposite of this problem with too little data because the spline mesh is replicated multiple times to fill bigger gaps (see above).


Goldilocks nailed it. Not to much and not too little (obvs) – just the right amount.

This tutorial is about how to enhance your vector data to get the best results for landscape splines in UE4. To do this we need to go back to QGIS (or Global Mapper if you’re using that).

Step 1:

Load the data in QGIS:

  • Launch QGIS.
  • Load the road, rail and trails vector .shp files.

‘Cancel’ the ‘Select Transformation…’ window that appears (we want to keep the data in its current projection):

Step 2:

Check the spacing of the points in the rail vector data:

  • Hide the Trails and Roads layers in the ‘Layers’ panel.
  • Click on the Rail layer to highlight (select) it.
  • Click the ‘Toggle Editing’ button.
  • Click the ‘Select Features by Area or Single Click’ button.
  • Hold <Left-click> to draw a box around the Rail vectors.

Now the vertices on the rail vectors are visible, we can see (above) there are some pretty big gaps between some of them.

Step 3:

Install the ‘Locate Points Along Lines’ plugin:

  • On the main menu, click ‘Plugins’ > ‘Manage and Install Plugins…’

In the ‘Plugins’ window:

  • Type ‘Locate’ in the search bar.
  • Check ‘Locate Points Along Lines’ plugin.
  • Click ‘Install Plugin’.

Step 4:

Create new points along the rail vector lines:

  • Click the ‘Locate Points Along Lines’ button on the toolbar (or select from ‘Plugins’ on the main menu.
  • ‘Input Polyline Layer’ should be the rail vector layer.
  • ‘Output Layer Name’ can be anything you want.
  • ‘Interval’ is the distance is metres between each of the new points. We’re using 20m because our rail track spline mesh is ~15m long. (To avoid squashing the mesh, we don’t want the interval to be shorter than the length of our spline mesh.)
  • We want to ‘Keep attributes’ in the data – they may come in handy later.
  • We want to replace the existing vertices, but keep the end vertices, so we’re unchecking ‘Add vertices’ and checking ‘Add endpoints’.
  • Click ‘Run’.

Turning off the original rail layer and leaving the new points shows they’re evenly spread with a distance between them that more .