I'm trying to write a mesh exporter, which would export vertex position, normal, tangent and texture coords. These would be used in my own engine. But I'm not fully understood the data organization in Blender's mesh.
In a GPU pipeline, primitives are usually limited to triangle lists/fans/stripes. However, it seems Blender meshes are organized in individual polygons, which don't have by-material large-sized triangle stripes? Is there any way to get the polygons by material?
I made a simple test geometry by subdividing twice on one surface of a cube, so this cube has 16 polygons on one face, and each one polygon on remaining 5 faces. When Auto Smooth is selected, vertex on different polygons should have different normals. However, the number of vertices is still 29 (by print C.object.data.vertices), which is not increased. So where are the polygon-specific vertices being stored?