0
\$\begingroup\$

When I've created minimaps for smaller to medium levels before I would use a large texture mapped to a plane for the minimap and world map. The minimap/world map camera would then view this texture from a top down view.

For larger, open world style environments though I'm facing a performance vs fidelity issue. For example, a large environment requires a large texture to fit everything in, but at the same time the texture also needs to be a high enough resolution for when the player decides to zoom in onto a specific point in the map. I can make the map high resolution with enough detail up close but this creates quite a large texture size. Or I can make a lower res map which is more efficient but it becomes blurry/pixelated when zooming in.

Is this just a balance that I have to play with, or is there a better way to handle this? For example, creating a simple 3d mesh whose shape would act as the map. Or instead of using a texture using a vector graphic. How is this usually done?

\$\endgroup\$
2
\$\begingroup\$

You hit on the main two options.

  1. Use a texture, and make the appropriate choices concerning trade-offs between texture size and resolution. Remember you can tile the texture so only nearby image data is loaded, as well.

  2. Render the map as simplified geometry approximating 2D vector art. The balancing act you tend to run into with this approach is geometry management (particularly for curve resolution), although you can alleviate that with more modern rendering techniques designed at representing splines and other curves, in some cases.

\$\endgroup\$
  • \$\begingroup\$ For (1) by tiling the texture you mean cutting up the world map texture into sections and then mapping each texture section onto a separate quad mesh? So instead of having one huge quad for the entire map there are several smaller ones most of which get frustum culled? \$\endgroup\$ – FrontEnd Mar 9 '17 at 5:46
  • 1
    \$\begingroup\$ Yup, or various variations on that theme such as what Ivictorino posted. \$\endgroup\$ – Josh Mar 9 '17 at 14:34
1
\$\begingroup\$

For Night Call I had to display 105 squared kilometers in a mini map.

I chose to use a tiled based map, the map is displayed using smaller textures put together.

This technique is pretty simple to understand and not really complex to execute. Also, if used with an efficient pooling, it can be very efficient.

Example:

enter image description here

\$\endgroup\$
  • 1
    \$\begingroup\$ You're welcome. Fyi if you want to make something similar using Unity3D I strongly suggest you to have a look at TextureArray. It's a new feature that helps a lot for map display. \$\endgroup\$ – lvictorino Mar 9 '17 at 16:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.