BMP (bitmapp) dataformat. TESAnnwyn - Arbeta med en höjdkarta Lägg till MAP-filer till Photo Converter

18.01.2017 18.01.2017

Den tredje delen av lektionen om att skapa din egen karta för ARMA 3. I den här delen kommer vi att titta på hur man skapar en karta över ett verkligt område från Google kartor och vilka program som ska användas för detta.

Denna metod är mycket komplex, den kräver mycket tid och färdigheter i att arbeta med grafiska redaktörer, men resultatet är värt det. Naturligtvis kommer vi inte i den här lektionen att lära dig hur du arbetar med Photoshop, och exemplet som ges här är en karta gjord i hast.

  • Hur du skapar din egen karta för ARMA 3. Del 3

Nödvändiga verktyg

Du måste ladda ner flera verktyg:

  • GIMP (https://www.gimp.org/) \\ Du kan använda vilken graf som helst. redaktör.
  • Google Earth Pro\\ Det är PRO-versionen, det är gratis
  • L3DT Pro \\ Det är PRO-versionen, den är betald, men vi berättar hur du får den gratis

L3DT Pro är en nödvändig sak för en karttillverkare, i vårt fall behövs den för en höjdkarta. För att ladda ner något PRO version följ denna länk. På den här sidan kan du köpa eller få en provversion av L3DT i 90 dagar (det räcker). För att aktivera testversionen, klicka på registrera dig för en gratis 90-dagars provperiod.

Vi fyller i alla fält och anger en giltig brevlåda, aktiveringsnycklar och en nedladdningslänk kommer att skickas dit. När du först startar programmet anger du alla nycklar som du fick.

Skapa en riktig höjdkarta

Höjdkartan är ett av de viktigaste problemen i denna fråga. Om du gör riktig karta höjder, var beredd att spendera mycket tid.

I vårt fall måste du först göra en höjdkarta, senare, när du gör din valda terräng, kommer du att förstå varför. Till lektionen i Google Maps valde vi Block Island (New Shoreham) som ligger i USA. Varför USA och inte vårt hemland Ryssland? Tyvärr visar Google Maps USA och Europa tydligare.

Nu måste du ladda ner höjdkartan över denna ö:

  1. Följ länken Open Topography
  2. Hitta vår ö
  3. Klicka på knappen Välj en region
  4. Ringa vår ö

Nedan, avmarkera Generera hillshade-bilder från DEM:er och ange valfri postlåda. Tryck sedan på SUMBIT-knappen

Nu kan vi ladda ner höjdkartan i tag.gz-format

Allt som återstår är att göra ".bmp"-formatet från "tag.gz". L3DT Pro hjälper oss med detta, men packa först upp tag.gz i tif. Även winrar duger, packa upp texturen och kör L3DT Pro.

I L3DT Pro går du till Arkiv >> Importera >> Höjdfil >> tif-textur

Den resulterande höjdkartan är mycket liten, för att öka den i L3DT Pro gå till: Operations >> Heightfiled >> Ändra storlek Heightfiled.

I fönstret som visas ställer du in den storlek du behöver med Bredd. I vårt fall ställer vi in ​​Bredd: 8192 Höjd: 6168

Storleken är inställd, spara höjdkartan i bmp-format. För att göra detta, i L3DT Pro, klicka på texturen Högerklicka musen och välj Exportera. I Exporta-fönstret väljer du BMP-formatet och sökvägen med namnet.

Vi skapar en högkvalitativ SAT för ön

För att skapa en högkvalitativ SAT behöver vi Google Earth Pro. Metoden som kommer att beskrivas i lektionen gör att du kan skapa en högkvalitativ textur, men du kan göra kvaliteten ännu högre eller lägre.

Vår sida kommer att vara 8192 x 8192 stor och väga cirka 200MB. Google Earth Pro låter dig ta en bild i 4K-kvalitet med storleken 4800 x 2757. Därför behöver du ta 6 bilder och dela upp ön i 6 delar. Då kommer dessa 6 delar att samlas till en tung textur.

Vi lanserar programmet Google Earth Pro och hittar vår ö i det. Vi delar upp ön i 6 konventionella delar: 2 horisontellt och 3 vertikalt 2757

Vi tar ett foto för varje del. För att göra detta zoomar vi in ​​på en ungefärlig del av vår ö och tar en bild. I Google Earth Pro klickar du på knappen "Spara bild", avmarkerar alla alternativ, ställer in upplösningen till Maximum och sparar bilden i formatet ".jpg".

Vi gör likadant med resten av ön. Resultatet ska bli en ö med 6 bilder. Till exempel, i Paint slår vi försiktigt samman vår ö. Som ett resultat ställer vi in ​​texturstorleken till 8192 x 8192 och sparar den i BMP-format.

På det här svåra sättet är vår satka redo!

Att göra en mask för ön

För att skapa i vår lektion kommer vi att använda GIMP. Som ett resultat kommer din mask att skilja sig från exemplet, men du kommer att förstå kärnan i dess skapelse. Det är också uppdelat i mer eller mindre detaljerade masker och beror på din omfattning av projektet. Vår mask kommer bara att ha ett fåtal färger.

Vi slänger in vår färdiga Satka och mapLegend.png i GIMP 2 gånger

Gå till FÄRG >> Posterization. Vi ändrar värdet - ju högre värde, desto fler färger och desto mer exakt blir masken.

Ställ in värdet för serialisering, till exempel 4. Nu kan du ersätta eller ta bort färger med de nödvändiga, till exempel genom mapLegend. För att göra detta, i avsnittet "Val" >> "Efter färg", välj de nödvändiga färgerna och fyll i de nödvändiga.

Jag hoppas att du förstår poängen. Exportera resultatet till BMP-format.

Skapa en karta i Terrain Builder

*Om höjdkartan. Till exempel måste du anpassa höjdkartan till satka i samma GIMP. Tyvärr kan vi inte beskriva denna process, för detta måste du lära dig lite hur man arbetar i en grafikredigerare.

Låt oss säga att din SATKA, HÖJDKARTA och MASK är klara, låt oss skapa en karta med dem i Terrain Builder! Du kan också ladda ner vårt exempel [Ya.DISK]

Hur man skapar en karta i Terrain Builder beskrivs i e. Parametrarna för kartan kommer att beskrivas här.

Texturalternativ:

I dagens lektion kommer vi att titta på det första filformatet på vår väg. Olika filformat är utformade för att lagra olika information. Varje format anger ett sätt att organisera data i en fil.

Vi kommer att lära känna många olika filformat: bilder, 3D-modeller, ljudfiler, videofiler. Låt oss börja med ett av de enklaste grafiska formaten - BMP.

BMP - bitmapp - bitmapp. Begreppet "kartläggning" är hämtat från matematiken. Inom matematiken ligger en mappning väldigt nära begreppet funktion. För enkelhetens skull, betrakta ordet bitmapp som en bild (även om det inte är det).

BMP-filinformation

Varje bitmappsfil har en rubrik på 14 byte. Fält för denna rubrik:

2 byte. BM-sträng (på Windows).
4 bytes. Filstorlek i byte.

2 byte. Reserverat fält. Måste initieras till noll.
4 bytes. Adressen från vilken själva bilden börjar. Eller med andra ord - en förskjutning till början av bilden.

Låt oss skapa en bild på 100x100 pixlar. Varje pixel tar upp 32 bitar. Filhuvudet kommer att se ut så här:

B.M.
14+40+100*100*4
0
0
14+40

Viktig anmärkning: dessa nummer lagras faktiskt som en sekvens av byte. Jag hoppas att detta är tydligt. Här (och i nästa exempel) har jag ordnat dem i en kolumn för att underlätta uppfattningen.

Låt oss ta itu med det andra fältet. 14 - filhuvudstorlek. 40 är storleken på bildtiteln (mer om det nedan), 100*100 är antalet pixlar. Och dessutom, eftersom vi kom överens om att varje pixel kommer att uppta 32 bitar (4 byte), måste vi multiplicera antalet pixlar med fyra.

Sista fältet: Själva bilden börjar omedelbart efter filhuvudet (14 byte) och bildhuvudet (40 byte).

BMP-bildinformation (bildhuvud)

Det finns flera versioner av BMP. Du kan bestämma versionen efter storleken på bildtiteln. Vi kommer att använda Windows V3-versionen, som tar upp 40 byte. Andra versioner tar 12, 64, 108, 124 byte.

WinAPI använder BITMAPINFOHEADER-strukturen för att lagra bmp-versionen av Windows V3.

Windows V3-huvudfält:

4 bytes. Rubrikstorlek. Alltid inställd på 40 byte.
4 bytes. Bildens bredd i pixlar.
4 bytes. Bildens höjd i pixlar.
2 byte. Detta fält innehåller alltid en.
2 byte. Färgdjup är antalet bitar i en pixel.
4 bytes. Kompressionsmetod.
4 bytes. Bildstorlek. Storleken på själva bilden anges här – utan hänsyn till storleken på rubrikerna.
4 bytes. Horisontell upplösning i pixlar per meter (antalet pixlar i en meter).
4 bytes. Vertikal upplösning i pixlar per meter (antalet pixlar i en meter).
4 bytes. Antal färger i paletten.
4 bytes. Antalet viktiga färger i paletten.

Låt oss nu se hur bildrubriken kommer att se ut i vårt fall:

40
100
100
1
32
0
100*100*4
2795
2795
0
0

För komprimeringsmetoden valde vi 0 - ingen komprimering. Andra värden är möjliga. Bland de intressanta: BI_JPEG (värde - 4) - komprimering som används i jpeg-bilder och BI_PNG (värde - 5) - komprimering som används i png-bilder.

Vi ställer in den horisontella och vertikala upplösningen till 2795. I de flesta grafikredigerare, när du skapar en bild, är upplösningen inställd på 71 pixlar per tum (ppi - pixel per tum)). Så, 71ppi är 2795 pixlar per meter. Upplösning används för att ge bilden fysisk längd (till exempel för utskrift till en skrivare).

