Doesn’t seem like the guy above has the first clue.
You use render targets.
You set them to capture render target visible objects dropped by whatever other object - vehicle, walking person, animal, etc.
While the render target is realtime (so you can visualize new footsetps happening) the previously left objects can be set to fade out over time.
Generally the objects you leave behind are custom vector fields, allowing you to easily derive normal maps of the deformation.
You can now use the RT in any way you want.
Be it for displacement on a virtual heightmap, or to just feed into a material to color areas different/add normals. Or even have decals make use of it somehow.
Cost wise, its integral part of the gameplay for RD2, so it doesn’t really matter how much it costs (within reason, you can provide lower quality visual options like they do).