What is the best way to paint aUI on 3d objects

I am trying to paint UI elements on a 3d surface, at the moment a gridmap, but I am still experimenting and figuring things out. I am trying to paint various things on the gridmap, such as how far a character can move this turn, or the range of various skills. At the moment I have all that logic duplicated in the shader which works, but it’s cumbersome and won’t scale as I try to add more complex environments and skills, never mind more complicated terrain.

I feel like I am missing something and that there should be an easier way to do this than to push it all into the fragment shader, but I haven’t found it, perhaps because I don’t even know the right terminology to properly ask the question.

Maybe attach a decal on the surface of the model? Or just label3d node as child of the model? Not sure what you mean, sounds more complicated as you mentioned shaders

Bacisly imagine a CharacterBody3D, when selected I want to paint the map reachable within 5 movement points to make it clear to the player what parts are reachable and which are not. I’d like to avoid grid based movement but make it one continues whole.

I have it workign on a flat map with a shader, but that is not a very good solution. I have been considering other solutions but there doesn’t seem to be a simple way to do this.