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.
In my game the waves start, break and end, with different sessions and hollowness, so there's more wave reading involved. Also the focus is on being able to stay on the wave and generate speed, doing cutbacks, snaps, off the lips, etc.