[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