mosra / magnum

Lightweight and modular C++11 graphics middleware for games and data visualization
https://magnum.graphics/
Other
4.76k stars 437 forks source link

OpenDDL/OpenGEX importer #44

Closed ghost closed 9 years ago

ghost commented 10 years ago

I'd love to see support for this standard (OpenDDL/OpenGEX) made as a first class citizen within the library. I have an implementation (https://github.com/dysfictional/openddl) in progress that I'd be happy to have included at which time we're both happy with it.

mosra commented 10 years ago

Yes! I'd love that too. The current Collada importer is in bad state, Collada support in 3D editors (e.g. Blender) isn't advancing much further, the format is underspecified and parsing all that cross-referenced XML mess isn't anything I would particularly enjoy :-)

In fact I planned to start implementing this as soon as the Blender exporter is done to have something to test with (I don't have Maya or Max). Also Eric Lengyel promised that he will release reference OpenDDL parser at some time, which could be eventually built upon.

ghost commented 10 years ago

I own a license to the C4 Engine which has the code in place as is, but the code is under NDA. So given some time on my hands I want to write a test suite to compare parsing implementations to see if my code's behavior conforms to the reference implementation. No ETA on the Blender exporter yet, though is apparently in the works.

mosra commented 10 years ago

That would be great.

On the engine side I need to "invent" missing APIs for animation, lighting, camera properties etc., currently there is only rudimentary support for meshes, materials and scene hierarchy, which isn't nearly enough for serious usage. The APIs will be part of the core library, but I think it would be best to include the importer only as a plugin (similarly to ColladaImporter) to keep the core library as small as possible.

ghost commented 10 years ago

That sounds logical.

I was thinking OpenDDL could form a general purpose format for serialising user configuration and such (via plugin)

ghost commented 10 years ago

The Blender exporter is due to come out after GDC2014.

My parser is nearing the alpha milestone and definitely hackable if that's your thing.

mosra commented 10 years ago

Thanks for the info!

ghost commented 10 years ago

The OpenDDL parser library now has the features required to build an importer on top of it.

mosra commented 9 years ago

Update: Blender OpenGEX exporter is now in beta, I'm slowly starting importer plugin implementation. There is template code on the official website, but it does not fit my API decisions, so I need to write the parser from scratch.

ghost commented 9 years ago

You may be interested in my project which at the moment provides a fairly low level Lexer front end. https://github.com/stoneware/oddl

mosra commented 9 years ago

Hi, I wondered where all the code went... :) I already have fairly complete OpenDDL parsing code, just need to write tests for everything. Thanks though.

mosra commented 9 years ago

I finally published first OpenDDL parser implementation. You can watch the progress in the opengex branch of magnum-plugins repo, but be aware that the API and functionality may change significantly before I put it in master. What's currently done:

After all these boxes are ticked, the OpenGEX parser will be able to replace and deprecate COLLADA importer, closing this issue. More functionality will be added afterwards.

mosra commented 9 years ago

Uhh, I totally finally did it. The last bit (documentation) is in mosra/magnum-plugins@0dacf34ab7011828fa7c3f488cf70fc15874c89d, documentation upload is currently in progress.

It took me only 13 months to close this issue, yay!