Terrain Recreation from Satellite Imagery (Similar to Microsoft Flight Simulator 2020)

I created a pipeline using the Unreal Engine and ArcGis Pro to take satellite images and auto-generate the environment. This is similar to what Microsoft did for their newest flight simulator. The main difference here is that it’s geared more towards a First/Third person type of game so it’s a smaller location (50 SqKm instead of the whole world) but there is a lot more detail close up.

End result (300m Height)

I use a digital elevation model (DEM) to get the terrain height and a support vector machine to get a splat map from the satellite image.

The splat map controls the “type” of material (grass, dirt, crops, forest, etc.) as well as the associated foliage. The ground material is then multiplied by the satellite image to give it the appropriate blends (Darker patches of grass, different colors of dirt, etc.). Normally this would be done procedurally or with noise but here we have real data to specify what patches of grass are drier than others.

View1Animation.gif

The color of the foliage is also multiplied by the satellite image to blend it all together. This runs at 120 fps and gives fairly good results.

I think it is clearly superior than Microsoft Flight Simulator 2020 when close up (but MSFS2020 obviously wasn’t targeting FPS type of environments).

The same layers shown close up.
CloseUpMatGif.gif

I used Quixel Megascans for the ground textures so everything is blended using height maps. Smaller effect but I figured I’d leverage everything I could from Quixel’s massive database.



didn’t cover the ArcGis Pro stuff but that just gets you the splat map. All the materials and foliage types can be swapped out for different environments (Desert, Grasslands, swamp, etc.) depending on the type of look you’re going for (turn you’re favorite country vista into a glacier wasteland).

I’m pretty excited with how well this turned out and how easy it is to generate new scenes from satellite images.
Any feedback to improve the scene or thoughts on how it could be used would be greatly appreciated. Thanks for checking this project out.

4 Likes

looks good. how did you setup the splat map texture to the landscape materials layers to assign different layers depending on the many colours in the splattexture?

Rather amazing it was much simpler than it seems it would need to be. Do you modify the B/W height map before connecting it to the main material node?

great, less satured colors would be better

Untitled-1.jpg

This looks fantastic, would love to learn more! Especially the support vector machine. Awesome job, and great to see that these types of results are achievable.

That is really amazing work man! I want to know more about this project, please. Can I contact you? Perhaps by email or discord or something?

Can you share your code and pipeline so we can do this as well. Very cool!