Dragging invisible meshes is a nice idea, however note that even a cpp implementation of a standard gestner cluster (probably exactly as used within the community ocean project) can be laggy.
its probably Less Laggy than adding extra math to try and move multiple objects since you can do the math for one object and be done with it.
You could also fake it. You have the (amplitude?) Of the wave, so you could spawn and move an invisible mesh at the same interval that’s called for.
maybe spawn and move a physics area that adds resistance to the character by altering the appropriate physics values.
Assuming you have swimming states this could produce a much nicer feeling than anything else, since you go through waves and slow down due to the volume.
Kind of an interesting concept I have yet to play with.
I would suggest making a system that generates shore waves at this point.
The hard part is to tie it all into a single material. Mostly because by default you have no way to create custom loops based on objects within the scene. You could make something with a custom HLSL and/or try to populate a material parameter collection at runtime.
however there are basically no guides on doing anything of the sort (at least specifically for oceans and as of 8 months ago last I checked) so you are mostly on your own.
In terms of rendering costs, its really not much different. Oceans are expensive. You just have to deal with it.
you can find the cheapest possible examples of waves in the content examples btw. Sine based easy stuff that would almost be perfect for a shore wave with a variable cadence.
Last thing I have to add…
I think you can get Niagara to spawn particles based on the normal of the mesh at runtime.
think, because niagara is very pliable but also very new (few tutorials, basic content examples etc).
Then again, if you are spawning and moving physic volumes you can use the same logic to spawn the particles that give the foam effect… it becomes more trivial since it generates the effect rather then needing the effect to be generated by the material.