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

Home > Supported File Formats > OBJ to X3D


How to convert OBJ (Wavefront .obj,.mtl) to X3D (VRML2, VRML97)?


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.

     

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.

     

X3D

X3D is the XML-based replacement to the venerable VRML2/VRML97 (Virtual Reality Modeling Language) file format of the 1985-era. X3D extends VRML2 with support for CAD, geospatial, humanoid animation and NURBS. It also provides for multi-stage and multi-texture rendering. Each new iteration of the file format brings more modern functionality, headed up by the Web3D Consortium.

VRML2 (and its brotheren X3D) continue to be two of the very best of non-MCAD file formats. Many people (wrongly) believe that FBX is the primary "translation file format" but VRML2 pre-dated it by at least 10+ years and has equally good or better functionality (and in an open, non-proprietary specification).

VRML1 and VRML2 are 3D file formats with a long and complex history. They were originally developed in the mid 1990s to define 'interactive 3D worlds' on the then-new World Wide WEB. However, statistically speaking, VRML2 became more well known as a high quality "data translaton and storage" file format, partly due to Okino pushing it as such a standard in the industry. It was implemented by a good number of 3D software packages and hence became a "reliable back door" to convert 3D assets out of those packages before FBX, DWF, COLLADA, U3D and other similar file formats came along in the mid to late 2000s, or glTF in the late 2010's. So many new 3D file formats were introduced between 2005 and 2007 that many quickly died away or just became ghosts of the past.

Its brothern are also known as VRML2, Classic VRML, VRML97, VRML1 and Inventor2.