[X3D-Ecosystem] [Web3DConsortium/BlenderX3DSupport] Update for blender 4.2 (Issue #10)
John Carlson
yottzumm at gmail.com
Mon Sep 9 21:39:10 PDT 2024
Bujus,
I’ll try to let you know the status of my work. Most of the discussion
takes place on the x3d-ecosystem mailing list @web3d.org.
@dug9 took the blender gltf import/export and adapted it for io_scene_x3dv
then added the x3d/x3dv python module so we can export .x3d, .x3dv, and
.x3dj (JSON—not ready) outputs. Then we started on the exporter. I
developed bone animation exports and some HAnim. The HAnim exporter is
here:
https://github.com/coderextreme/BlenderX3DSupport/tree/main/io_scene_x3dv
it is in a halfway state between being developed for the loader (next) and
the importer (after that).
But we didn’t have all of HAnim, just some faked HAnimSite and HAnimSegment
nodes in output, so effort has be placed on a brand new XML loader which
does not load bones, instead it loads Objects of type EMPTY. Many X3D
nodes are loaded this way, and they have Blender names of format <XML
tag>.<DEF/USE attribute>.<id>. Id = 0 is the DEF node.
Primary things on your Blender priority list should be HAnim (humanoid
animation) and animation from .x3d XML. Also a possible simple upgrade to
Classic VRML would be nice. I have done some work on import, found here:
https://github.com/coderextreme/BlenderX3DSupport/tree/main/io_scene_x3d note
that there’s a small amount of added export code for HAnim.
So I think the X3D code should be divided into 2 modules like we are
doing. One should be blender oriented, perhaps only using EMPTYs for
Transforms and Groups, and making full use of Blender bones for HAnimJoint
animations and ask HAnimHumanoid skin and skinCoord fields for skinning.
Plus vertex groups for joints will also be involved in joints and skin
animations. If you can add EMPTYs to the bones for HAnimSites and
HAnimSegments, great! Also modify code from the io_scene_x3dv addon for
exporting bone animations along with skinCoordWeight and skinCoordIndex
fields in HAnimJoint.
I will continue to work on the non-bones export
https://github.com/coderextreme/BlenderX3DSupport/tree/main/io_scene_x3dv and
the loader:
https://github.com/coderextreme/X3DJSONLD/blob/master/blend/localfinal.py
Another thing I am working on is CoordinateInterpolator to HAnimDisplacer
conversions. I don’t think this is handled by Blender yet. Your knowledge
of Blender will be useful. Here’s my current repo:
https://github.com/coderextreme/ci2had
Note that this only has start and end keys in the interpolator. We will
have to do animation chaining (multiple TimeSensors)/concatenation or some
other technique. Or just implement both the interpolator and the
displacer. I’m at a good point in the ci2had project, but I’m looking for
skeletons to add displacers to.
My loader doesn’t currently handle Classic VRML or X3D JSON. We have ways
to convert to .x3d.
We’d love to get the full PBR extensions imported and exported from
Blender, and this will require Blender expertise. Most of my knowledge is
in HAnim. Look at X_ITE’s PBR material extension in addition to the
specifications:
https://www.web3d.org/x3d4
https://create3000.github.io/x_ite/components/shape/physicalmaterial/
https://web3d.org/pipermail/x3d-public_web3d.org/2024-June/020587.html
Note that these are in the “X_ITE” component:
https://create3000.github.io/x_ite/components/overview/#x_ite
at the bottom.
Lots of PBR stuff could be lifted from the blender gltf addon.
That’s all for now. Please work on PBR (with X_ITE) first, if there are no
higher priorities.
John
On Mon, Sep 9, 2024 at 9:46 PM BujusKrachus <notifications at github.com>
wrote:
> Hi, i'm currently the new maintainer of the blender Web3D extension
> (io_scene_x3d) as it got moved to the extensions platform (
> https://extensions.blender.org/add-ons/web3d-x3d-vrml2-format/) for
> blender 4.2+. The blender addons repository (
> https://projects.blender.org/blender/blender-addons) is now read-only and
> most addons don't get shipped by default anymore. At some random google
> search i stumbled upon this repo (quite hidden if you ask me).
>
> Are you guys planning in supporting newer blender versions and merging the
> progress anytime, or is your development just for legacy blender versions?
> I know the version difference between those projects is quite high (blender
> 4.2 vs 3.5 for x3dv and 2.93 for x3d) but maybe worth a shot, so code is
> not scattered all around the places; most API calls don't seem to have
> changed a lot (most breaking changes were from 2.79 to 2.8). Repo can be
> found here: https://projects.blender.org/extensions/io_scene_x3d
>
> Any contributions on the extension (if you don't plan to create a
> completely new extension) are welcome, even if it's just some legacy bugfix
> ports (issues from old repo that need attention are listed here (which i
> guess you may or may not have already tackled to some extent):
> https://projects.blender.org/extensions/io_scene_x3d/issues/8) or some
> docu/insights on what changes are awaiting new readers here in this repo.
> It's currently quite hard to trace down who made when what changes for what
> purpose as all seems a bit out of place and at random.
>
> @coderextreme <https://github.com/coderextreme>, @npolys
> <https://github.com/npolys>, @vincentmarchetti
> <https://github.com/vincentmarchetti>, @dug9 <https://github.com/dug9> as
> you guys seem to be the main devs here for this project
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/Web3DConsortium/BlenderX3DSupport/issues/10>, or
> unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAFMJ56FQKYCIQ5CQU6LAKDZVZMQ5AVCNFSM6AAAAABN5YH2QOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGUYTKMRXHA3DONA>
> .
> You are receiving this because you were mentioned.Message ID:
> <Web3DConsortium/BlenderX3DSupport/issues/10 at github.com>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-ecosystem_web3d.org/attachments/20240909/9786b759/attachment.html>
More information about the X3D-Ecosystem
mailing list