I have a small problem which partly will define how my whole model engine works so it needs to be thought out. I have a solution but it is not perfect, however i don't see how it could be.

At the moment 3D engine uses OpenGL to render Vertex arrays; series of GL_TRIANGLES. Rendering is done with glDrawElements that is fast (even faster than glDrawArrays i've heard too...) and reduces needed memory by having list of vertices and faces only remember index to each vertex, so a dynamic and light way. Each vertex has a corresponding (and equal length) normal, texture and color arrays all optional depending on model and visual needs.

Problem:
When making a sphere using these definitions, texture coordinates will "loop through". For example, take texture X coordinate for any given face:
- Face 4 could have X ranging 0.5 .. 0.6
- Further 0.9 .. 1.0
- And finally 1.0 .. 0.1 (or 0.9 .. 0.0) this is where single face will span an entire texture

Solution:
I could think modelling program would be responsible to create an overlapping vertex for each side of sphere. Think of it as a paper that is bended so that edges touch... But this solution is first of all minor detail error to normals. It becomes impossible to create perfectly smooth normal if model is "broken" in the middle. Secondly it makes model little less dynamic or slower where you have to move 2 vertices that are overlapped in case of animation. Finally it takes that little bit more memory for extra vertices...

Another solution is the memory mass that would have each triangle a unique vertex... i wouldn't want to move to that really. Old GLEngine was mix of both but it didn't use any array rendering, only glBegin-glEnd.