Vertex Sharing.

Aside from the vertex arrays is there a way to do some kind of vertex sharing ?

(without relying on the hardware vertex cache.)

I don’t want to transform twice or more a shared vertex.

Note : I use Triangle strips.

Not as far as I know. But use compiled verex arrays with index lists. That should make sure each vertex gets transformed only one

I had the same problem. I have been working on the N64 for about three years and recently started using opengl. The N64 allows you to load your verticies, and as you use them in primitives you can modify the color and text coord. I tried to figure out a way to do this with opengl and vertex arrays… I was told it could not be done! If I there is a way I would like to know about!

In OpenGL you can only share vertices using vertex arrays or display lists (if the driver does it internally), as long as your vertex has only one normal, one texcoord and one color. You can do tricks, like changing the normal array pointer in the middle of the rendering to point to a second, diferent normal array, same for color and texcoord arrays, but it would be very ineficient (the driver will have to prepare the array again).
If I have a vertex that has for example two different normals, I split it in two vertices with identical xyz coords but different normals in the normal array.