[x3d-public] Blender X3D exporter: what to do, how to do it

Michalis Kamburelis michalis.kambi at gmail.com
Wed Jun 23 15:30:10 PDT 2021


Errata to what I wrote;

"""
You can transform (by keyframes) various things, in particular
transformations. Transformations can be used to directly transform
children, and/or the transformation can act as a bone, and
transforming it appropriately affects the "skin" mesh.
"""

->

You can animate (by keyframes) various things, in particular
transformations. Transformations are at Blender objects or groups (thus
transforming something visible without any skinning) and at Blender bones
(in which case they appropriately affect the associated mesh using skin).

W dniu śr., 23.06.2021 o 22:25 Michalis Kamburelis <michalis.kambi at gmail.com>
napisał(a):

> John, Joseph: thank you for comments, answers below :)
>
> > if one exports something, provide a way to import it, perhaps in another
> form.
>
> Indeed, I fully agree that it should work like that in the end.
>
> Blender glTF importer+exporter are nicely aligned in this regard: most
> things that can be exported, can also be imported, and result in the
> same thing. It is not 100% possible (as Blender features are just not
> equal to glTF features, nor to X3D features) but it's doing as good
> job as possible.
>
> But, practically, for some use-cases one way is more important than
> the other. I will go as far as say openly: "good exporter" is IMHO
> more critically needed than "good importer", because in a "normal
> workflow" the exporter is needed more. By "normal workflow" I mean
> this:
>
> - you hire a graphic artist to make 3D model for your visualization,
>
> - they work in Blender,
>
> - and at the end export from Blender to a format supported by 3D
> renderers (including, but not limited to, game engines), like to glTF
> or to X3D.
>
> In this approach (very typical in my experience) you need a good
> exporter, and you don't really need importer. I know there are
> different use-cases (I happened to work with them too), when importer
> becomes useful too, but they are just more rare --in my experience.
>
> That is why I wrote in my doc:
>
> """
> Note: There's also an X3D importer. Ideally the X3D exporter and X3D
> importer features should match (like the glTF importer + exporter).
> But for now, it is much more important IMHO to "just have a better
> exporter". Of course it depends on the use-case, but basically I would
> suggest to focus on the exporter first, and worry about importer
> later.
> """
>
> Joseph:
>
> > What is the underlying method for animation? Does Blender use
> interpolation or is every frame a keylframe
>
> Blender uses interpolation. It has keyframes. It's the same as in all
> other 3D authoring software (Blender, 3ds Max, Maya...).
>
> You can transform (by keyframes) various things, in particular
> transformations. Transformations can be used to directly transform
> children, and/or the transformation can act as a bone, and
> transforming it appropriately affects the "skin" mesh.
>
> > For hanim we need joint to skin vertx bindings and weights. How does
> Blender accomplish ‘skin’ animation driven be joint rotation?
>
> Blender has "armature with bones" (which is another way of saying
> "skin with joints"). There are multiple ways to assign weights to
> vertexes, more automatic and more manual. Joint rotation, as well as
> other joint transformation, transforms the associated vertexes with
> the given weights.
>
> In my view, Blender does support what is "industry standard for
> animation by skinning". And it is consistent with features available
> in other 3D authoring software (at least 3ds Max, Maya that I know at
> basic level).
>
> I suggested in my document to export Blender "skinned animation" to
> X3D using H-Anim, as H-Anim is the only way to make "skinned
> animation" in X3D now. And from what I understand, it has a matching
> feature set, matching also glTF skinned animation. So yes, it should
> be possible. We would have a big problem in X3D if we cannot express a
> standard approach to skinned animation :), but I believe we can.
>
> This is also somewhat connected to my other work -- I work on having a
> perfect support for both glTF and X3D in my Castle Game Engine. Right
> now we support both glTF skinned animation, and X3D H-Anim, but *not*
> through the same system underneath. But it will be improved. It will
> have to be unified at some point, going through the same system, and
> making skinned animation on GPU -- hopefully proving that both X3D and
> glTF can express the "standard skinned animation" as designed in
> Blender and similar authoring software. glTF already has proven that
> (by their Blender->glTF), I want X3D to prove it too :)
>
>
> > Trying to animate skin using coordinate interpolator(s) is entirely
> different than hanim and basically useless for hanim because this has
> nothing to do with skeleton Joint driven animations.
>
> Yes, it is something entirely different. This """fallback method that
> just exports key poses using CoordinateInterpolator""" is *not* about
> H-Anim. I clarified this in the document.
>
> Regards,
> Michalis
>
> śr., 23 cze 2021 o 19:37 Joseph D Williams <joedwil at earthlink.net>
> napisał(a):
> >
> >
> >
> >
> >
> > Support animation by interpolating object transformation (translation,
> rotation, scale).
> >
> >
> > What is the underlying method for animation? Does Blender use
> interpolation or is every frame a keylframe
> >
> >
> >
> >
> >
> > Support animation by skinning. Using H-Anim for this is the best we have
> now in X3D (despite the fact that you will call a "humanoid" things that
> are really just "any mesh under skinning").
> >
> >
> >
> > For hanim we need joint to skin vertx bindings and weights. How does
> Blender accomplish ‘skin’ animation driven be joint rotation?
> >
> >
> >
> > A fallback method that just exports key poses using
> CoordinateInterpolator may also be sensible, depending on how easy it is.
> >
> >
> >
> > Trying to animate skin using coordinate interpolator(s) is entirely
> different than hanim and basically useless for hanim because this has
> nothing to do with skeleton Joint driven animations. The only use of this
> is when the author just drags a shape around to get keyframes for an
> interpolator, which is fine for some stuff, but not emulating hanim level 1
> joint-driven animations or level 2 skin animation.
> >
> >
> >
> > Does Blender use anything like the hanimdisplacer?
> >
> >
> >
> > Unless we can retrieve a reasonable skeleton that is activated by joint
> rotations (level 1) and the skin bindings (level 2) it is not hanim and so
> no reason to even try to call it hanim export. .
> >
> >
> >
> > Thanks,
> >
> > Joe
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > From: Michalis Kamburelis
> > Sent: Tuesday, June 22, 2021 5:49 AM
> > To: X3D Graphics public mailing list
> > Subject: [x3d-public] Blender X3D exporter: what to do, how to do it
> >
> >
> >
> > I wrote a document outlining my Blender->X3D exporter wishlist, and
> >
> > how to submit patches to Blender:
> >
> >
> >
> >
> https://docs.google.com/document/d/1ad5XsU43gQGxqC7ehSBr21mdX2dQjKZCSXUQtvRwTHw/edit?usp=sharing
> >
> >
> >
> > Please feel free to distribute it to whoever is interested. Comments
> welcome :)
> >
> >
> >
> > Regards,
> >
> > Michalis
> >
> >
> >
> > _______________________________________________
> >
> > 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/20210624/e80fdd93/attachment-0001.html>


More information about the x3d-public mailing list