| X3D — Extensible 3D Graphics | |
|---|---|
| Filename extension |
|
| Internet media type |
|
| Initial release | 1997; 28 years ago (1997) |
| Latest release | 4.0 2023; 2 years ago (2023) |
| Type of format | 3D computer graphics |
| Extended from | VRML,XML,Gzip |
| Standard | ISO/IEC 19775/19776/19777 |
| Website | www |
X3D (Extensible 3D) is a set ofroyalty-freeISO/IEC standards for declaratively representing3D computer graphics. X3D includes multiple graphics file formats, programming-languageAPI definitions, and run-time specifications for both delivery and integration of interactive network-capable 3D data. X3D version 4.0 has been approved byWeb3D Consortium, and is under final review by ISO/IEC as a revised International Standard (IS).
X3D is specifically designed to work across diverse devices by using the Web Architecture. X3D provides a range of 3D functionality through Profiles, from basic asset Interchange and CADInterchange to Interactive, MPEG-4 Interactive, Medical, Immersive, and Full Profiles. Anatomically thorough support is also available for Humanoid Animation (HAnim) body structure and motion. The ‘X’ in X3D means Extensible: custom vendor and research component extensions can be added to standard functionality.
X3Dfile format support includesXML, ClassicVRML, Compressed Binary Encoding (CBE) and a draftJSON encoding.Semantic Web support has also been demonstrated by aTurtle encoding. X3D became the successor to theVirtual Reality Modeling Language (VRML) in 2001.[1] X3D provides multipleextensions to VRML (e.g.CAD,geospatial,humanoid animation,NURBS, etc.), the ability to encode the scene using an XMLsyntax as well as theOpen Inventor-like syntax of VRML97, orbinary compression, with strongly typedAPIs includingECMAScript,Java,Python and other programming languages.
X3D rendering includes both classic (e.g.Blinn-Phong) and modern physically based rendering (PBR) methods matchingglTF 2.0 capabilities. Use of customshaders using three platform-specific shader languages is also defined. Authors can employ rich multimedia capabilities including various image and movie formats. Fully spatialized aural rendering applies W3CWeb Audio API capabilities, plus audio inputs digitized usingMIDI 2.0 or other sound formats.
All X3D file encodings and programming-language APIs have equivalent expressive power, matching functional definitions in the X3D Architecture standard. Thus X3D can work with open standards includingXML,Document Object Model (DOM),XPath and others.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "http://www.web3d.org/specifications/x3d-4.0.dtd"><X3Dprofile="Interchange"version="4.0"xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d-4.0.xsd"><Scene><ShapeDEF="MyTriangle"><IndexedFaceSetcoordIndex="0 1 2"><Coordinatepoint="0 0 0 1 0 0 0.5 1 0"/></IndexedFaceSet></Shape></Scene></X3D>
The VRML representation is the same asVRML § Example, except that the version numbers are changed to reflect the latest X3D standard (#X3D V4.0 utf8). An identifying DEF name is also applied as a node identifier (id).
For JSON and binary formats, see Web3D for a list of tools.[2]
There are several applications, most of which are open-source software,[3] which natively parse and interpret X3D files, including the 3D graphics and animation editorBlender[4] and the Sun Microsystems virtual world clientProject Wonderland.[5] An X3D applet is a software program that runs within a web browser and displays content in 3D, using OpenGL 3D graphics technology to display X3D content in several different browsers (IE, Safari, Firefox) across several different operating systems[6] (Windows, Mac OS X, Linux). However, X3D has not received as wide acceptance as that of other, more notable software applications.
In the 2000s, many companies such as Bitmanagement improved the quality level of virtual effects in X3D to the quality level ofDirectX 9.0c, but at the expense of using proprietary solutions. All main features including game modeling are already complete. They include multi-pass render with low level setting for Z-buffer, BlendOp, AlphaOp, Stencil,[7] Multi-texture,[8] Shader with HLSL andGLSL support,[9] real-time Render To Texture, Multi Render Target (MRT) and post-processing.[10] Many demos shows that X3D already supportslightmap,normal mapping,SSAO, CSM and real-time environment reflection along with other virtual effects.[11]
Striving to become the 3D standard for the Web, X3D is designed to be as integrated intoHTML5 pages as other XML standards such asMathML andSVG. X3DOM is a proposed syntax model and its implementation as a script library[12] that demonstrates how this integration can be achieved without a browser plugin, using onlyWebGL and JavaScript.[13]
X3D defines several profiles (sets of components) for various levels of capability including X3D Core, X3D Interchange, X3D Interactive, X3D CADInterchange, X3D Immersive, and X3D Full. Browser makers can define their own component extensions prior to submitting them for standardisation by theWeb3D Consortium. Formal review and approval is then performed byISO/IEC.
Liaison and cooperation agreements are also in place between theWeb3D Consortium and theWorld Wide Web Consortium (W3C),Open Geospatial Consortium (OGC),Digital Imaging and Communications in Medicine (DICOM) and theKhronos Group.
A subset of X3D is XMT-A, a variant ofXMT, defined inMPEG-4 Part 11. It was designed to provide a link between X3D and 3D content in MPEG-4 (BIFS).[14]
The abstract specification for X3D (ISO/IEC 19775) was first approved by the ISO in 2004. The XML and ClassicVRML encodings for X3D (ISO/IEC 19776) were first approved in 2005.[15]