Can I assume PrimitiveType TriangleList for ModelMeshParts?

Is it recommended to assume TriangleList as PrimitiveType when drawing models? Or is it possible to have Models that have some other PrimitiveType like TriangleStrip?

You can use any of the PrimitiveTypes. For batching purposes it might be interesting to always use triangle list though.

What do you mean by batching purposes?

I think I didn’t explain well enough. I was asking because I want to iterate over all triangles in my code for normal calculation. So when I use model files like fbx I wondered if it would be right to assume the mesh exported as triangle list. Also I wonder if there are indices provided for the models. Maybe the answers also are dependant on the model file format like fbx or obj?

Oh, I misunderstood. Yes, a model always consists of triangle lists and always uses indices. You can tell by the way they’re drawn: https://github.com/MonoGame/MonoGame/blob/71f2364d69e09dca51169f15c02b07bcbe977e48/MonoGame.Framework/Graphics/ModelMesh.cs#L72-L92
EDIT: Actually, if this is about in the content pipeline, I’m not sure. The above is true for the runtime at least.

1 Like

It was only about runtime. Ok that is convenient for processing the models data.

1 Like