[x3d-public] Beginner questions

Leonard Daly Leonard.Daly at realism.com
Tue Jan 15 08:40:14 PST 2019


Hi iam,

> Hi,
> I am new to this whole X3D thing, so had a couple of questions:
>
> 1) Where does X3D "fit in" in the whole 3D-on-the-web thing? The other 
> things here include CSS 3D transforms, WebGL (which, as I understand 
> it, will soon become WebGPU), and just....drawing on a <canvas> with 
> your own Javascript code, am I correct? So - what exactly *IS* X3D?


X3D is the only ISO standard of declarative 3D graphics with support for 
animation and interactivity. X3D is not a W3C standard

CSS 3D transforms do not really work in 3D space. They do a 3D transform 
then project back to a flat plane. There is no accounting for real 
depth. Stereographics may be possible, but it is difficult. At least a 
couple of years ago, there were no GPU optimizations, so a dynamical 
scene would be slow.

WebGL is a low level interface in a web browser to the graphics card. 
Yes you could do everything that X3D does (and more) in WebGL, but it 
would take a lot (I really mean a lot) of programming. If you really 
wanted to go that way, THREE.js or Babylon.js provide an easier to use 
programmatic interface to WebGL.

You didn't mention the following:

  * THREE.js - an open source JS library that provides a simpler access
    to WebGL
  * Babylon.js - another open source JS library like THREE. I don't
    think there is any technical differences between the two - it is
    more a matter of approach.
  * A-Frame - an open source declarative library from Mozilla. It is an
    attempt to define a game-suitable declarative language. This library
    requires additional JS code to perform many functions.
  * XSeen - an open source declarative library from Daly Realism (me).
    It is a prototype to understand what is really needed in a
    web-browser based declarative language. The language supports 3D in
    all HTML5 browsers displayed in a variety of modes (mono, stereo).
    It also tracks device motion (if the device has orientation
    sensors). It can work in VR (all objects computer generated) or AR
    (use camera with some computer generated objects) and other features.

The last two items above are declarative languages. Both are written on 
top of THREE.js and are fully integrated with HTML. X3D is not 
HTML-integratable because it has a node name conflict (script), event 
handling is incompatible, and some fundamental design concepts do not 
match between HTML5 and X3D (V3.3).


> 2) What is the connection between X3D and glTF? glTF is just a model 
> format, right? So - is X3D capable of "drawing" glTF models or 
> something, with Javascript?

Using X3D V3.3 and glTF V2.0.

glTF supports animated models with physically-based rendering (PBR). It 
also has many of the interactive and environment features that X3D does.

X3D does not support PBR. It does have more interactive and general 
graphics features that are not present in glTF.


> 3) What is X3D's connection to VRML? Is it the successor? What does 
> that mean, exactly?

X3D is the evolutionary successor to VRML. The VRML standard still 
exists because many software applications/libraries support it. Most all 
code written in VRML will run in X3D. The exceptions usually involve 
Scene Application Interface (X3D's API).


> 4) Is it possible to make GAMES, or other, interactive 3D, in it? eg. 
> like Quake or something, when the "up" key is pressed, it has to go 
> *forward* - can X3D do that??

Michalis Kamburelis has done a lot in this area with his Castle Game 
Engine. He is on this list and I hope responds here.


> 5) I heard that it's possible to do *character animation* in X3D, ie. 
> you can tamper with the mesh of say, a man, in Javascript  - how do I 
> do that? Is there information about this in the Don Brutzman and 
> Leonard Daly book? (thanks for your help with my previous query, btw, 
> Don! :) )

X3D V3.3 uses the H-Anim V1 standard. H-Anim V2 has just been released, 
but is not incorporated in X3D (yet). X3D animation is not defined to 
use the GPU for calculations. It makes mesh changes from skeleton 
animation very slow or jerky. There has been some with with X3DOM (X3D 
adapted for HTML) that may suit your needs. Note that the terminology 
used in H-Anim is not the same as used in industry-standard animation.

Mesh animation is achieved with the CoordinateInterpolator node. 
Skeleton animation that changes a mesh needs to run through H-Anim. Very 
little standard character animation (as seen in movies, TV, games, etc.) 
has been done in X3D.


> 6) And finally, I've heard about the new Nvidia cards which do 
> Realtime Raytracing - is it possible to have photoreal graphics inside 
> a web browser by using X3D?

The X3D lighting model is 20+ years old and very much based on 
simplifications designed for graphics processors at that time. There is 
no reason that the X3D browser cannot use ray tracing; however, adhering 
to the X3D lighting equations may lead to less than desirable results.


>
> Ok, that's it. Hope I haven't bugged you too much with my questions :)


No worries, these are important to ask.


Leonard Daly



>
> Thanks for you guys' help.
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org


-- 
*Leonard Daly*
3D Systems & Cloud Consultant
LA ACM SIGGRAPH Past Chair
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20190115/4e3c1786/attachment.html>


More information about the x3d-public mailing list