Related technologies

From Declarative 3D for the Web Architecture
Jump to: navigation, search

Related and/or Competing

Keep in mind that comparisons between Declarative 3D and the technologies discussed here are often misconception of the goals of Declarative 3D. It is important to realize that Declarative 3D extends and integrates web browsers with 3D graphics. There are many useful and important 3D technologies some that sit inside of web pages. However the goal of this work is to make 3D graphics and graphic elements first class citizen's within the web browser. Key to this is to place 3D elements themselves directly into the DOM which is rendered by the browser. The rendering may utilize any number of technologies but the semantic elements of the 3D graphics must be directly in the DOM. This allows leveraging of the rich and growing collection of web development tools, which may now be applied to 3D graphics.

WebGL

WebGL is a low-level JavaScript API that allows hardware accelerated 3D graphics to be rendered on an <canvas> element. This API is made by gfx-coders, designed for gfx-coders who know how to deal with a 4×4 transformation matrix and speak GLSL as their first language. Most web-page developer have a different profile. They just would like to build their 3D-UI, Visual-Analytics or Web-Shop application and want to utilize some 3D technology.

If you build the next high-end browser-based online game or visualization demo, use WebGL.

X3D

Extensible 3D (X3D) Graphics is an ISO standard graphics format for interactive 3D graphics. X3D also defines a run-time architecture that can be captured in various file formats (XML based, Classic VRML encoding, and Compressed Binary encoding). The ability for interacting with the scene graph is provided through the Scene Access Interface (SAI) and is not natively available through direct DOM API access. The X3DOM Framework extends the ISO standard by providing manipulation of the X3D graph through direct DOM object calls.

COLLADA

COLLADA is a 3D graphics format, designed for efficient exchange of 3D data assets. However, a wide range of WebGL libraries support loading of COLLADA models. Thus it's probably the most often used 3D graphics format for the Web. The Collada specification does not include, unlike X3D, a runtime or event model, which is needed for per-frame updates on the 3D-side (e.g. animations).

For more background information about how Collada and X3D relate and "why X3D is ideal for the Web" please read the Whitepaper by Rémi Arnaud and Tony Parisi.

Comparison

Feature Matrix
SVG X3D Collada WebGL Declarative 3D (X3DOM/XML3D)
Supports 3D content x x x x
Designed to be used in a Web-Page x x x x
DOM Interaction x x
Declarative scenegraph x x x x
CSS Integration x x
Scripting access x x x x