Exported vertices much more than original verts

Hi everyone. Whenever I export a mesh using ogre, I get a popup like this:

The exported verts are close to double or triple of the original verts seen in Blender. Is this normal? If not, then what’s causing this problem?

In my case it comes because of the texturing of my game objects. It’s not a Blender issue but a common exporting practice in every 3D modeling software.

Each vertex usually has only one UV coordinate associated with it when it comes to texturing. However a vertex can be part or many triangles (or quads when available). and each of those triangles can be in separate sections in a texture. So we can have one vertex in 3D space with n UV coordinates.To solve this, exporting programs duplicate the vertices n - 1 times in the same 3D position so that each vertex has only one UV coordinate. The triangles and animation information are automatically updated to use these new vertices.

The reason is because what blender thinks of as a vertex and what OpenGL thinks of as a vertex are two different things.

In blender, a vertex is just a location. In OpenGL, a vertex is a whole set of unique attributes possibly including location, texture coordinate, vertex color, normal, etc. (in OpenGL it can be fully custom in fact). So if a position is shared by two shapes with two different sets of texture coordinates then that position is one vertex in Blender but at least two in OpenGL, and consequently JME.

Is there any effective way to have one position be correlated with only 1 shape/texture coordinate? Or are extra vertices common and expected occurrences when exporting a model?

I think you are still getting wrapped up in names. So let’s change them for the sake of this conversation.

In Blender, you have “woozles”. Woozles are just positions. So often you have many triangles sharing the same woozles.

OpenGL doesn’t have any woozles. OpenGL has “Whirlbings”. Whirlbings are a combination of many things, including but not limited to: position, color, texture coordinates (xN), normals, tangents, etc… in OpenGL this can be fully customized in fact to be anything you want.

Woozles and whirlbings have no direct relationship other than that they might share a location.

When exporting a triangle from blender, the woozles have to be translated into whirlbings. There may be several whirlbings for each woozle as they are TOTALLY DIFFERENT THINGS.

This is common. Mostly because it cannot be any other way. Woozles are not whirlbings and whirlbings are not woozles. Similar to how there is no relationship between an apple and the number of grains of rice in piece of sushi.

Ahh I see. So it’s common and to be expected. Thanks for your help