I’ve struggled with this a lot myself. I’ve experimented with some parallax occlusion shaders that work ok, but are pretty laggy. I’ve played with volumetric effects, but they are challenging to map to a dynamic mesh like fabric (great for sponges though. unless you wanna squish them, then it’s real tough again)
The best way I know how is to offset the surface repeatedly. You could use multiple solidify nodes, but geometry nodes are ideal in this application. Then, use a UV mapped alpha texture for your holes, it can give a pretty convincing effect, if you aren’t looking too closely:
The shading is wrong, but you could probably do some more fancy node work to improve that. I’m showing 12 offset layers here, which is quite a lot of faces on a decently complex mesh.