Efter rubrikerna finns en färgpalett. Om den inte finns där börjar bilden direkt efter rubrikerna. Vi kommer inte att överväga bilder med paletter för tillfället.

BMP-bilddata

En bild består av pixlar. Pixelformatet bestäms av färgdjupet (se ovan). I vårt exempel använde vi 32 bitar per pixel. 32-bitars färg består vanligtvis av fyra kanaler: alfa (transparens), röd, grön, blå: ARGB (alfa, röd, grön, blå). Ibland används inte alfakanalen, i vilket fall bilden fortfarande kan uppta 32 bitar, de uppmärksammar helt enkelt inte värdena för en kanal vid beräkning. I detta fall skrivs kanalnamnen enligt följande: XRGB.

Varje kanal upptar 8 bitar (1 byte) och kan ta 256 värden: från noll till 255 (0x00 till 0xff).

I bmp lagras bilden rad för rad nerifrån och upp, d.v.s. De nedersta raderna skrivs först, sedan de översta. Se till detta: ladda en av bilderna från den första övningen och spara bara halva raderna i den bilden till en annan fil.

Vid 32-bitars färgdjup skrivs kanaler i bmp enligt följande: BGRA. I denna ordning: blå, grön, röd, alfa.

Storleken på dataraden i bmp-bilden måste vara en multipel av fyra (i byte). Om så inte är fallet är strängen utfylld med nollor. Detta händer om 1,2,4,8,16,24 bitar per kanal används. Vi har till exempel en bild som är 3 pixlar bred och vi använder 16-bitars färg. Linjebredd: 16*3 = 48 (6 byte). Men längden på raden måste vara en multipel av fyra, så ytterligare två byte läggs till och längden på raden i detta exempel blir åtta byte. Även om de två sista byten av varje rad inte kommer att lagras användbar information. Det är nödvändigt att ta hänsyn till villkoret att radstorleken är en multipel av fyra när man arbetar med icke-32-bitars bilder.

