.

Designing automated pipeline for producing 3D models for product visualization

If you’ve ever tried to upload a 3D model exported from a CAD program to a WebGL or AR service, it’s likely you’ve run into issues around maximum file sizes, never-ending progress bars and bad frame rate.

In order to author good online interactive experiences, optimizing your 3D data for size and performance is critical. It is also good for your bottom line, as smaller files require less cloud storage and push less data through your CDN.

This article describes how to design an automated pipeline for producing good 3D models for visualization. This allows you to author your models with full detail and have web- and AR-friendly models available at any time, and with minimal manual effort.

When 3D models are authored for manufacturing or visualization in offline renderers, they are often unsuitable for display in handheld devices, web browsers, AR applications and other devices with lower specs. This means content production teams often end up spending lots of time optimizing or converting source assets to lower-end devices to ensure smooth renders and quick downloads.

Optimization of 3D assets & how process interacts with Substance

In this article, we will look at the optimization of 3D assets in general, and specifically how this process interacts with Substance materials and libraries.

Hand-optimizing 3D models is not only boring and time-consuming, but can easily become a bottleneck in a production pipeline. The problem is that optimization is inherently downstream from the source assets, which means any change to the source asset (3D model, materials, etc.) needs to be reflected in the optimized asset. Therefore, there is a conflict between being able to preview the optimized content early and the time spent of optimizing it.

If there is an expectation that the source model is going to change a few times during production, it’s more efficient to only optimize it after it is final.

This makes optimization a prime target for automation. It’s not a place where you need artistic expression. An automation pipeline would detect when there are changes to any aspect of an asset library and re-optimize the affected assets.

Closing words

I hope this article provided a starting point for how to think about automated workflows with 3D graphics and some helpful information on how to produce 3D models that are fast to render.

Acknowledgements

Thanks to the following people, who provided invaluable help during the work on this article:
Luc Chamerlat, for producing meshes and materials to demonstrate the pipeline on.
Justin Patton, for producing materials, testing the pipeline on various meshes and providing feedback on how to improve it.
Nicolas Wirrmann, for providing utility Substance graphs for features such as dithering and normal transformation.
The Simplygon team, for adding features needed for the pipeline and quickly responding to any bug reports and questions when I ran into problems.