diff --git a/src/MagnumPlugins/ObjImporter/ObjImporter.h b/src/MagnumPlugins/ObjImporter/ObjImporter.h index 9bcacb0e7..7dfeb5e1d 100644 --- a/src/MagnumPlugins/ObjImporter/ObjImporter.h +++ b/src/MagnumPlugins/ObjImporter/ObjImporter.h @@ -53,13 +53,9 @@ namespace Magnum { namespace Trade { /** -@brief OBJ importer plugin +@brief Wavefront OBJ importer plugin -Loads Wavefront OBJ (`*.obj`) files, with the following supported features: - -- multiple objects -- vertex positions, normals and 2D texture coordinates -- triangles, lines and points +Loads meshes from Wavefront OBJ (`*.obj`) files. @section Trade-ObjImporter-usage Usage @@ -100,20 +96,27 @@ information. @section Trade-ObjImporter-behavior Behavior and limitations -Meshes are imported as @ref MeshPrimitive::Triangles with -@ref VertexFormat::Vector3 positions interleaved with optional -@ref VertexFormat::Vector3 normals and @ref VertexFormat::Vector2 texture -coordinates, if present in the source file. By default the per-attribute index -arrays are merged into a single @ref MeshIndexType::UnsignedInt index buffer. -If you disable the @cb{.ini} mergeIndexArrays @ce @ref Trade-ObjImporter-configuration "configuration option", -the resulting mesh will be nonindexed, with the vertex data duplicated +Meshes are imported as @ref MeshPrimitive::Triangles, @ref MeshPrimitive::Lines +or @ref MeshPrimitive::Points with @ref VertexFormat::Vector3 positions +interleaved with optional @ref VertexFormat::Vector3 normals and +@ref VertexFormat::Vector2 texture coordinates, if present in the source file. +By default the per-attribute index arrays are merged into a single +@ref MeshIndexType::UnsignedInt index buffer. If you disable the +@cb{.ini} mergeIndexArrays @ce @ref Trade-ObjImporter-configuration "configuration option", +the resulting mesh will be non-indexed, with the vertex data duplicated according to per-attribute index arrays. -Negative indices (where @cpp -1 @ce is the last position / texture coordinate -/ normal known at given point in the file, @cpp -2 @ce is the second-to-last, -etc.), produced for example by 3ds Max or [Mineways](http://mineways.com), are -supported. Quads are converted to two triangles, higher-order polygons are not -supported. +Optional fourth position coordinates are allowed if they're set to 1, optional +third texture coordinate is allowed if it's set to 0. + +Negative indices (where -1 is the last position / texture coordinate / normal +known at given point in the file, -2 is the second-to-last, etc.), produced for +example by 3ds Max or [Mineways](http://mineways.com), are supported. Quads are +converted to two triangles. Higher-order polygons are not supported, meshes +that mix points, lines and faces together are not supported. + +Files containing object name annotations (`o`) are split into multiple meshes, +with the object name available through @ref meshName() / @ref meshForName(). Material properties are currently not supported.