Låt oss nu fortsätta med vårt exempel och använda koden för att skapa en bild. Varje pixel initieras med en slumpmässig färg:

Std::ofstream os("temp.bmp", std::ios::binär); osignerad teckensignatur = ("B", "M"); osignerad int filstorlek = 14 + 40 + 100*100*4; osignerad int reserverad = 0; osignerad int offset = 14 + 40; osignerad int headerSize = 40; osignerade int dimensions = ( 100, 100 ); osignerade korta färgPlanes = 1; osignerad kort bpp = 32; osignerad int-komprimering = 0; osignerad int imgSize = 100*100*4; osignerad int resolution = (2795, 2795); osignerad int pltColors = 0; osignerad int impColors = 0; os.write(reinterpret_cast (signatur), sizeof(signatur)); os.write(reinterpret_cast (&filstorlek), sizeof(filstorlek)); os.write(reinterpret_cast (&reserved), sizeof(reserved)); os.write(reinterpret_cast (&offset), sizeof(offset)); os.write(reinterpret_cast (&headerSize), sizeof(headerSize)); os.write(reinterpret_cast (dimensioner), sizeof(dimensions)); os.write(reinterpret_cast (&colorPlanes), sizeof(colorPlanes)); os.write(reinterpret_cast (&bpp), sizeof(bpp)); os.write(reinterpret_cast (&compression), sizeof(compression)); os.write(reinterpret_cast (&imgSize), sizeof(imgSize)); os.write(reinterpret_cast (upplösning), storlek på (upplösning)); os.write(reinterpret_cast (&pltColors), sizeof(pltColors)); os.write(reinterpret_cast (&impColors), sizeof(impColors)); osignerad char x,r,g,b; för (int i=0; i< dimensions; ++i) { for (int j=0; j < dimensions; ++j) { x = 0; r = rand() % 256; g = rand() % 256; b = rand() % 256; os.write(reinterpret_cast(&b),storlek på(b)); os.write(reinterpret_cast (&g),storlek(g)); os.write(reinterpret_cast (&r),storlek(r)); os.write(reinterpret_cast (&x),storlek på(x)); ) ) os.close();

