Model Requirements and Preparation
The MTG can read a variety of 3D file formats and convert them into Vuforia Engine’s internal mesh format. Consequently, any visual error in the model introduced in this conversion process will be displayed in the MTG viewport. Some source model formats can result in wrongly converted models since they are missing mesh information. Therefore, the MTG should be used to check whether the imported model corresponds to the source data. If there are issues, using a different file format may resolve them; if not, the source data may need to be cleaned up.
Vuforia Engine’s Model Target Tracking performs best on CAD models which have particular characteristics, such as the corresponding color to the physical object, are low in complexity, and similar.
For more information, see Model Targets Supported Objects & CAD Model Best Practices.
The import pipeline supports meshes containing:
- Multiple sub-meshes
- Vertex positions
- Vertex normal
- Vertex texture coordinates (one set only)
- Diffuse solid colors
- Diffuse texture colors
- Normal maps
In case the input model provides more than the aforementioned information (e.g. additional texture coordinate sets), they will be ignored upon import.
The MTG supports reading of: Creo View (.pvz), Collada (.dae), FBX (.fbx), IGES (.igs, .iges), Wavefront (.obj), STEP (.stp, .step), STL (.stl, .sla), VRML (.wrl, .vrml), glTF 2.0. When Creo View Adapter for JT is installed, then JT data is also supported.
The best import results have been observed with Creo View Adapter, Collada, FBX, and JT.
NOTE: supported texture formats on the models are JPG, PNG and PGM files in 32-bit, 24-bit and 8-bit.
For a detailed overview of recommendations and best practices, see Model Targets Supported Objects & CAD Model Best Practices.
When preparing the 3D model for the MTG, you will need to check that the scale of the digital and the physical object matches. Attempting to track a toy replica with the 3D model of the full-size object can fail in some instances. In order to be sure to get the best tracking quality, the sizes of the models and objects need to match exactly.
If the model has more than 400,000 polygons or more than 10 parts, the model will need to be simplified. The process of simplification consists of reducing the number of polygons needed to represent the object as a mesh. Simplification is required for the computer vision algorithms to run on mobile devices in real-time; polygon reduction does not impact the detection and tracking accuracy, as long as it is not too coarse.
Any simplification tool will introduce some artefacts. Artefacts with a reduction range of 1:10 generally do not impact the computer vision algorithms. For example, reducing a mesh corresponding to the 3D model of a whole car from 500,000 polygons to 50,000 polygons produced a significantly reduced database, and still achieve good detection and tracking performance.
In some cases, the 3D model of an object can contain parts that are not on the object being tracked (or not on all instances), such as an optional extra component that you can specify when ordering the object - extra footrests or a passenger seat on a motorbike, for example. Ideally, the 3D model used for tracking should not contain this part.
In addition, parts that can easily move from their position in the 3D model (e.g. a steering wheel that can be rotated or adjusted to fit the driver) can interfere with tracking. Removing it from the 3D model can improve tracking quality since it decreases the disparities between the 3D model and the real object.
Internal parts that are usually contained in a CAD model - but cannot be seen from the outside of the object when trying to initialize tracking, shall be also removed. These increase the size of the device database during storage in your app, and the polygon count at run-time to deal with. Remove these to furhter increase the performance during detecting and tracking a Model Target.
To simplify or modify your model, use a third-party mesh editing tool, such as Simplygon, Blender, Maya, Umbra3D, and MeshLab. For more information, refer to the official documentation of your specific tool.