Model preparation Guide
About
This guide contains information about preparing 3D models for use in the twinzo app. It is important to keep in mind that all the information mentioned below depends on specific use cases. Any Issues that were not mentioned or are unable to be fixed using this guide need to be discussed on an individual basis. In general, every step helps the 3D model to be processed faster for the twinzo app.
Mentioned criteria
Usable amount of vertexes (Depends on the use case mentioned below)
No inverted polygon faces (Depends on the use case mentioned below)
No duplicated vertexes
Use instanced assets instead of unique ones
No empty objects, parents, bones, or unnecessary stuff
The maximum object number in a single model should not be higher than 6K (We can go higher but it can make the model unusable for us)
Easy and understandable named materials, textures
Keep the maximum number of materials/textures per single object as low as possible (Depending on the use case)
Correctly created and assigned UVs
Small final file size (On the automatic Twinzo platform system file size limit is 100MB)
Supported formats
Criteria divided by use case
The single model used in the app
Non Scanned or Lidar based:
If we want to visualize only a single object in the app, usually criteria tolerance are much higher. For example, this single machine has over 500K vertices. Which is the top limit in terms of vertices amount. Everything higher will be most likely not usable. Also well amount of materials/textures on a single object can be higher.
Scanned or Lidar based:
For scanned or lidar-based meshes (In the case of lidar-point cloud converted to mesh), criteria are not as strict as for their counterparts. Usually, if your model has many vertices (under 2M) and the number of materials with textures is not exceedingly high (under 100), then your model should be fine (depending on your smartphone performance).
Multiple assets used in the app
If we want to visualize assets in the app, for example, something that is part of a factory/office and appears multiple times, criteria tolerance is much lower. For example, palette boxes, press machines, cranes, furniture, etc...
2K or less vertices - simple material or textures with/without UVs,
3K/4K or fewer vertices - important to visualize the model in more detail and it doesn’t appear numerous times,
Models that are visualized 5, or 10 times in one scene without any additional used assets can have a higher amount of vertices with higher texture resolution and more UVs. For example parts of cities or factory/office complexes.
Visualizing multi-floor building
If you want to visualize a building that has multiple floor levels, it's important to try to separate each floor into individual parts with specific hierarchies so, in the end, we can switch between them.
We prepared a full guide on how to prepare the model if you want to do it yourself: https://twinzo.atlassian.net/l/cp/g9PJ2SxQ
Visualizing BIM models
(Currently not supported through automatic Twinzo platform. To solve this issue please contact us individually)
However, we can process BIM models outside the automatic twinzo platform agent. You can learn more about it here → https://twinzo.atlassian.net/wiki/x/BYBFFg
Common model errors to look out for
These include the most common errors present in most models. These should be avoided and fixed.
1. Scaling and Units
The model should use a real-life scale in meters (1 Editor Unit = 1 meter). Models outside of these ranges, or in different units, can cause precision issues.
The main building volume should be roughly centered around the world origin (X = 0, Y = 0, Z = 0).
2. Inverted polygon faces
The red inside faces visualize which parts of the mesh are going to be invisible (backface culling) when rendering in the application.
Notice when Backface culling is turned on, how the inside of the cube disappears. (Backface culling saves computational resources)
Notice how it’s possible to see inside the pillar from the outside, but not from the inside out (backface culling). This happens because the faces are oriented in the wrong direction - towards the inside.
3. One-sided geometry
A single face will have its back side invisible (culled). Walls should be solid and have volume.
4. Vertex Normals
Vertex normals are vectors that define which way a vertex is pointing.
The purple lines on the image below are visualizing the normals of each vertex of the dome. (Red surfaces visualize inside faces that are going to be culled)
The Vertex normals on this house have been modified. Notice how the lighting looks wrong because the Vertex normals are not consistent with the faces.
5. Overlapping and Duplicated geometry
This step is very important. Overlapping geometry causes flickering (Z-fighting), and lighting errors, and such duplication wastes resources.
6. Cleaning up bottom faces
Cleaning up bottom faces and parts of the mesh that are never going to be seen saves texture space and computational resources. Downwards-facing geometry is never going to be seen in the twinzo application, therefore it only wastes memory and resources and should be removed from the model.
In the clip below:
Geometry is selected based on the normal facing direction
The selected downwards-oriented faces are deleted. (Red faces visualize inside faces that are going to be culled)
7. Object Instancing
This one is also very important to follow.
All 10 of the blue objects use the same mesh. They are all individual separate objects, but all of them use the same mesh.
Modifying the mesh of one instance reflects on all of the instances using that mesh.
In the clip below only the rightmost selected object is being modified, all other objects to the left of it reflect the changes because they are using the same mesh. They are instances.
All repeating or duplicated objects should use instances instead of “deep” copies that also use a duplicated mesh.
8. Object number
It is recommended to keep the number of individual objects under 6000 for a single scene. Fewer objects mean better computational performance for mobile devices and also it will reduce processing time. If your 3D model has many more objects, you can partially overcome this issue by using instances of “meshes with shared geometry” or merging objects that are divided into multiple separate pieces.
It is not recommended to have more than 6,000 individual objects in a single 3D model when using the automatic twinzo platform agent, as exceeding this limit can lead to performance issues. To address this, please optimize your 3D model or contact us directly for assistance.
9. Materials
Objects should generally have the least possible amount of unique material slots assigned/used. E.g. There’s no need to have 5 different metal material types assigned to one object unless they’re vastly different in appearance.
The number of unique materials in the final exported file should be reduced to the minimum amount possible.
This means:
No material duplicates (Metal Chrome, Metal Chrome.001, Metal Chrome.002, Metal Chrome.003, etc...)
No redundant materials with very slight changes in color or other properties.
All materials should be named properly, clearly, and descriptively. E.g. Wall Yellow, Metal Dark Rough, Glass, Plastic Orange Shiny, Carpet Brown, etc...
If you are using PBR materials with various texture images and want to upload a model through the automatic twinzo platform agent, please visit this tutorial: How to embedd Textures into single file
10. Supported file formats
Through automatic Twinzo platform -
.fbx
,.obj
, and.mtl
,The preferred file format is a binary
.fbx
,Possible to work with outside automatic twinzo platform agents -
.fbx
,.obj
,.mtl
,.stl
,.stp
,.ifc
,.dae
(limited) and glTF 2.0,Possible to export outside the automatic twinzo platform agent -
.fbx
,.obj
,.mtl
,.stp
,.dae
(limited), and glTF 2.0,The model file should have ~100Mb.
Every format has its limitations. Generally .fbx
, glTF 2.0 or .obj
are most suitable for us. Other formats like .stl
or various .cad
models cause different problems, like missing materials, unable to open, unable to properly convert, huge sizes, and no instances.
What software are we using?
Unity 2022+
Blender 3.6+
Meshlab 2021.05+
AutoCAD 2023
CAD Assistant
If you encounter any issues or need assistance with using this product, please do not hesitate to reach out for support. Our team is here to help you resolve any problems and answer any questions you may have.
To create a support ticket, visit our support portal at https://partner.twinzo.eu/helpdesk/customer-care-1