Bl
Bl
Bl
Bl
Bl
You are here:   Home »  Products »  PolyTrans|CAD+DCC  
Bl

Home > Supported File Formats > Universal Scene Description to OBJ


How to convert Universal Scene Description (.usd,.usda, .usdc.usdz) to OBJ (Wavefront .obj,.mtl)?


PolyTrans|CAD+DCC performs mathematically precise CAD, DCC/Animation, GIS and BIM 3D file conversions into all key downstream 3D packages and file formats. Okino software is used and trusted throughout the world by many tens of thousands of 3D professionals in mission & production critical environments, backed by respectable personal support directly from our core development team.

     

Universal Scene Description

The USD format (“Universal Scene Description”) is an open 3D model and scene format designed for efficient storage and streaming of 3D asset data. It is a high-performance extensible framework and ecosystem for describing, composing, simulating, and collaboratively navigating and constructing 3D scenes. An extensive overview of USD is provided in the Okino USD documentation.

Pixar Animation Studios originally created the USD platform (as its fourth generation variation after its Marionette & Preso systems) to improve studio-wide collaborative workflows. USD provides a concept of "scene composition", building a unified scene from potentially thousands of loosely-coupled source assets. For example, the mesh, rigging, materials, and animation for a single model might all come from different "layers" (files), each created and maintained by a different artist or department. Layers can store multiple "variants" of any given data, helping to solve problems of versioning/approval. The coupling between layers is very dynamic and loose, allowing for greater flexibility during the production process. The entire USD system is designed to facilitate a large studio making feature films, with all of the scale that that implies.

USD should be considered more of a code framework (“OpenUSD”) for use in group collaboration, to help with the aggregation of various 3D data sources into a unified scene through a process referred to as scene composition. A subset of that code framework provides for reading and writing USD disk-based files as well as rendering USD scenes (Hydra). The system is rather complex to implement (for software developers) and to use (from first principles) as a 3D graphics artist. The USD file format itself is not for faint of heart and is best read/written using the OpenUSD SDK + various programming APIs. More commonly used ASCII 3D file formats such as COLLADA, VRML2 and Wavefront OBJ are much easier to manipulate/understand/use on a human level basis.

File extensions used by the standard include:

  • .usd, Either ASCII or binary-encoded
  • .usda, ASCII encoded
  • .usdc, Binary encoded
  • .usdz, Zero-compression, unencrypted zip file

     

OBJ

Wavefront OBJ is a little understood but highly used and prevalent 3D "polygonal mesh" file format used throughout the 3D graphics world. Okino, Alias Research and McNeel made it popular in the early to mid 1990s as a general purpose, simple-to-read, storage and transmission 3D file format, especially for the then-new companies who began to sell 3D mesh models via the Internet.

Relatively speaking, OBJ is a rather simple file format but a bit better than STL although similar to the more modern 3MF format.The OBJ format allows for 1 or more unique polygonal mesh objects to be defined, each with optional UV texture coordinates and vertex colors. Material definitions can be linked to the mesh geometry as defined in the separate 'MTL' file. The material definitions are rather simple (ie. no PBR material support) but acceptable, and with varied levels of texture mapping support. OBJ format does not provide support for object hierarchy, local transformations, meta data, lights, cameras, skinning or animation. Most notably, OBJ does not allow for 'object instancing' and hence 1000 copies of a screw would be saved to OBJ as 1000 explicit copies, rather than 1000 references to one master object.

A short history: In the 1980s there was a program called Wavefront Visualizer which ran on UNIX and ran its early rendering pipeline as a series of tee'd command line 'applets'. The data flowed from one applet to another via various ASCII based files - OBJ for geometry, MTL for materials and other ASCII files for animation, skinning, deformation, etc.

Okino knows of the Wavefront OBJ file very well as it provides the one and only full implementation of the OBJ file format and with the ability to consume exceedingly large OBJ files quickly and efficiently. This includes the only known implementation of OBJ-centric 'NURBS geometry' (surfaces and curves) within the OBJ file format (which is little or not used) other than that from the McNeel Rhino-3D software.