3D Model Import Guidelines.

Learn how to import 3D models to your Glue Team.

What files does Glue support for importing 3D geometry?

Glue supports any 3D model in current FBX file format. The current supported FBX format versions are: FBX 2011, FBX 2012 and FBX 2013. For cross-platform compatibility try not to exceed 250 000 triangles. Consider, however, that for optimal performance with your particular hardware and use case the specification may need to be a little more elaborate than that. 

How do I convert my 3D objects to FBX format?

Most 3D packages have FBX available as an export format to convert your 3D model to. Refer to the user manual for specific instructions with your selected software. If you don’t already have software capable of file conversions, there are several free or low-cost alternatives available. As Glue stores business critical and sensitive information, all Glue users must be reliably authenticated, and only users identified as team members are able to access the team’s virtual spaces and files. This also applies to Glue’s own system administrators, so nobody can access your content without an invite! A very good, totally free option with plenty of good tutorials is Blender, which is available for download at: https://www.blender.org. While it’s always advisable to study the documentation of the software to be used, you can ensure textures are embedded in the exported FBX file with Blender with the following FBX export settings: 
Screenshot 2021-03-09 at 9.07.38

Why is there much more to it than just file format?

Glue supports a wide range of equipment and hardware combinations, many of which will be used in a single shared session. In addition, the potential use cases for importing 3D geometry vary greatly in different industries. As a result, it’s impossible to set just a single platform-wide specification or hard limit for imported objects that caters to them all.

Untextured design models are significantly less demanding for hardware performance than objects with complicated and realistic materials. Dividing geometry into separate parts improves performance as geometry not currently in the field view isn’t rendered. This holds true until the sheer amount of objects becomes too demanding to solve in real time. The same object instanced multiple times requires less memory than several unique ones.

Additionally, other factors such as the number of participant avatars in session, the chosen space, and any other software you are running during the collaboration session have an impact on how much imported geometry can run smoothly.

Ensuring optimal real-time performance across the hardware of your users will be something of a balancing act: the different elements that ultimately make up your imported 3D model will affect performance in different ways, and you may have to make trade-offs. While there is no one simple specification for imported 3D models beyond file format, we do provide a set of guidelines, benchmarks and a graph to give you an idea how to utilize this feature best for your particular use case.

A gentle warning: use your power wisely

We could have applied limitations on 3D models to allow only those that work with low-powered standalone devices. After careful consideration, we’ve decided not to do that. We want the feature to be completely open-ended to also serve the power users in the design and manufacturing industries equipped with high-end computers and powerful GPUs that are able to handle highly detailed geometry with ease.

Of course, we know that not everyone will have high-end machines. If you will have participants attending sessions using lower-GPU systems, you should ensure your imported model and objects are not going to exceed their hardware capabilities.
Mobile devices like Oculus Quest or other lower performance systems might suffer serious frame rate reduction or even system crashes if overly complex geometry is imported into the space. Users with lower-performance devices will not be able to enter a space at all before objects that are too demanding are removed using a more powerful device.

Users with limited internet bandwidth will also experience longer loading times in spaces with complex imported objects. We strongly recommend that you’re conservative with the number of polygons and/or number and resolution of texture maps, especially with standalone devices.

Imported object best practices and file specification

Most of the specifications below apply to any real-time graphics, such as those used in games, and are not specific just for Glue. We take optimization seriously so there isn’t that much overhead to run Glue despite the powerful features it has. However, it is possible to import overly heavy geometry into Glue and depending on the graphics capabilities or other processes running on the users’ equipment, varying degrees of performance issues might occur. On the other hand, if all participants have top notch gaming desktops and high-speed internet connections, somewhat complex objects can be imported with no noticeable drop in performance.
•  File format: FBX 2011 or newer. Legacy FBX V6.0-files are not compatible.

• Keep everything as simple and small as possible.

• Scale must be in centimeters.

• Textures must be embedded in the FBX file.

• Consolidate as many objects as possible into a single mesh. If an object consists of more than 100 separate geometries, it might start to cause performance lag. Dividing large objects to separate meshes will improve performance as geometry that isn’t in the field of view doesn’t have to be rendered at all.

• Keep polycount reasonable. The maximum number of polygons depends on the equipment used. For an untextured single object, it’s recommended that the number of triangles does not exceed 250 000 for lower-end GPU machines, 1 000 000 for a generic business laptop and 10 000 000 for high-end desktops with a powerful GPU. In any case, whenever possible, it’s advisable to keep polycount as low as possible.

• Avoid excessively high-resolution textures and use as few separate texture maps as possible to keep the memory consumption reasonable. For lower-end devices try not to exceed 512 pixels (1 024 will run though); for high-end devices, the maximum is 4 096 but

• 2 048 is recommended.

• If possible, combine all textures into one texture atlas. This improves performance significantly. • Bear in mind that processing lots of poly objects – even low poly ones – imported into the space might start to affect frame rate. For example, if you import 10 000 low poly objects, it can freeze the space.

• Check that surface normals are uniform. As geometry is rendered one sided (outside) any polygons with inverted normals will appear as holes.

• Depending on the software you use to export your FBX file, some material properties like “Metallic” may not be transferred.

Benchmarks 

Screenshot 2021-03-09 at 9.16.19

Oculus Quest:

• The absolute limit for one single object is 250 000 triangles. Make sure you count triangles.

• Quest was able to render 70 untextured object copies each consisting of 20 000 triangles.

• A crash results with approximately 60 instanced 1 100 triangle objects with 1 024k texture.

• A crash results with a 300 000 triangle untextured object.

Generic standard business laptop:

• The limit for acceptable performance for one single object is 1 000 000 triangles.

• Performance starts to slow with 220 objects with 1 024k texture. VR would likely be quite laggy but still usable. A 1.2 million + 300 000 triangle object (no texture) running but gets slower.

• A crash results with 8 000 000 triangle untextured object.

High-end PC:

• Perfect performance with 220 textured objects.

• 1.2 million + 300 000 triangle object. No lag. • No lag at all with an object of more than 10 million triangles. Computer fans are much louder though!

• No crash point was found, but naturally it is eventually possible to overburden any computer