Xbuf format – A developer friendly game exchange format for 3d data

@atomix said: Hi,

I’ve written too much. :slight_smile: So one question for TL;DR:
What is the benefit of use this instead of OGEX:
For OGEX:

  • you have to use ogex exporter and then write an importer for your specific need?

It’s already a hard part, else jMonkeyEngine already have it (error detection, recovery, semantic,…). pspeed wrote jogex (iirc not finished) a java parser for opengex that create the memory structure. This part, that is auto-generated by protobuf for pgex, already takes lot of works and need to be maintained.
On other side, OpenGEX already include bone, animation, skin. stuff that pgex didn’t include (part of the TODO list).

@atomix said: For pgex: 1 - Exported into ogex, You just have to write an "extracter" that take info from a parser ( generated for your language). 2 - if ogex not supported You just have to write an "exporter", and also benefit with the parser.

Sorry, I don’t understand. ogex == OpenGEX != pgex

@atomix said: In 1, I see quite attractive advantages, but note that it's only for 3d model without any other things right now. In 2, I see a lot of extra steps: - I have to write into binary format - write a protobuff schema - pgex help me in the middle - later I need an extractor.

Even if I can write a protobuff for blender, it may not worth the effort I have to spend. And use protobuff for parse a text file .obj for example sound pretty dumb.

You don’t need to write a protobuff schema, except if you want to create an pgex extension for an uncommon usage (no requirement to be supported by other pgex tool).

I don’t understand the relation between protobuff and .obj.

About blender and jme, I already create the base code (blender exporter and jmonkey importer), as POC. Now I add “feature” in pgex and I don’t care about binary encoder/decoder (it’s the job of protobuff + pgex). I only care about mapping between 2 memory “schemas”

I relink a video about a tool I work on where I used pgex (for a part of the communication) of jme3-as-blender-renderer

For pgex: 1 – Exported into pgex, You just have to write an “extracter” that take info from a parser ( generated for your language). 2 – if pgex not supported You just have to write an “exporter”, and also benefit with the parser.

Sorry, twisted mind.

From what I understand from your answer:
– I have to write into binary format (pgex to be specific)
– write a protobuff schema
– pgex help me in the middle
– later I need an extractor.

.Obj is a text-based 3d model file. How can pgex help in exchange such file?

  • Write exporter to save into pgex, then benefit from the parser part. Like what you do with Blender?
  • Open in Blender the .obj file, and save into pgex.

Thanks for your answer. Cheers,

.obj -> .pgex could be done by a converter able to export into .pgex.
Today only Blender is able to export to .pgex. But due “to ease” to write .pgex I hope assimp or other can support it later.

There is no magic or universal. I just try to find a solution of the poor support of existing format (obj, fbx, blend,…) : hard to code valid exporter/importer.

I didn’t think this was a good idea but now that Eric Lengyel (the OpenGEX developer) probably moved himself into a corner with his silly Linux-ragequit you might just have a chance with it ^^

I often had bad idea, it’s why I ask your opinion. Future will tell.

I hope to be able to implement basic animation support before end of january 2015.

Update:

  • pgex is renamed “xbuf” to aboid conflict and confusion with OpenGEX, so I rename this topic, repository, package,…
  • I failed to implement basic animation before end of january. Today I have basic animation of object

see

Some news:

  1. xbuf (previously pgex) has support for object animation and skeletal animation
  2. I’m grouping repository and communication about xbuf, jme in blender, remote editor under xbuf umbrella (so future update of the blender plugin will be on this topic)

The latest video I made one month ago about blender/xbuf/jme

The new repository organisation : xbuf · GitHub
The new website (wip) : http://www.xbuf.org/

comments, bugs, suggestions, logos are welcome.

3 Likes

Wait it can already do animation? O.o thats pretty amazing for the short development time :smile:

Indeed… I may have to try this out soon myself.

Request for assets: If you have already working model (jme ready asset), can you share some of them with me to test.
For each I need :

  • the .blend
  • a screenshot of the model imported into jme
  • how do you import it (via jme blender importer 3.0 or 3.1, ogre xml exporter (link to your exporter version)
  • license, and if I can share and store the model on public repo (github or http file server) or not (No by default)
  • what is the “interest” point to take care (eg, skeleton, material, lighting, mesh, …)

Thanks

A blacksmith building model, from blendswap (http://www.blendswap.com/blends/view/75729) and made jme-ready by me. The license is CC0.

Blender file: http://www.fileconvoy.com/dfl.php?id=g160a51fd58166105999693193d5bf3461c0fbd36b

Screenshot:

I import it via Ogre with the version 0.6 (http://code.google.com/p/blender2ogre/downloads/detail?name=blender2ogre-0.6.0.zip&can=2&q=)

Nothing really special about the model. It has a lot of materials and textures though.

Thanks to @mathiasj and @Empire_Phoenix for your model, they already help me to detect issue (not yet fixed).

Anyways I wrote a quick doc/guide (README + wiki) to help you start to use xbuf / blender + jme at jme3_xbuf

@RiccardoBlb I hope you’ll give another try.

Thanks for any help, comments.

1 Like

Sure.
I tried it just now, but I’ve had another issue… the 0.5.1 version somehow doesn’t show up in blender 2.74.
https://googledrive.com/host/0BwOEIhbHMKaFc3hBYWRzbU1IdTg#.png

you unzip the archive manually ? because if you call “install from zip” from blender the created directory will be blender_io_xbuf without version number. (the directory name is like a java package). try rename or use install from file (and select the downloaded zip)

I didn’t, the ‘Install from zip’ extracts the directory with the version number. Anyway i renamed it and now it’s working.

Thanks for the feedback I’ll recheck the process on an other env.

Oh:/
There is something really weird… i can see only one geometry at time with the external render, like when i go near to one, the other one disappears. I can provide a video if you want.
Also, when the xbuff render is enabled in blender, the texture panel is blank.

Yes, video or a set of screenshot are welcome, maybe open an issue on github if you have a account (to help track the issue). I got some issue with camera fov some time ago, may I migrate the wrong code under xbuf org.

Thanks, I’ll take a look tomorrow (time to sleep). If you find other issue create as many ticket as needed.