[x3d-public] X3D V4 Draft Requirements Proposal

Leonard Daly Leonard.Daly at realism.com
Mon Mar 27 21:56:41 PDT 2017


On 3/27/2017 8:05 PM, Andreas Plesch wrote:
> Hi Leonard,
>
> this is a good, demanding list. Some quick comments below.

Thanks Andreas. Comments below. Some extra stuff removed for clarity.


>
>
>     1) Look "like" HTML (5).
>        a) Elements (nodes in X3D-speak) shall be case independent
>        b) Attributes (fields in X3D-speak) shall be case independent
>        c) X3D nodes shall not have name conflicts with any
>     HTML-defined elements
>
>
> I believe the HTML5 Custom Elements spec requires a prefix-name format 
> for element names. While allowing lowercase should we also allow 
> 'x3d-transform' format alternative names ?

In that case, each node would be aliased with a HTML5 Custom Element 
compatible name. I don't know the answer. It might depend on how 
"integrated" the spec is with HTML.


>
>
>        d) All X3D nodes shall support all HTML Global Attributes
>     (https://www.w3schools.com/tags/ref_standardattributes.asp
>     <https://www.w3schools.com/tags/ref_standardattributes.asp>)
>
>
> Is this equivalent to requiring that X3D nodes need to derive from 
> HTMLElement as defined in the DOM ?

Interesting point. If so, I wonder what else that requires for each X3D 
node.


>     2) Function "like" HTML (5).
>        a) All nodes shall be fully integrated with the DOM [This may
>     need to
>     change if certain nodes need to remain hidden from the DOM. For
>     example,
>     the manner which X3DOM implements Inline.]
>        b) The scene graph does not need to be DOM (or a portion of it).
>
>
> Not sure I can follow here.

X3DOM keeps a separate scene graph from the DOM. The rendering occurs 
from the scene graph. Changes to the DOM cause changes to the scene 
graph and vice versa. I did not want to preclude that operation.


>
>        c) Changes to the DOM shall be reflected in the scene graph
>        d) Changes to the scene graph shall be reflected in the DOM
>
>
> Using the DOM to maintain and reflect state is often considered slow. 
> Could d) be optional ? Changes to the scene graph cause events which 
> can be listened to if required. (This is why cobweb-dom does not 
> reflect back interpolator output to the DOM at this point).

Perhaps it is better to set all current fields that are initialized to 
be (generally) non-updated. If you want to see a particular value, you 
need to listen to the appropriate event. Certain events would cause the 
initialized fields to be updated. I know that this is not written well.


>
>        e) Events are handled as HTML events
>        f) DOM is the external (i.e., from the web page) API to the
>     scene graph
>
>
> X3dom does it that way. One could add that this external API could be 
> implemented using the SAI thereby guaranteeing X3D event flow determinism.

Would it be possible to implement the SAI over DOM? I am concerned about 
having more than one fundamental API. It will cause confusion and errors.


>
>
>     3) X3D shall support the evolving web standards for flat-3D
>     (WebGL), VR
>     (WebVR) and AR (nothing yet).
>
>
> I still want to complete my diff between webvr draft standard and x3d. 
> However, it looks like the webvr standard already evolved quite a bit.

I'd like to see that when you are done.


>
>     5) Additional features shall be added
>        a) Deformable-skin joint based animation
>        b) Support for multiple geometry formats, including OBJ, glTF
>
>
> I have a pretty good idea about gltf2 support in x3dom, see my x3dom 
> GitHub issue. But since it is quite a bit of work, it will be some 
> time/use case.
>
>        c) Increased Material support with a standard library of
>     pre-defined
>     shaders
>
>
> Three.js has good shaders including for PBR. But again quite a bit of 
> work. Not sure if Fraunhofer is that engaged since there may be 
> commercialization interest.

Including programmable shaders in declarative language and not providing 
pre-defined operations seems like a poor choice. This is an attempt to 
start to rectify it.


>
>        d) Mechanism to navigate a scene without a pointing device
>        e) Mechanism to touch or select objects without a pointing device
>
>
> Or with wand or controller.
>
>        f) Review other 3D/VR display technologies (XML3D, A-Frame, GLAM,
>     etc.) to determine if there are features that should be included
>
>
> The three.js examples are also inspiring. Postprocessing of the 
> rendered frame in another shader stage comes to mind.  There are 
> probably many more modern graphics methods which need some support. 
> Ambient occlusion ssao ? Motion blur ? Distance defocus ?
>
> Generally, the vrml spec. was written before the advent of powerful 
> GPUs (massively parallel super computers) where it now can be faster 
> to repeat the same fragment shader operation for each pixel (perhaps a 
> million times) rather than update data between cpu and gpu once. Not 
> sure what the consequences exactly are other than being shader 
> friendly in some way.

Deformable skin from joint animation calculations are typically carried 
out on the GPU. Too much for serial processors. I'm sure there are other 
items.


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


More information about the x3d-public mailing list