[x3d-public] Proposal: sharedKeyDEF, sharedKeyUSE

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Mon Oct 9 16:32:53 PDT 2023


Thanks for a good idea. It has come up before. We decided not to do that in the X3D architecture.

I could think of a few alternative ways to implementers might want to do this.

  *   use source code, for example, JavaScript or Java or python
  *   It is possible to put those array values in a MetadataFloat node. That node might be used by a Script node, that pass the values at runtime to the corresponding interpolators.
  *   If such a technique is shown to be useful in practice, then you could write a prototype declaration to facilitate reuse.

Of course, BVH and HAnimMotion were all successfully designed to reduce the need for more verbose interpolators.

As our compression tools become more competent, I expect that they will have no trouble reducing the size of models with such repetitive large float values.

Bandwidth and disk sizes keep increasing too…

And so, there are plenty of good options without resorting to reengineering the language.

Have fun with X3D!  😀

v/r Don
________________________________
From: x3d-public <x3d-public-bounces at web3d.org> on behalf of John Carlson <yottzumm at gmail.com>
Sent: Monday, October 9, 2023 4:09:43 PM
To: X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: [x3d-public] Proposal: sharedKeyDEF, sharedKeyUSE

Proposal to share keys between Interpolators to reduce file size.

A big part of the increased file size for animations is the duplication of the key fields in Interpolators.  My proposal is to add two fields, a DEF-like field and a USE-like field to all? Interpolator definitions in the standard.

The first interpolator in a shared key group would have a keyDEF field naming the group.  A shared key field would be specified in the first interpolator, but not subsequent interpolators.  Subsequent interpolators in the group would have a keyUSE field referring to the shared key group.  Subsequent Interpolators would not have a key field.  A keyValue which is not shared would also be specified in all the interpolators.

Different types of interpolators could share key values this way.

This is already basically done for HAnimMotion, but HAnim lacks the nonlinear aspect of interpolator keys, which could be added to HAnimMotion if not there.

This could be done with CSS class in HTML.

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20231009/d71b3b06/attachment-0001.html>


More information about the x3d-public mailing list