jetelain / armarealmap Goto Github PK
View Code? Open in Web Editor NEWTools to generate realistic Arma3 terrain from OpenStreeMap data in an highly automated process.
Tools to generate realistic Arma3 terrain from OpenStreeMap data in an highly automated process.
https://github.com/jetelain/gemini
A least until those PR are merged:
tgjones/gemini#359 : to have a functional editor list menu
tgjones/gemini#358 : to avoid a potentiel concurrency issue when mods are changed
tgjones/gemini#357 : to remove PersistedDocument2
tgjones/gemini#356 : to avoid full repaint where settings are applied
tgjones/gemini#355 : to avoid compilation warnings
tgjones/gemini#353 : to have a consistent french translation
When using an asset configuration in a map config, if a dependency is missing, an error will eventually occurs later.
A message should be displayed with a list of missing mods (based on the information declared by the asset configuration).
Only building=water_tower
is supported but is very rare, man_made=water_tower
is much more widely used.
It's also used as a single node, should consider to support it also, but with which size ? Should consider to create a special case.
Note : It's not always mapped with building
.
Hey there,
Nice to see that this project is still ongoing.
I am trying to generate a small map from east germany.
In the last step, generating the map with Mikos Tools. It aborts with that error.
Probably not a bug of this tool? If yes then I am really sorry. Found after some search nothing to much helpful
<building a land class list from unbinarised wrp contents>
.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.C.C.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.
***warning***a3\structures_f_enoch\industrial\houses\factory_02_f.p3d:indexed lod 7: Named selection 'door_1_trigger ' has trailing space(s)
warnings are errors
factory_02_f.p3d Error(s) detected
**** Begin 'PboProject' (1 items to process)
C:\Program Files (x86)\Mikero\DePboTools\bin\pboProject.exe -E="arma3" +N -W -P -M="C:\Users\username\Documents\GameRealisticMap\Arma3\Mods\@m_32upd449580s184" "P:\z\arm\addons\m_32upd449580s184"
\z\arm\addons\m_32upd449580s184\config.cpp
class CfgPatches
{
class arm_m_32upd449580s184
{
units[] = {};
weapons[] = {};
requiredVersion = 1;
requiredAddons[] = { "arm_centraleurope" };
};
};
class CfgWorldList
{
class m_32upd449580s184{};
};
class CfgWorlds
{
class arm_world_centraleurope;
class m_32upd449580s184: arm_world_centraleurope
...
...
** 'PboProject' done in 00:00:01.9346773
Exception: System.ApplicationException: PboProject exited with code 1.
at GameRealisticMap.Arma3.Arma3ToolsHelper.BuildWithMikeroPboProject(String pboPrefix, String targetMod, IProgressSystem progress)
at GameRealisticMap.Arma3.GameEngine.PboProject.BinarizeAndCreatePbo(Arma3MapConfig config, IReadOnlyCollection`1 usedModels, IReadOnlyCollection`1 usedRvmat)
at GameRealisticMap.Arma3.Arma3MapGenerator.GenerateMod(IProgressTask progress, Arma3MapConfig a3config)
at GameRealisticMap.Studio.Modules.MapConfigEditor.ViewModels.MapConfigEditorViewModel.DoGenerateMod(IProgressTaskUI task)
at GameRealisticMap.Studio.Modules.Reporting.ViewModels.ProgressToolViewModel.DoRunTask(String name, Func`2 run)
ERROR: PboProject exited with code 1.
Task FAILED after 540.8 seconds
ERROR: PboProject exited with code 1.
Task FAILED after 540.8 seconds
'Download from OSM' done in 00:03:15.0239434
Exception: System.Threading.Tasks.TaskCanceledException: The request was canceled due to the configured HttpClient.Timeout of 195 seconds elapsing.
---> System.TimeoutException: The operation was canceled.
---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
---> System.IO.IOException: Unable to read data from the transport connection: I/O operation terminated due to thread exit or application request.
---> System.Net.Sockets.SocketException (995): I/O operation terminated due to thread exit or application request.
The issue might be related:
Known erroneous cases:
Add the ability to use Eden Editor to edit a generated map (with an export from Eden + Edit operation in Studio UI).
Should include modifications to the heightmap done with deformer or similar mod.
Node with man_made=flagpole
https://wiki.openstreetmap.org/wiki/Tag:man_made%3Dflagpole
Attributes that can be useful:
country=US/DE/TZ/etc.
flag:type=national
flag:type=regional
flag:type=advertising
flag:type=governmental
Roads that are perpendicular to slope tends to have significant elevation grid artefacts. Should add a process to smooth the nearby terrain, but the effect should be limited to avoid "conflicts" between roads.
Similar effect could be done on rivers and streams.
Ideas to test:
Should add support for high voltage powerlines, and eventually for other powerlines.
To keep real topology, the wire model will have to be severely deformed, that will require a specific 3d model to reduce the visible effect.
Arma 3 specific : to avoid visual glitches, objects should not more than around 100m long. For wire that are more than 100m, multiple objects will be required.
I'm trying to use map studio to generate . I got some errors here:
** 'Roads.Merge' done in 8218 msec
**** Begin 'Roads.IgnoreSmall'
** 'Roads.IgnoreSmall' done in 0 msec
Exception: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'MaxDegreeOfParallelism')
at System.Threading.Tasks.ParallelOptions.set_MaxDegreeOfParallelism(Int32 value)
at SixLabors.ImageSharp.Advanced.ParallelRowIterator.IterateRowIntervals[T](Rectangle rectangle, ParallelExecutionSettings& parallelSettings, T& operation)
at SixLabors.ImageSharp.Drawing.Processing.Processors.Drawing.FillProcessor1.OnFrameApply(ImageFrame
1 source)
at SixLabors.ImageSharp.Processing.Processors.ImageProcessor1.SixLabors.ImageSharp.Processing.Processors.IImageProcessor<TPixel>.Execute() at SixLabors.ImageSharp.Processing.DefaultImageProcessorContext
1.ApplyProcessor(IImageProcessor processor, Rectangle rectangle)
at SixLabors.ImageSharp.Processing.DefaultImageProcessorContext1.ApplyProcessor(IImageProcessor processor) at SixLabors.ImageSharp.Drawing.Processing.FillExtensions.Fill(IImageProcessingContext source, DrawingOptions options, IBrush brush) at SixLabors.ImageSharp.Drawing.Processing.FillExtensions.Fill(IImageProcessingContext source, IBrush brush) at GameRealisticMap.Arma3.Imagery.IdMapRenderBase
1.b__4_0(IImageProcessingContext d) in \TerrainTool\ArmaRealMap\GameRealisticMap.Arma3\Imagery\IdMapRenderBase.cs:line 39
at SixLabors.ImageSharp.Processing.ProcessingExtensions.Mutate[TPixel](Image1 source, Configuration configuration, Action
1 operation)
at SixLabors.ImageSharp.Processing.ProcessingExtensions.Mutate[TPixel](Image1 source, Action
1 operation)
at GameRealisticMap.Arma3.Imagery.IdMapRenderBase`1.Render(IArma3MapConfig config, IContext context) in \TerrainTool\ArmaRealMap\GameRealisticMap.Arma3\Imagery\IdMapRenderBase.cs:line 39
at GameRealisticMap.Arma3.Imagery.ImagerySource.CreateIdMap() in \TerrainTool\ArmaRealMap\GameRealisticMap.Arma3\Imagery\ImagerySource.cs:line 26
at GameRealisticMap.Arma3.GameEngine.ImageryCompiler.Compile(IArma3MapConfig config, IImagerySource source) in \TerrainTool\ArmaRealMap\GameRealisticMap.Arma3\GameEngine\ImageryCompiler.cs:line 53
at GameRealisticMap.Arma3.Arma3MapGenerator.GenerateWrp(IProgressTask progress, IArma3MapConfig config, IContext context, ITerrainArea area, Arma3LayerGeneratorCatalog generators) in
TerrainTool\ArmaRealMap\GameRealisticMap.Arma3\Arma3MapGenerator.cs:line 71
at GameRealisticMap.Arma3.Arma3MapGenerator.GenerateWrp(IProgressTask progress, Arma3MapConfig a3config) in \TerrainTool\ArmaRealMap\GameRealisticMap.Arma3\Arma3MapGenerator.cs:line 40
at GameRealisticMap.Studio.Modules.MapConfigEditor.ViewModels.MapConfigEditorViewModel.DoGenerateMap(IProgressTool progressTool) in \TerrainTool\ArmaRealMap\GameRealisticMap.Studio\Modules\MapConfigEditor\ViewModels\MapConfigEditorViewModel.cs:line 303
ERROR: Specified argument was out of the range of valid values. (Parameter 'MaxDegreeOfParallelism')
Task FAILED after 17.4 seconds
How do i fix this? It happens when i click generate mod.
Advanced parameters needs validation to avoid non-understandable errors later in the generation process.
Some users had error "CfgConvert exited with code 1" with a worldname that did not respect naming constraints.
Middle part should be repeated as many times as required to have a complete bridge
If an OSM object has an id
attribute, an exception Attribute id already exists
will throws.
Error is in DefaultFeatureInterpreter2, forked from https://github.com/OsmSharp/core/blob/main/src/OsmSharp.Geo/DefaultFeatureInterpreter.cs
Should also open an issue on https://github.com/OsmSharp/ to fix upstream
Hedge current configuration is only suitable for mono-specie trimmed hedge. Should add a "natural" mode with:
The same algorithm could be used for tree rows
Hi,
I try the new code you updated yesterday. I got som errors as following.
2.MoveNext() at GameRealisticMap.Arma3.GameEngine.WrpCompiler.Write(IArma3MapConfig config, ElevationGrid elevationGrid, ImageryTiler terrainTiler, IEnumerable
1 objects) in D:\Arma\ArmaRealMap\GameRealisticMap.Arma3\GameEngine\WrpCompiler.cs:line 30In ProjectDrive
, the method WritePngImage
might be called by different threads, but the Add
on imageToPaaPending
is not thread-safe. Using a lock
should be good enough.
What is the differense between main and general-purpose branch?
Should split into smaller images as planned.
The way the fake sat map is generated, tends to create a grid effect on final sat map.
It's likely cause the way the fake sat texture is generated :
Two options to test:
If the filling algorithm has not been able to place any objects after some time, it should give up faster.
It will reduce the impact of an incorrect density.
User interface let set default objects, but they are not used by generator. It's the last feature missing compared to the legacy ArmaRealMap tool.
{"Resolution":1,"FakeSatBlend":0.5,"GridCellSize":5,"GridSize":8192,"Center":"41.950651568348626, 9.175354666423724","AssetConfigFile":"builtin:CentralEurope.grma3a"}
2023-08-20 15:57:30.2138|NetTopologySuite.Geometries.TopologyException: found non-noded intersection between LINESTRING(37019.59765625 8042.65283203125, 37016.84375 8033.7060546875) and LINESTRING(37016.84375 8033.703125, 37017.26953125 8037.02978515625) [ (37016.84439186801, 8033.708139961899, NaN) ]
at NetTopologySuite.Operation.Overlay.Snap.SnapIfNeededOverlayOp.GetResultGeometry(SpatialFunction opCode)
at GameRealisticMap.Arma3.ManMade.BuildingGenerator.<>c__DisplayClass10_1.<RealBoxAdjustedToRoad>b__6(TerrainPolygon p)
at System.Linq.Enumerable.Sum[TSource](IEnumerable`1 source, Func`2 selector)
at System.Linq.Enumerable.Sum[TSource](IEnumerable`1 source, Func`2 selector)
at GameRealisticMap.Arma3.ManMade.BuildingGenerator.<>c__DisplayClass10_0.<RealBoxAdjustedToRoad>b__3(BoundingBox b)
at System.Linq.Enumerable.SelectArrayIterator`2.ToList()
at GameRealisticMap.Arma3.ManMade.BuildingGenerator.RealBoxAdjustedToRoad(List`1 roads, Vector2 size, BoundingBox box)
at GameRealisticMap.Arma3.ManMade.BuildingGenerator.TryPlaceBuilding(List`1 buildings, List`1 roads, Building building, Single min, Single max)
at GameRealisticMap.Arma3.ManMade.BuildingGenerator.Generate(IArma3MapConfig config, IContext context)
at GameRealisticMap.Arma3.Arma3MapGenerator.<>c__DisplayClass11_0.<GetObjects>b__0(ITerrainBuilderLayerGenerator tb)
at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at GameRealisticMap.Arma3.GameEngine.WrpCompiler.Write(IArma3MapConfig config, ElevationGrid elevationGrid, ImageryTiler terrainTiler, IEnumerable`1 objects)
at GameRealisticMap.Arma3.Arma3MapGenerator.GenerateWrp(IProgressTask progress, Arma3MapConfig config, IContext context, ITerrainArea area, Arma3LayerGeneratorCatalog generators)
at GameRealisticMap.Arma3.Arma3MapGenerator.GenerateWrp(IProgressTask progress, Arma3MapConfig a3config)
at GameRealisticMap.Arma3.Arma3MapGenerator.GenerateMod(IProgressTask progress, Arma3MapConfig a3config)
at GameRealisticMap.Studio.Modules.MapConfigEditor.ViewModels.MapConfigEditorViewModel.DoGenerateMod(IProgressTaskUI task)
at GameRealisticMap.Studio.Modules.Reporting.ViewModels.ProgressToolViewModel.DoRunTask(String name, Func`2 run)
The NaN is not normal, and likely cause by an earlier error.
Should use Clipper for intersection instead of NetTopologySuite, but this would required to create tests.
Hi,
I want to know how to compute the materials index when writing wrp file. I see in the code ,but do not understand. And the landrange why be 1024 when terrain size is larger than 30km.And what is the relationship of sat image tile(eg size is 1024 or 2048etc.) and land grid.
An exception occurred while trying to create an instance of type 'GameRealisticMap.Studio.Modules.Reporting.ViewModels.ProgressToolViewModel'.
Happens every time I try to use the "Generate Mod" button, no matter what is selected for PBO generation or where the selection box is on the map.
OSM Documentation states:
the way runs through the tree trunks' bases, starts at the trunk of the first tree in the tree row, and ends at the trunk of the last tree in the tree row.
This is different of natural hedges, where the path starts and ends with the edge of the bushes.
As reported by governmnent and Lakarak on Discord
Airstrips from OSM should be processed to
Arma 3 specific:
when generating maps from the regions of northern Europe/Russia, the error "sequence contains no elements" occurs with any presets/settings. why is that? is it related to the online map?
As the title says the discord link is invalid and I wanna join the Disc :(
Hi,
Is it possible to create a very large map using ArmaRealMap. Such as terrain grid size 8192 and terrain grid cell size 50 to about 400kmx400km.
Best regards
Needs investigation, a user has reached 60 GB memory usage browsing assets, xaml map view and generating maps
Hello, I have a question. Could you please release an .exe build of this tool with each github release? It would be of great help to people who don't use microsoft store, but also for those that would like to use a specific version of the app without recompiling the project themselves, since MS store doesn't allow for installing a specific app version.
By the way your tool is amazing, thank you very much for sharing it 😊
To improve rendering or walls and fences, it could be useful to define corner object and/or end object like a column.
when generating a Island Terrain the water level of the ocean around it is less than 5 centimeters
This elements are very rare in OSM data, so they should be fully generated from roads and urban areas data
Current farmland are wheat only, should add:
Are there more docs to this project, I love the idea and wanted to test a bit but I cannot get it to work because the docs are not really extensive. If there is something in another place I would be happy to now where!
Mapping exemple : https://www.openstreetmap.org/#map=18/49.11847/4.51722
Area :
closed way with landuse=cemetery
https://wiki.openstreetmap.org/wiki/Tag:landuse%3Dcemetery
Variants that can useful:
cemetery=war_cemetery
https://wiki.openstreetmap.org/wiki/Tag:cemetery%3Dwar_cemeteryEach tomb :
node or way with cemetery=grave
https://wiki.openstreetmap.org/wiki/Tag:cemetery%3Dgrave
Error when trying to open an existing asset configuration. This is a blocking issue, must fix before release.
Since #65 island and coastline is supported, Lighthouse support could be useful
man_made=lighthouse
https://wiki.openstreetmap.org/wiki/Tag:man_made%3Dlighthouse
building=lighthouse
https://wiki.openstreetmap.org/wiki/Tag:building%3Dlighthouse
Like watertower #63, it's most of time a single node
Corn fields are difficult to identity, as they are very rare in mapping (0.2% of farmland).
Options:
How to detect:
From an asset configuration it should be possible to generate a preview map showing all assets with some reference elements (to ensure everything is OK).
Experienced terrain creator will prefer terrain builder to adjust terrain. Internal representation is close, export should be easy to add
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.