Vertex and vertex descriptors - GeirGrusom/ModGL GitHub Wiki
Vertex structures
Vertex structures can be created, but because of differing platform padding an absolute offset must be set for every field, and the structure must have explicit layout.
Example:
[StructLayout(LayoutKind.Explicit, Size = 32)]
public struct PositionNormalTexCoord
{
public static readonly VertexDescriptor Descriptor = VertexDescriptor.Create<PositionNormalTexCoord>();
[FieldOffset(0)]
public Vector3f Position;
[FieldOffset(12)]
public Vector3f Normal;
[FieldOffset(24)]
public Vector2f TexCoord;
}
Notice the static Descriptor field.
Vertex descriptors
Vertex descriptors describe the different fields of a structure and is used to map fields in a vertex array. They can be created manually, but there should really be little reason to do so. To automatically create a vertex descriptor from a structure type use VertexDescriptor.Create<T>()
.