Manifold Analytics
Manifold Analytics performs geo-spatial analytics and machine vision using satellite and aerial imagery. They use this data to gather valuable insights for their clients in defense, energy, and rail.
Manifold reached out to us expressing interest in leveraging Unreal Engine 4 to generate visually plausible real time environments from existing satellite data. With our background in both photorealistic rendering for film and real-time video game rendering, this sounded like a great idea.
Heightfield Erosion
Geometry derived from a digital surface model
Starting with a 30×30 kilometer digital surface model provided by Manifold, we brought the data into SideFX Houdini. The raw data gave us accurate elevation and landmass, but the overall resolution was still rather coarse. To create some visual interest and fine detail we applied an erosion simulation. This simulation calculates the flow of sediment over time and provided some nice visual interest and a starting point for creating detail masks.
Heightfield erosion simulation (20 frames)
Infrared and blackbody visualizations representing combined erosion and elevation data
Instance scatter
Manifold specializes in creating sophisticated AI driven terrain classifying algorithms. This means they can extract probabilistic masks representing various terrain types from satellite imagery. These masks can then be utilized to scatter points randomly throughout the scene, representing locations to which we can add trees later in Unreal.
Probabilistic instance placement based on masking. The red cylinders represent feature points for tree insertion.
Houdini Engine for Unreal
To get our data into Unreal we opted to use the Houdini Engine plugin for Unreal. Houdini Engine is a great tool as it allows us to build complex setups in Houdini and import them directly into other packages.
Using Houdini Engine we were able to replace all of our template points with the appropriate models, and use our masks natively with the Unreal landscape layering system.
Base color texture maps visualized in Unreal Engine
Material layers visualized in Unreal Engine
Real-time implications
It goes without saying that a huge benefit to creating environments in Unreal is the fact that we are able to render the scene in real time. At Realistic Picture Group we usually create our renders with Redshift or Mantra, and we generally expect each frame to take around 6 minutes to render with top of the line hardware. Unreal Engine, however, is handling this scene easily at 60 frames per second. While we are not able to achieve the same level of realism we can with offline rendering, the tradeoff we get in return is a fluid and interactive result. The fact that we can actually move the camera around and see updates immediately is very nice and opens the door to interactive simulation and virtual reality applications.
Conclusion
Unreal Engine 4 is a very powerful tool. By combining Unreal’s high performance rendering, Houdini’s procedural heightfield editing tools and Manifold’s satellite algorithms, we can create some very powerful visualizations.
We are very excited about the potential for this technology and look forward to helping Manifold innovate within this space in the future.