Flashback bygger pepparkakshus!
2024-11-12, 19:48
  #1
Medlem
Jag har laddat ner demodata från Lantmäteriet, närmare bestämt en markhöjdmodell i gridformat med 1 meters upplösning. Jag arbetar med filen 633_58_5025_2011.tif, eftersom den innehåller höjddata (elevation data) som jag vill använda för att modellera terräng i Unreal Engine. Jag har även en densitetsfil (633_58_5025_density_2011.tif), men den tänkte jag titta på senare.

Länk:Markhöjdmodell Nedladdning, grid 1+
Exampel fil: Skogsområde Emån (GeoTIFF)

Problemet:
Programmet (Unreal Engine) kräver höjddata i .r16-format (16-bitars) eller densitetsdata i .r8-format (8-bitars). När jag försöker importera höjdfilen får jag felmeddelandet "The file bit depth unknown bit depth use .r16 (height) or .r8 (weight)". Jag har testat att konvertera GeoTIFF-filen till .raw och .png-format, men Unreal Engine kan inte läsa dessa korrekt. Jag misstänker att jag behöver sätta ett NoData-värde till 0 och skala värdena, eftersom vissa punkter verkar ha extrema höjder.

Verktyg och kommandon jag har använt:

Jag använder OSGeo4W och har provat följande kommandon:
Kod:
gdal_translate -of ENVI -ot UInt16 633_58_5025_2011.tif output_file.raw
Input file size is 2500, 2500
Warning 1: for band 1, nodata value has been clamped to 0, the original value being out of range.
0...10...20...30...40...50...60...70...80...90...100 - done.
och
Kod:
gdal_translate -of ENVI -ot UInt16 -a_nodata 0 633_58_5025_2011.tif output_file1.raw
Input file size is 2500, 2500
0...10...20...30...40...50...60...70...80...90...100 - done.

Dessutom har jag testat i QGIS och SAGA GIS, men jag lyckas bara få ut PNG-filer därifrån, vilket Unreal Engine visserligen kan läsa, men det verkar inte fungera som förväntat.

Frågor:
  • Är det någon som har erfarenhet av att konvertera höjddata från GeoTIFF till .r16-format för användning i Unreal Engine?
  • Finns det något jag missar i konverteringsprocessen som gör att Unreal inte känner igen bitdjupet korrekt?
  • Behöver jag justera NoData-värdet och skalan för att få till en bättre terrängmodell? Hur gör man det bäst i GDAL eller något annat verktyg?

Något annat jag kan ha missat? Jag har dålig koll GIS-verktyg vill helst bara hitta en enkel steg-för-steg-anvisning för att skapa en råfil (raw) från min GeoTIFF just nu.
Citera
2024-11-13, 21:23
  #2
Medlem
Har lyckats lösa problemet, eller åtminstone kommit närmare ett användbart resultat. Men jag tar fortfarande gärna emot tips om någon har erfarenhet av att göra samma sak eller har förslag på förbättringar för importen av höjddata i Unreal Engine.

Här är vad jag gjorde för att förbättra noggrannheten vid importen:

1. Analyserade Höjddata:

Jag använde gdalinfo på den ursprungliga GeoTIFF-filen för att identifiera intervallet för höjddata:[/

Kod:
gdalinfo 633_58_5025_2011.tif

Detta visade ett intervall med Min=13.690 och Max=31.930 samt ett NoData Value=-9999. Genom att känna till dessa värden kunde jag skala data korrekt för att passa det intervall som Unreal förväntar sig.

2. Uppdaterade Konverteringskommandot med Skalning:
Jag modifierade kommandot gdal_translate för att skala indata korrekt till Unreal Engine's 16-bitars höjdkartsintervall (0 till 65535):

Kod:
gdal_translate -of ENVI -ot UInt16 -scale 13.69 31.93 1 65535 -a_nodata 1 633_58_5025_2011.tif output_file.r16

Detta gav en närmare representation i Unreal, men jag märkte att de högsta punkterna fortfarande var för höga.

3. Justering av Maxvärdet för Bättre Noggrannhet:
Genom att justera maxvärdet från 31.93 till 64 blev landskapet mer korrekt i demokartan, så jag testade följande:

Kod:
gdal_translate -of ENVI -ot UInt16 -scale 13.69 64.0 1 65535 -a_nodata 1 633_58_5025_2011.tif output_file.r16

Resultatet blev mycket närmare det jag behövde, även om jag eventuellt fortfarande behöver finjustera skalningen för att få det helt perfekt. Sammantaget har den här metoden gett mig ett användbart landskap i Unreal Engine.

Importera Höjdkarta i UE 5.5
Efter det har jag skapade ett nytt projekt och aktiverade några plugins i Unreal Engine (Landmass och Landscape Patch) för att kunna arbeta med terräng- och höjddata.

Sedan valt Landscape Mode på meny för att importerade höjdkartsfilen (output_file.r16) och klickade sedan på Import.

Efter det så kunde jag landskapet runt Emån i Småland återgivet i mitt spelet.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in