This is my first contribution but I was using Unreal Engine for years…
I am working on an open world solution (Real open world) with real time data streaming and with no loading time.
I use GIS Data to generate procedurally the whole earth. The GIS Data is read and used on runtime, nothing is baked.
I am using custom projections (WGS-84) to simulate a real size earth (Yes you can see earth and create real size planets!).
The visual is correlated with the real data.
The application is highly multi threaded and resources are loaded and unloaded on runtime.
Here is a small demonstration
I have only data covering 220 Km x 220 Km (2 Degrees x 2 Degrees) https://youtu.be/pUvoSZkFbjs
It’s possible to generate any other planet…
Here are some other features:
-Unbounded Worlds
-Procedural Imagery based on GIS data
-WGS-84 Support
-Real Size World
-Fully automated terrain generation
-Procedurally generated from any GIS Data
-OGC CDB Support
-Fast data loading
-No loading time
-High frame rate (75-100 f/s with dense data and complex terrain at high speed (>560 m/s))
-Fast loading after reposition
-GIS Data 3D Editor
-Shifting and re-projection to maintain precision
Honestly, I don’t know yet. It’s a lot of code and there is still a lot of work to do. I started designing a solution to create procedural models (on runtime), based in the footprints and other information like the region, type, height, number of stories, etc. The information is available already in the GIS data (Check OpenStreetmap for example).
I don’t know yet, but for sure not Open Source it.
Yes you can use specific models, if your GIS data points to a real model it will be used, it will create a procedural one otherwise…However, Unreal still has performances limitations in term of streaming of assets (textures or models…).
You can load in data :-). The application is completely decoupled from the sources, so if your tile requests a specific data, it asks the data server for it…You can customize your server of data, There is a public interface (If the format is not supported per default).
Not yet, this is still version 0.1, but it’s in the plan, it will use the road network GIS data to generate the roads…Again any data…if your format it’s not supported per default you can create your own converter…
No it’s not a plugin, I created external libraries for the geographic processing, the tiling system and the math behind…I used them in a project.
WOW! Would totally love to see this become a real world solution. My mind is swirling with endless possibilities. Please keep us updated on the progress and if you could use any assistance with testing along the way please don’t hesitate to get in touch.
The possibilities are so huge, you definitely have a lot of developers wanting this, afterall the world generation is key for a game success, not to mention other applications!
Hey, can I ask for a few more details?
It looks really interesting, and im not sure how it works?
have you imported a library of GIS data and it picks them dynamically, or does it blend them?
like a GAN?
and what format is the satalite date in?
Internally, the system is very complicated to explain. I will try to simplify the concepts.
The application is completely decoupled from the sources. The most important part is the world, in fact, the application is creating configurable level of details of tiles based on the geographic position of the viewer, those tiles are created using some geographic projection to simulate a round planet.
During, the creation, the tiles will request some resources based on the geographic extent and some other properties.
A server of Data will try to provide GIS data that satisfy the extent and the properties.
The server of data is highly multithreaded and it’s loading a lot of data in advance to make sure the data is all the time available, so the user can fly at 1000 m/s.
All of this is internally managed, so you don’t need to understand it.
However, the server has an interface for loading data. And this can be useful for the user.
In fact, if your format it’s not supported per default you can create your own converter. So you need a library to read your GIS format. For the Demo, I used a OGC CDB format. There is a library for loading this format.
Hey this looks great I wanted to use this for large scale desert landscapes that has good frame rate because unreal landscape is unworkable for large terrains too much frame rate hit. Also when the roads are working what way will they come into engine is it a material or spline etc.
The roads can’t be material only if you need detailed edges…
For large terrain it’s possible to combine both concepts: Spline for closer roads and material for far ones.
How are you accomplishing the boundless world you mentioned?
Are you re basing the world origin? Using double floating point precision? Using a dual Coordinate System?