Skip to content

bcsongor/fxpo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛩️ fxpo – Fast X-Plane Orthoimages

Blazingly fast orthoimagery for X-Plane 11 and 12.

fxpo screenshot

Motivation

Open-source projects like Ortho4XP and AutoOrtho are great tools to bring ortho scenery for X-Plane. Ortho4XP covers the entire scenery building process from assembling vector data to downloading satellite imagery while AutoOrtho builds on top of Ortho4XP providing a solution to stream orthoimages on-demand.

Both, as the last step of the ortho scenery building process, download satellite imagery chunks, assembling and compressing them to a texture format that X-Plane can render.

fxpo optimises this step which—for sufficiently high zoom levels—is also the most time-consuming.

Is fxpo for me?

fxpo's optimisations heavily rely on SIMD-capable multicore CPUs, NVIDIA GPUs with high CUDA core counts and a sufficiently high-speed internet connection with low latencies towards orthoimage servers.

Tile fxpo Ortho4XP Speedup
+57-006, ZL17 2m 13s 16m 43s 7.5x

(Averages over 5 consecutive runs.)

Running on Intel Core i9-13900KS, NVIDIA GetForce RTX 4090 and 300 Mbps download speeds with ~4 ms latency toward virtualearth.net servers, fxpo shows a 7x performance improvement over Ortho4XP (commit 7ed9a09; max_convert_slots set to 32) downloading tile +57-006 at zoom level 17.

Usage

Use Ortho4XP to assemble vector data, triangulate mesh, draw masks and build DSF (set skip_downloads to True in Ortho4XP.cfg) for the given tileset. Once complete, use fxpo to download and build orthoimage textures for the tileset.

Usage: fxpo "<scenery_path>" "<tileset>"

  <scenery_path> is the path to X-Plane's Custom Scenery folder.
    Example: C:\X-Plane 12\Custom Scenery

  <tileset> is the coordinates of the tileset to download and process.
    Example: +57-006

The above example expects the path C:\X-Plane 12\Custom Scenery\zOrtho4XP_+57-006 to exist.

fxpo screenshot

fxpo requires Windows. The code-base is relatively platform independent so with some effort it should be possible to port it to Linux and macOS.

As of now no precompiled binaries are provided (community builds are more than welcome!). Please see the next section for instructions on how to build fxpo.

fxpo is experimental and bugs are expected.

Development

Requirements

  • CMake
  • vcpkg
  • Visual Studio 2022
  • NVIDIA Texture Tools (NVTT) 3 SDK (requires NVIDIA Developer account)
  • NVIDIA CUDA Toolkit 11.8

Build

  1. Generate the project files with CMake

    cmake --preset windows-x64-release -B cmake-build-windows-x64-release
  2. Build fxpo

    cmake --build cmake-build-windows-x64-release --config Release