Well if you want an accurate result you could play around with texture base solutions but they never look “real” world correct as a replacement for actual geometry and if the project needs to be future proof then the need for next next gen games would be Tessellation using height maps.
The problem and need for mesh density really is one that has been solved a long time ago and in most cases mesh density has been limited to what the engine would or would not allow, usually limited to 64k, where UE4 does not limit the need for X amount of detail so the logic path now is make it look how it should look first and then worry about optimization as part of the polishing stage based on the sum total.
Make it to much as it’s easier to make to much less than it is to try and make not enough do more. (aka future proof your project)
The big hit these days = draw calls by the way.