そのために、Pythonスクリプトを使用します。オーバーラップした小さなタイルの大きなGeoTIFF画像を分割できます。高さマップの出力は、シングルランドスケープまたはレベルストリーミング(世界構成)のアンリアルエンジン4で使用する準備ができています。ここで詳細な説明を見つけることができます
import os
import gdal
import subprocess
source_path = 'C:/Users/unreal4/Downloads/AP_08049_FBD_F0980_RT1/heightmap.tif'
tiles_folder = 'C:/Users/unreal4/Downloads/AP_08049_FBD_F0980_RT1/tiles/'
tile_size_x = 2017
tile_size_y = 2017
tile_prefix = "tile"
tile_x = 0
tile_y = 0
ds = gdal.Open(source_path)
band = ds.GetRasterBand(1)
xsize = band.XSize - 1
ysize = band.YSize - 1
min_height = 384.5
max_height = 1105.8
for i in range(0, xsize, tile_size_x - 1):
for j in range(0, ysize, tile_size_y - 1):
format = "-ot UInt16 -of PNG -scale " + str(min_height) + " " + str(max_height) + " 0 65535"
cutting_frame = "-srcwin " + str(i) + " " + str(j) + " " + str(tile_size_x) + " " + str(tile_size_y)
output_path = tiles_folder + tile_prefix + "_x" + str(tile_x) + "_y" + str(tile_y) + ".png"
full_command = "gdal_translate " + format + " " + cutting_frame + " " + source_path + " " + output_path
os.system(full_command)
# version with subprocess module
# args = ['gdal_translate', '-ot', 'UInt16', '-of', 'PNG', '-scale', str(min_height), str(max_height), '0', '65535', '-srcwin', str(i), str(j), str(tile_size_x), str(tile_size_y), source_path , output_path]
# subprocess.check_call(args)
tile_y = tile_y + 1
tile_x = tile_x + 1
tile_y = 0