Cant you just take a flattened globe map and 3d model the continents and add height maps to them ? This would take a considerable amount of time however .It also depends on the amount of detail you are after .This is a very difficult project in my opinion but im terrible lol . i hope you get some answers as i would like to see a good way of doing this
Off the top of my head, I would guess to make a bunch of boxes that have some width and height, and then place them together to make a Riemann’s sum type deal. Then, I would put all those boxes in a parent object that is called the nation that you want.
so one approach for anykind of map is to use a “clickmap”.
basically an overlay texture. with solid fill color for each region you want to be clickable.
When the map is clicked, look up the pixel in the clickmap.
The rgb value maps to the lookup table so you know what area was clicked.
This lets you easily know when complex regions or areas are clicked.
I believe the borders in Europe Universalis 4 are spline based, you you might want to look into that. Also there is this svg importer that you might find useful: SVG Importer Plugin in Code Plugins - UE Marketplace
Sorry to Necro the thread, but could you in theory just turn the alpha down on the Overlay texture so you could see the real Earth color and still do your solution?
Basically I only ever end up with RGBA8 values that differ from the HDR color value the material gets and I can’t match the colors, so no lookup possible.
@LordStuff
So one approach is to simply avoid having to grab any actual pixel from the screen at all…
Instead, use the clicked coordinates to look up a value in a separate byte buffer - a clickmap or “map proxy”.
The actual displayed map could be much richer and have labels and such. Instead, this separate proxy buffer is created from just solid colors. You can create this, at design time for example, as a RAW texture in photoshop for example, then load it in your game into a simple byte buffer.
So when the user click on the map in the game at runtime, determine what coordinates on the map are desired, use those coordinate to find an index into the proxy.