Hi there!,
I'm sure an expert will know straight away what I'm going to ask. Nevertheless I'll ask it anyway as I would like to have this clear in my mind, as it has been a very confusing topic for me.
So far I've been working with per vertex normals rendering simple meshes and in some cases even having some fun. All seems to have just about worked up to now. However I've recently come across what I think is an old dilemma in graphics programming which is: what do you do when you want to wrap a texture around a model (say like a UV map) and some of the vertices then require multiple UV coordinates. A cube seems to be a good example of this happening.
Even if you just unwrapped the sides (and not the upper and lower surface) you would still have this problem as the first and last points in the UV map would coincide with only one vertex.
I was hoping perhaps the API (I'm using DirectX) would allow me to specify UV coordinates per index, which would solve this problem. I'm discovering that you cannot do that. Maybe even if you could it doesn't seem to be the conventional answer to this problem. It appears one has no choice but to use duplicate vertices to get around this problem.
I'm ok with that up to the point when one has to consider animation. I was always of the understanding that duplicate vertices would mean you get big tears in the mesh when animating at joints in the model.. A shoulder to an arm seems like a spot where this might happen.
However I understand (I think) that if you use mesh skinning, where the whole model is one complete entity that is not separated into groups; then you do not experience tearing. I guess this is because duplicate vertices are right on top of each other and will thus be transformed almost identically by the algorithm.
Perhaps I have answered my own question, but it would be nice have this confirmed by a more experienced person, just so I have it clear in my head, as this been a very confusing problem for me :(
Many Thanks 🙂