[x3d-public] gltf inspired binary storage

John Carlson yottzumm at gmail.com
Tue Jan 18 21:35:52 PST 2022


Andreas, would this
https://coderextreme.net/X3DJSONLD/src/main/data/flowers2.x3d example be
appropriate for a CoordinateInterpolator?  You're free to use it.  And
deploy to X3DOM test suite.  At some point, I want to hook up my flowers to
an Emitter/ParticleSystem for animation.

Binary is much faster.  I notice the difference!

Thanks!

John

On Tue, Jan 18, 2022 at 9:41 PM Andreas Plesch <andreasplesch at gmail.com>
wrote:

> Let me announce x3dom support for efficient support of large
> CoordinateInterpolator (and other) nodes by adopting gltf inspired binary
> storage of field values.
>
> Here is an example:
>
> regular CoordinateInterpolator (ca. 12MB):
>
>
> https://61e75f82d2db93000729e6a7--x3dom.netlify.app/examples/cases/coordinateInterpolator/coordinateInterpolator.html
>
> binary CoordinateInterpolator (ca. 5MB):
>
> https://61e75f82d2db93000729e6a7--x3dom.netlify.app/examples/cases/coordinateinterpolator/coordinateinterpolatorbuffer
>
> The binary version should load faster. There is no visual difference.
> There is also no performance difference after initial loading.
>
> This is useful for large keyframe animations.
>
> Background:
>
> glTF stores all data in buffers, eg. binary storage which can often be
> used directly on the GPU. The details on how the data is stored is provided
> by 'views' into the buffer and 'accessors' of views.
> x3dom implements glTF support not by translating these data structures
> into x3d field values but by implementing additional x3d nodes and fields.
> There is a 'BufferGeometry' node and additional fields such as
> BufferAccessor for Interpolators. This has the advantage that these
> additions can also be used outside of glTF.
> glTF only has support for translation, scale and rotation interpolation.
> In x3dom, buffer storage can now also be used for other interpolators. Here
> is a fuller description:
>
> https://github.com/x3dom/x3dom/wiki/Buffer-interpolators
>
> It is possible to convert regular Interpolators to buffer Interpolators.
> Here is a sample converter for CoordinateInterpolator:
>
> https://observablehq.com/@andreasplesch/x3dom-interpolator-buffer-converter
>
> In x3dom, there is also a BinaryGeometry node which is a precursor to the
> BufferGeometry node used for glTF support. Though non-standard, the
> BinaryGeometry node is very popular since it allows for faster and more
> efficient loading of large IFS. There is a converter (aopt) which generates
> BinaryGeometry. It should be possible to write another converter to
> BufferGeometry. This binary format is quite different from x3db, the Fast
> Infoset based binary encoding of x3d which requires heavy processing. With
> glTF support in x3d, there may be now more interest in glTF type binary
> storage of heavy models, perhaps leading to standardization.
>
> Any feedback or comment always welcome,
>
> Andreas
> --
> Andreas Plesch
> Waltham, MA 02453
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220118/cf832f82/attachment.html>


More information about the x3d-public mailing list