What I do instead is to transform a procedural plane mesh into wave-like geometry. For added realism, I base this transformation on bathymetry data (ocean floor height), so you can get left/right breaking waves, different breaking sessions, etc, just by defining different heightmaps.