Data
The smf section begins with the following structure:
The fieldsSize field specifies the total size of the header fields, after which a list of attributes will be declared. The purpose of this field is to allow for forward compatibility: Future updates to this specification may add extra fields to the end of the header structure, and the value of this field allows older implementations to skip those newer fields.
If the length of the schema_id field is 0, the schema identifier as a whole is ignored.
The
vertexCount field specifies the number of vertices that will be specified in a
vertices-noninterleaved section. Parsers MUST raise an appropriate error if a non-zero vertex count is specified but no vertices are actually provided in any following section.
The
triangleCount field specifies the number of triangles that will be specified in a
triangles section. The
triangleSizeBits field specifies the size in bits of the individual vertex indices within each triangle. Parsers MUST raise an appropriate error if a non-zero triangle count is specified but no triangles are actually provided in any following section.
The
attributeCount field specifies the number of
attributes that will be declared.
The axis and winding order values are related to integer values via the following functions:
The
byteOrder field specifies the
endianness of the values in the
vertex and
triangle.
Directly following the end of the header structure is a series of attribute declarations:
The name field specifies the name of the attribute. The componentKind field specifies the type of the attribute components. The componentCount field specifies the number of components in each value in the attribute, and the componentSizeBits field specifies the size in bits of each component value.
Attribute component types are related to integer values via the following function: