3D files can be large and complex, sometimes containing millions of assets. To put things in perspective, a relatively simple 3D CAD design of a manufacturing assembly line will contain more than 100,000 meshes and nodes after its converted to a polygonal mesh file. And with a complex file, comes an extensive outliner. In this post we will review why organizing a messy outliner after 3D CAD conversion is important and how you can achieve it.
Why outliner cleanup is important after 3D CAD conversion
Having to work with an unorganized outliner with many meshes, parents, and groups can be very challenging. From inconsistent naming of parts, to no hierarchies or grouping – it’s a 3D developer’s worst nightmare!
Often engineering teams will follow a system of hierarchy when designing their CAD files, with organized groups and parts. However, the outliner may become messy upon exporting, converting, and hand-off between different teams. Another issue is that converting a CAD file to polygonal mesh generates multiple parents per node, further complicating the outliner.
An unorganized outliner may not seem like the biggest problem in the world, but you’d be surprised to see just how much more convenient it is to be able to quickly find and edit the parts you’re looking for in a large 3D file. Whether you want to optimize a model, animate certain parts, or add textures and materials, you need to spend time looking for the correct mesh or part in your scene. This is where an organized outliner can provide significant time savings. And who doesn’t like to save time?
Having an outliner that is well thought out, with effectively named parts and organized into groups makes working on 3D visualization projects much more efficient. Let’s go through some of the key steps that will turn a messy outliner into a dream to work with.
Organizing the outliner into static and moving groups
After converting the 3D fie into a polygonal mesh, we usually begin the outliner organization process by organizing all the assets in the file into two separate groups: meshes that are animated in the scene, and meshes that are static. Dividing our outliner into these two main groups right at the beginning of the project will help us significantly in the next steps of the development.
You can use this grouping to easily hide the static parts of your scene which will help you test and iterate on your animation much faster. Using this method, you can monitor the performance of your project too. For example, you might achieve an FPS of 90 for your project with the static parts hidden. Once you add your static parts back in the project, you might notice your FPS is reduced to 55. This will help you identify that the decrease in your framerate is attributed to your static parts. Knowing this, you can take further steps to optimize the static parts to improve your project’s performance. So in effect, having the ability to switch static parts in and out of your project helps in debugging performance issues in your project.
Another common challenge in working with outliners from CAD files is the naming convention used for naming assets. For example, when engineers design CAD files, they may use manufacturing part names such as “4000-00 Rev A” to name a particular asset in the file. While this type of naming convention is effective for an engineering team, it is unhelpful and confusing for 3D developers. To make an outliner more 3D team friendly, we suggest renaming parts, parents, or groups into logical names that are more practical for 3D developers, such as Conveyor_belt_small.
If you’re creating your 3D visualization using Unity, we also suggest using ‘Namespaces’ to organize your project code. As 3D projects grow larger and more complex, there is a higher chance of having conflicts between script class names, especially if several programmers and 3D developers are working on the same project! Using Namespaces will prevent naming conflicts with other packages and libraries that could result in errors.
Improve outliner performance by combining objects
Combining assets can help reduce the size of the outliner as well as the project file. As we previously discussed, in the static group of objects, we can combine smaller assets that are near each other to create mid-sized assets. Combining meshes is beneficial because instead of individually rendering ~50 tiny assets – such as bolts, wires, cylinders – your engine will render a single mid-sized mesh. This is especially helpful for Unreal Engine users.
One important tip is to make sure you don’t combine all static assets in your scene, creating a big chunk of mesh will actually cause more render errors in your UV maps. You can learn more about draw-call batching in Unity here, and about merging parts in Unreal Engine here.
Combining moving objects is a bit more complicated than combining static meshes. For moving objects, you want to only combine meshes that are near each other and move together as one piece. For example, parts of an industrial robot arm that rotate together can be combined to form one mesh. Unreal Engine’s “Merge Actors” is also a very useful tool which you can read about it here.
Save time on your 3D project
Organizing your outliner should be the starting point of any 3D development project. An organized outliner leads to many efficiency gains in the 3D pipeline such as file size improvements, and easier editing and debugging. This means you will benefit from significant time savings as your project progresses, as well as making any future project updates much more seamless.
For the reasons discussed, we strongly recommend taking the time to organize your outliner before jumping into a project because it will save you tons of time down the road.