I'm trying to optimize my terrain renderer by separating the terrain itself into a series of segments. Each segment is the same size and shares with other segments the x and y coordinates of its vertices as well as texture coordinates. I was thinking that I could set up a vertex array containing that data and a separate array containing the z coordinate, plus colour and normal vectors. The second array would be unique to each segment, of course. The x, y, and z coordinates would be assembled in a vertex program. The result would be that I'd be saving 16 bytes of data per vertex, per segment beyond the first. Can this be done with VBO?