glTF or OpenUSD - Which is the best 3D file format to use?
Jed Fisher
Managing Partner @ 4D Pipeline - Helping You Make Digital Experiences People Love
4D Pipeline. Updated: November 2023.
I've been doing 3D graphics for my entire career and over the last ~25 years we've seen many 3D file formats come and go, often one promising to be "The 3D File Format" (to rule them all). Finally now, we have two amazing 3D file formats that will work for most of your needs.
I am often asked - what should we use - USD or glTF? (USD is technically now called OpenUSD).
Both formats are 3D, Open, and Royalty Free to read or write/create.?
Both are fairly new formats and are actively being developed. However, the objectives of each of them are different:
USD is more targeted towards "scene description", so describing a whole hierarchy with tons of objects, while glTF is more aimed towards describing a particular asset.
That said, glTF can be used as a storage format and USD can be used for publishing.
Let’s dive deeper into the different file formats:
Universal Scene Description (USD) (now called OpenUSD)
Universal Scene Description (USD) is an open source 3D exchange format developed initially by Pixar. It is designed for storage, interchange, and interoperability between different 3D packages.? As its name entails it’s used to save scene descriptions and it is intended for file editing in digital creation tools. Variants of USD are USDA, USDC, and USDZ. USDA is a simple ASCII format, USDC the binary (and faster) format. USDZ is a container for the format in ZIP and it’s predominantly used by Apple.
USD provides a centralized hierarchical representation of the data so that it can be used by multiple applications at different stages of the production pipeline.
It also provides a modular architecture and new technologies and applications can easily be integrated.
It’s recently been renamed to OpenUSD.
USD is more targeted towards "scene description", so describing a whole hierarchy with tons of objects.
Pros:
When creating a feature film or working on a process with multiple users or steps, you can use its layer properties to coordinate animators, technical directors, modelers, artists, …?
Cons:
More information can be found at the Alliance for OpenUSD.
领英推荐
Graphics Library Transmission Format (glTF)
GL Transmission Format (glTF) is a file format for efficiently displaying 3D scenes and models in real-time. It is often called ‘the JPEG of 3D’ and it is developed and maintained by the Khronos Group and designed to be compact and easy to use. It supports PBR materials, hierarchical animations and JSON-based data storage. It is the standard for real-time 3D graphics in modern web and mobile applications. The current version is glTF 2.0.
.glTF is JSON based, .glb is a compressed binary version of it. Both can reference external textures.?
glTF is more aimed towards describing a particular asset (vs an entire interactive scene).
Pros:?
Cons:
More information can be found on the Khronos Group glTF page.
Hopefully that's a helpful summary to each format.
At 4D Pipeline, we use both formats often with our customers.
We've written over a dozen USD and glTF importers and exporters for different 3D software providers like Adobe and Epic Games. We've helped many enterprise customers use these 3D formats as part of their automation pipelines.
“When building an online 3D car configurator for Honda. The original CAD file had 300 million triangles (after tessellation) for the car, far too big for displaying in a WebGL viewer. We processed, optimized, and broke it down to a ~300 thousand triangle glTF file to show up in a web browser. This then allows the customer to change the seating colors, accessories, wheels, trim, change the paint job etc. Making the car to be as realistic as possible and load quickly via web. Ultimately, making the car look great and having the customer engaged as soon as possible. Creating customer engagement, delight and fun will lead to the purchase. Anything that inhibits this process has to be removed. But not at the cost of quality.” - Says Jason from 4D Pipeline.
Another example of using the glTF file format is for the collaboration between IKEA and Geomagical Labs (both customers of 4D Pipeline).
“IKEA utilizes Geomagical Labs technology to take a photograph of your room. Ideally taking 10 photographs from slightly different points of view. AI will then turn the photo into a 3D scene. Then the customer can take Ikea furniture and drag and drop it into the room where they want it. At 4D Pipeline, in order to accomplish this, we built an optimization system to process all their 3D files into low poly glTF files to come into the system fast and design their rooms. Our system figures out the optimal geometry and material package to yield a good visual experience while decreasing the size of the glTF file. When the customer drops an item in it will react with the scene and lighting. We also made them a glTF viewer and we are training their AI to recognize the data for machine learning.”??
It is important to start with the “why” and then choose the right file format with your technology team for your needs. If you want any guidance on which format to choose or how to bring your product into 3D and online, please reach out to us at [email protected]
Thanks for reading!
AR Quick Look & Web Specialist
1 年Do not rely on the platform supporting any of the 40+ KHR extensions to glTF. In example Android's AR service "SceneViewer" only supports 2 of those. Avoid converting from glTF to OpenUSD, as glTF only supports TriMeshes, but FBX and USD support Quads (consider SubD, NURB coming soon to Omniverse and Apple) and have a much better topology for any processing except WebGL. glTF is locked in (now) outdated GPU specs. Having OpenUSD master files and convert them to glTF seems fine (MaterialX and OpenPBR now have to fill a big gap, because the above mentioned 40+ extensions and pbrNext need to be supported). Google navigated itself in a deadend, because glTF is and will ever be a Web-transmissing / WebGL/GPU dedicated format, just for single assets. Google uses it to force all use cases to a browser (preferably Chrome). We all know why. Bigger structures like scenes, game levels are totally out of scope (only enthusiasts work on several, unrelated implementations of so called BehaviourGraphs). Apple went ahead 3yrs ago and RealityKit becomes a full fledged game engine next year. The current deadend: Google wants to finally (after 6yrs) bring WebXR to SmartPhone-AR, but is blocked by a patent troll (named Niantic/8thwall) to do so.
Developer specializing in 3D rendering and graphics creator applications
1 年The way I see it is that USD is best used for interchange with editable 3D data, GLTF for content delivery of final data for rendering. Both of these tools get much harder to use when not for their intended purposes.
Building the future of AI + ecommerce
1 年Very well written and considered. Thank you for posting this. I don’t know too much about USD other than that it is Apple primarily. What are the downsides of using gLTF for scene description?
Senior Solutions Engineer for Nextspace Digital Twin platform
1 年Great overview thanks Jed! I knew allot about glTF and very little about USD - you’ve just fixed that :)
CGI | 3D Configurators | AI
1 年Thanks for sharing!