I guess it may have also been not a vertex shader, but a pixel shader based UV offset, since such effect done in a vertex shader is bound to clip into the character at some point, while with UV it’s literally impossible to clip anywhere:
In the aircraft scene you can clearly see the geometry warping, which means some kind of vertex offseting is taking place. I don’t think clipping would be a problem since I wouldn’t expect the geometry of the actual arm of the character to be there, and even if it were to be the motion is not too extreme and you could for example only offset the vertices outwards from their natural position along their normals.
It’s very nicely done, but I agree with everyone above who says it’s not any kind of simulation.
Looks like a panning sine wave doing some amount of per vertex expansion and contraction along the vertex normal, as well as fading a “wrinkle” normal map in and out depending on the amount of deformation. If you look carefully at a couple of scenes you can see the “direction” of the flutter is baked into the model, using a standard gun aiming stance with the flow going downward. There’s one shot where someone lowers their arms to their side then back up to aim and the flutter orientation stays locked to the arm’s UVs.
It’s being done with really nice artwork, but it’s not anything new.
And it is moving the vertices as the silhouette is changing, so it’s not a purely pixel shader offset based technique like Killzone. It’s not hard to limit the amount of displacement by painting the vertices with some data to avoid clipping.
It does look like it’s causing some kind of problem with the motion blur or temporal AA though as it’s over blurring the areas in motion in some of the scenes. Though it looks like the obviously wrong scenes (like the shot of the US soldiers about to jump out the back) are slow motion shots, so the motion blur pass might just not be taking into account delta times properly.
Sweet I worked on Dark Void back in the day. I didn’t do that material but If I recall the material just used a panning noise texture to distort the UVs. I don’t think vertex offsets were available back then