By using the element buffer you send indices that indicate which verts to be used for a certain face. But what about normals? If I would want to render a cube with a basic diffuse shader, I would get smoothed normals (if I smooth them before). However when trying to render hard surfaced edges like a cube i can't draw hard edges, since some faces share the same vertex.
Is there a way to still use the element buffer for hard surfaced Objects?
I don't like the waste of memory when using glDrawArrays().