Som ett resultat av exekvering av den här koden kommer en temp.bmp-fil att skapas i mappen med ditt projekt (om du körde programmet via debuggern (F5)) eller i Debug-mappen i lösningen (om du körde den körbara filen .exe), som kan öppnas i vilken bildvisare som helst. Bilden består av färgade prickar.

Så, Creation Kit kom ut, och trots den extra utvecklingstiden och löften från Bethesda visade sig redaktören uppriktigt sagt vara ofärdig.
En stor brist bland hela listan var den trasiga funktionaliteten för att arbeta med en höjdkarta, som kraschar när du försöker starta den.

Skapa en höjdkarta.

Vad är en höjdkarta?
En höjdkarta är en rå 2D-bild som lagrar terrängdata. Svarta områden på höjdkartan är lågland respektive, ju vitare område desto högre är det.
Till exempel kan höjdkartor se ut så här:

Du kan skapa en höjdkarta med hjälp av photoshop eller använda speciella program som t.ex TerraGen, Geokontroll 2 etc.

Låt oss titta på ett exempel på hur du skapar en höjdkarta:

  1. Låt oss starta Photoshop och skapa en ny fil i storleken 1024x1024.
  1. Gå sedan till Bild -> Läge -> markera rutan bredvid Gråskala.
  1. Gör sedan ett lager av moln: Filter (Filter)> Render (Render)> Moln (moln).
Du borde sluta med något sånt här:
  1. Redo! Låt oss nu spara den resulterande kartan i råformat med 8 bitar.

Uppmärksamhet! Bilden måste ha en storlek på 1024x1024 och 8 bitar för att korrekt visa höjdkartan i spelet.

Låt oss rätta till situationen.

  1. När du har laddat ner och packat upp arkivet, öppna mappen "01 MP GUI" och kör installationsfilen setup.exe därifrån. När installationsprogrammet ber dig att installera inställningarna i spelmappen, godkänn.
Installera mallar i dessa spelkataloger - kryssrutan måste vara markerad.
  1. Öppna mappen "02 Update tesannwyn" från arkivet och kopiera dess innehåll, ersätt alla filer i katalogen Skyrim/Data/ini/mpgui.
  1. Placera innehållet i mappen "03 TESAnnwyn" i mappen Skyrim/Data, detta kommer att hjälpa programmet att omedelbart konfigurera sig för Skyrim vid uppstart.
  1. Gå nu till Skyrim/Data/ini/mpgui och kör tesannwyn.

Vi går omedelbart till den sista fliken och ser:

Första fältet- välja en höjdkartfil.
Andra fältet- att välja ett namn för din värld och ett unikt ID.
Tredje fältet- val av två möjliga höjdkarttillägg - Råformat och bmp-format.
Fjärde fältet- välja storlek på höjdkartan. Endast för råformat.
Femte fältet: Skalning- val av höjdskalning per enhet.
Standard är ett. Jag rekommenderar att du ställer in värdet på 3

BMP eller Bitmap är ett rastergrafikformat som är kompatibelt med ett brett utbud av programvara för visning och bearbetning av bilder. BMP-filer lagrar alla pixlar i en bild utan att använda någon komprimering. Formatet är värdefullt för dess förmåga att bevara orörd bildkvalitet. Men på grund av avsaknaden av en komprimeringsmekanism är BMP-filer ofta enorma i storlek, vilket gör dem svåra att lagra och överföra.

Hur konverterar man MAP till BMP?

Det enklaste sättet är att ladda ner bra program konverteringar, till exempel Photo Converter. Det fungerar snabbt och effektivt, så att du kan konvertera valfritt antal MAP-filer på en gång. Du kommer snabbt att kunna inse att Photo Converter kan spara mycket tid som du kommer att spendera när du arbetar manuellt.

Ladda ner och installera Photo Converter

Fotokonverteraren är enkel att ladda ner, installera och använda - du behöver inte vara en datorexpert för att förstå hur den fungerar.

Lägg till MAP-filer till Photo Converter

Starta Photo Converter och ladda .map-filerna du vill konvertera till .bmp

Du kan välja MAP-filer via menyn Filer → Lägg till filer eller överför dem helt enkelt till Photo Converter-fönstret.

Välj en plats för att spara de mottagna BMP-filerna


Välj BMP som sparformat

För att välja BMP som sparformat, klicka på ikonen BMP längst ner på skärmen, eller knappen + för att lägga till möjligheten att skriva till detta format.


Nu är det bara att trycka på knappen Start och konverteringen kommer att börja omedelbart, och BMP-filerna kommer att sparas på den angivna platsen med nödvändiga parametrar och effekter.

Prova den kostnadsfria demon

Videoinstruktion

Kommandoradsgränssnitt

Professionella användare kan konvertera MAP till BMP med hjälp av kommandorad i manuellt eller automatiskt läge. För ytterligare råd om hur du använder cmd-gränssnittet, vänligen kontakta



Burkozel