Fun effect. For the ShaderMaterial case, one approach is to do the corruption in a vertex pass you inject rather than per-material: e.g. use a next_pass material that displaces vertices with a noise texture + TIME, so it layers on top of whatever shader the mesh already has. Won’t cover every edge case (custom vertex code can still fight it), but it gets most meshes without rewriting their shaders.
Fun effect. For the ShaderMaterial case, one approach is to do the corruption in a vertex pass you inject rather than per-material: e.g. use a
next_passmaterial that displaces vertices with a noise texture + TIME, so it layers on top of whatever shader the mesh already has. Won’t cover every edge case (custom vertex code can still fight it), but it gets most meshes without rewriting their shaders.