excessive / iqm-exm Goto Github PK
View Code? Open in Web Editor NEWIQM & EXM model format specs, Blender exporter, and LÖVE loader.
License: The Unlicense
IQM & EXM model format specs, Blender exporter, and LÖVE loader.
License: The Unlicense
bones that have constraints, don't inherit some transforms etc sometimes export incorrectly.
been working on this and it seems to be a bad quaternion conversion, but I haven't been able to fix it yet.
figured I'd leave an issue up about this: future features wishlist. implementation details not required.
feedback/ideas are very much welcome, and everything is valuable. I intend for this format to remain opinionated (i.e. unlike glTF - things work exactly one way, with minimal indirection and an explicit focus on games and simplicity) and try to stay lean, but that doesn't mean we can't think up all kinds of things!
these don't all have to be good and fully thought out ideas, just some potential nice-to-haves to be thought of in depth at a later time. bonus points if they don't increase minimum required complexity to load a valid file.
ideally, new features will degrade nicely for existing readers and incomplete implementations, i.e. an older or minimal reader which doesn't support a given feature can still render a mesh correctly.
I have utterly no idea if upstream will ever update the format, but it seems unlikely. will change the format magic if compat is meaningfully broken ever.
commits after blender revision de491abf996281785391b18b3547d1bff305355f break this exporter, and frankly I have no idea why others aren't affected.
animations become completely hosed, like so:
https://developer.blender.org/rBde491abf996281785391b18b3547d1bff305355f#208632
I've got no clue what's going wrong yet to reduce this into a repro and was essentially told to fuck off without it, so I'm leaving this here for now.
if you are affected right now and need animations to work, build blender revision 38ef3d6b91e128c93557991cb8cb9911c9b21f90
logging so i don't forget: this might cause inconsistent exports between 2.92 and 2.93+ https://developer.blender.org/D10956
hi there, a friend of mine and i were trying to modify your script to do this but ran into some weird errors.
exm_export.py.txt
and a copy of the error :
error.txt
iqm's spec leaves some ambiguity which needs to be cleared up, especially by leaving the coordinate system unspecified (i.e. "use blender's").
exm should actually specify that it uses blender's z-up. iqm spec text should be clarified for what it actually does right now.
will need to begin to formalize the metadata block
IQE was kind of a bad idea (never quite matched the binary format, tons of extra export code, another format to support entirely...), but being able to inspect files in a human readable way is very useful. tools for inspecting model data would be worthwhile.
the entire export params nonsense needs to be gutted and switched with NLA, as it is actually designed for animating. unsure how to handle looping flag (magic names?)
also, when working on anything but the current (editing) NLA strip, export errors out from messing with read only params.
So for some reason or another, blender decided to export what I'm assuming from the filesize is an empty mesh, and iqm.lua doesn't know what to make of it.
the iqm file:
https://alloyed.me/shared/probably_empty.iqm
traceback:
Error: rocks/share/lua/5.1/iqm/init.lua:173: declaration specifier expected near ';' at line 2
stack traceback:
[C]: in function 'cdef'
rocks/share/lua/5.1/iqm/init.lua:173: in function 'load'
render.lua:94: in function 'f'
main.lua:56: in function 'load_assets'
main.lua:68: in function 'newA'
rocks/share/lua/5.1/gabe/love.lua:20: in function 'load'
[string "boot.lua"]:437: in function <[string "boot.lua"]:433>
[C]: in function 'xpcall'
I haven't read the spec, so it might be that blender spit out an entirely invalid file. The details for that, just in case
sample models other than cthulhu from the love3d-demos repo would be helpful for people implementing support for the format who need something to test against.
parsing json is very slow, a hassle to do when using a language that doesn't provide it (i.e. C, C++), and inflates file sizes.
need to think about an efficient and simple structure for the scene metadata, and switch it from using a json comment to iqm extensions. no header changes will be required, so this will only impact compatibility if you use the existing json data.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.