[x3d-public] wondering about glTF and Draco relationship

Michalis Kamburelis michalis.kambi at gmail.com
Mon Apr 26 04:19:37 PDT 2021


DRACO is a format for compressing per-vertex data. (coordinates,
texture coordinates etc.)

In glTF, instead of supplying binary per-vertex data "as is" (in the
format that can be directly uploaded to GPU), you can compress it with
DRACO. It is a way to compress that was deliberately designed for
typical 3D per-vertex data, so it can achieve a very good compression,
and yet is very fast to "decode". (And you need to decode it, on CPU,
before uploading to GPU.)

There is nothing we can do about it within X3D 4, as X3D doesn't
support binary vertex data at all now, not in the format friendly for
GPU. We have some way to go before we get there in X3D. Support for
"binary data" in X3D, equivalent to glTF, is something I'd like to
work on during X3D 4.x timeline. But it is not something we can push
for X3D 4.0, it's a lot of work, glTF is way ahead of X3D in this
regard. I wrote about it on
https://github.com/michaliskambi/x3d-tests/wiki/Binary-meshes . I do
not really think it will be related to "X3D Compressed Binary
Encoding", which is an obsolete idea IMHO (it doesn't address the
"friendly layout for GPU" by design). glTF presents a much more
efficient approach already, by "buffers" and their "accessors" and I
think we should just copy glTF idea in this regard. See that wiki
page, it has examples how X3DOM does it already.

So right now, glTF importers -> X3D have to "unpack" glTF binary data
into X3D structures like Coordinate and Normal nodes (regardless of
whether glTF uses DRACO or not).

I do not think we need to address it in any way for X3D 4.0. In future X3D
- support for binary buffers + accesors is coming
- and then, naturally, support for DRACO will be possible.

Regards,
Michalis

czw., 22 kwi 2021 o 17:24 Don Brutzman <brutzman at nps.edu> napisał(a):
>
> Hello Web3D-Khronos Liaison Experts!  Here are some public questions for you, originating in our CAD Design Printing Scanning and X3D Working Groups.
>
> Question about Draco: thought it was usable as a preprocessor for glTF files that could produce .glb files, but is that incorrect?
>
> * https://google.github.io/draco
>
> "Draco is an open-source library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics."
>
> If Draco is compatible with glTF do we need to mention it (as an optional perhaps) in X3D4?
>
> If Draco-compressed files are not compatible with glTF files, what is the relationship?  What are their intentions?
>
> Near-term impact: do we need to add any comments in X3D4 submission to ISO ballot (deadline 5 May)?
>
> Long-term impact: can we encourage use of Draco-processed loading of glTF models, or will we need to wait until revisiting X3D Compressed Binary Encoding?
>
> Thanks in advance for all inquiry and insight.
>
> all the best, Don
> --
> Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
> X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman



More information about the x3d-public mailing list