Content:

↑ Back to top

Dynamically Generated and UV Mapped Minimap

Summary

This system continuously projects the static environment near the player onto a texture using top-down orthographic projection. As a form of optimization, the environment is only re-rendered when the player moves beyond the bounds of the previously rendered area or toggles the minimap zoom level lerp. That texture then serves as the basis for rendering accurate map topology (e.g. height data) and is dynamically culled in an HLSL shader based on the minimap's current radius relative to the player's world position. The much smaller minimap then translates its 0-1 UV coordinates to the unculled region of the full environment texture, ensuring correct scale and orientation on the HUD, while also adjusting the position and scale of any other sprites placed within the minimap context.

Showcase

Topology Rendering and Culling Shader
Minimap UV Translating Shader
Environment texture rescaled in runtime according to a maximum radius set to 100 metres
Environment texture rescaled in runtime according to a minimum radius set to 50 metres
Minimap Setup
Rendering the Geometry
Culling the Rendered Geometry
Final Sprite Render With Runtime UV Mapping