Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

relationship/comparison between X3D, SVG, WebGL, VRML reading?

Tags:

html

vrml

x3d

I'm trying to be get an idea what the relationship between each of these are. Such as:

  • Which is just a replacement for the other (and why) - e.g. X3D replaces VRML?
  • what can one do that the other cannot - e.g. SVG cannot create 3D worlds but the others can?
  • Which is higher level - e.g. WebGL higher level than X3D
  • Which is / is more likely to be a W3 standard and thus supported by popular browsers
  • Which is the easiest to create nice looking worlds in / what features do they support - e.g. X3D supports Ray Tracing and the others don't

I'm sure these questions have been asked before and someone has written a nice article summarizing this information so that people like me who want to learn and use one of them can make an informed decision without worrying about future compatibility/migration issues.

Is there any recommended reading addressing all these and related technologies?

like image 897
Sridhar Sarnobat Avatar asked Feb 08 '12 20:02

Sridhar Sarnobat


2 Answers

  • X3D is indeed a scenegraph representation of 3D worlds, and it replaces VRML. I agree with point 1 above.
  • With the JavaScript library X3DOM, X3D scenes become part of the HTML DOM, i.e. standard DOM manipulation and event handling can be used to represent and interact with 3D scenes and all the objects therein. This is analogous to SVG for 2D scenes: each SVG object becomes a DOM object.
  • WebGL is for low-level 3D rendering (like OpenGL) in the browser.
  • X3DOM can use WebGL to do its rendering directly in the browser, without any plugins.
  • You could use X3DOM on top of WebGL to build plugin-less HTML DOM-based 3D worlds in the browser, or you could use something like three.js instead of x3dom. Both three.js and X3DOM are at a higher level than WebGL.
  • These slides give a good X3DOM overview, including simple examples: http://www.slideshare.net/jsalonen/x3dom-an-overview-and-examples
  • X3D does support volume rendering (raycasting): http://www.web3d.org/x3d/content/examples/Basic/VolumeRendering/ -- I have not yet seen raytracing examples.
like image 110
Charl Botha Avatar answered Jan 04 '23 09:01

Charl Botha


1) X3D (~2005) is a successor to VRML (~1998). Both are iso standards and managed by the same organization: The web3d consortium: web3d.org

2) The VRML-spec includes a single file format and runtime behavior for dynamic, interactive but single-user 3d scenes and/or worlds. It defines around 80 different nodes (e.g 3d-meshes, materials, transforms, lights, viewpoints, ...) which can be used to describe the content. The X3D-spec just builds on VRML and includes not one but three file encodings: classic (just like VRML), XML and binary and new news and components includes NURBS, particles, ...

3) X3D, as a scene-graph system, is higher the OpenSG and WebGL

4) There are people believing both should be part of the W3C spec: http://www.w3.org/community/declarative3d/

5) Usually it's easier to build and prototype with X3D but with OpenGL/WebGL you have (almost) direct access to your GPU and have more freedom to create whatever demands your application has. But there are also projects to combine both: www.x3dom.org

like image 30
Rudi Avatar answered Jan 04 '23 10:01

Rudi