jME binary size much smaller

While working on the MD3 format I found out Quake uses some Loss Compression for their Vertex and Normal info. I made that part of JmeBinaryReader/Writer as an option (off by default) and compressing Vertex and Normal information Dr.Freak goes from over a meg large to almost the same size as drfreak.md2 After zipping both the diffrence is even less. Just setProperty("q3norm","true") or setProperty("q3vert","true") like Md2ToJme.convert() does. You could probably do loss compression on Normals for every model and never see the diffrence.

drfreak.md2 before zip is 411kb

drfreak.jme after zip is 379kb (with Loss Compression)

drfreak.md2 after zip is 258kb

Not a big diffrence at all in size with no noticable diffrence while playing and the load time is very much the same.

well done, truly well done.


Is there a patent on Loss Compression?

ID says we can use their file formats all we want, just not their tools so it should be ok. Loss compression is a very common idea (you see it a lot in .jpg for instance), so I doubt this version of loss compression is anything special.

Either way, I’m thinking up a more generic loss compression that should work will all models and not look choppy (for example, when I use quake’s loss compression on ms3d files they loose their full roundness). My new idea involves storing shorts instead of floats for vertex positions and giving each array a single float “scale” value for all of the array’s shorts.

well not a bad question…gif patent problems I think where for the compression algo…and ID says yep, not use their tools…but i also read their technologies…that could include formats…but as they specifically said -seems they did- that formats like md3, bsp, etc, are free…

Then…I suppose as long as u don’t use the id tools you’r fine.