Page 1 of 1

Metasequoia MQO

Posted: Sat Mar 10, 2012 7:31 am
by finale00
http://db.tt/5hKTlxiL

Common japanese model format, since it is a very simple format and easy to understand.
The tool is also pretty easy to use as well and has a bunch of plugins.

A good format for getting to know how the basics in 3D work since you can just throw together some 3D model in the editor and then look at the file in notepad.

Also a good exercise for text parsing.
How I'm parsing it is actually pretty crude; especially when extracting the different values.

Anyone have any better ideas how I should be parsing the file?
Actually, I think trying to split each field in each line is actually a great programming exercise LOL

Some samples from FF11

https://docs.google.com/open?id=0BxmE9E ... EyYzkyMGJl

Re: Metasequoia MQO

Posted: Sat Mar 10, 2012 8:23 am
by Acewell
Thanks for sharing, there is also an *.mqo import/export plugin that works with the free Softimage Modtool 7.5 explained here:
http://nullorempry.jimdo.com/work-list/softimage/

You can download it here:
https://skydrive.live.com/?cid=CE4C74ED ... 3245%21164

Re: Metasequoia MQO

Posted: Sat Mar 10, 2012 8:51 am
by finale00
Cool, it's nice to see more MQO support out there lol

But man, how do I actually parse these things.

Code: Select all

"textureAlexander0" col(1.000 1.000 1.000 1.000) dif(1.000) amb(0.250) emi(0.250) spc(0.000) power(5.00) tex("Alexander0.bmp")
I guess I'll need to come up with a regex to split this...

EDIT: stackoverflow is awesome.

Re: Metasequoia MQO

Posted: Sat Mar 10, 2012 5:13 pm
by finale00
Here's something I hacked together.
Clearly text parsing can get a little messy especially when trying to convert values from string to float/int, with calls to the map function everywhere (it's similar to the map function in lisp languages). A simple analysis would show that there's huge overhead just to throw stuff in one place, then pick them out and throw them into another place while converting from string to float to bytes...

It's even worse when UV's are stored per-face.

http://db.tt/2yDxygHC

Maybe I should try doing it in immediate mode to see if it is any better.

Re: Metasequoia MQO

Posted: Sat Mar 10, 2012 8:37 pm
by Ninja
There is a java applet you could rip the parser out of, it's down atm, so uploaded the java code for you as well.
Applet :- http://d00.cool.ne.jp/metase/mqov/v1_3/ku.html
Java code :- http://uppit.com/w6c0zl719mol/mqo3k.zip

There's also 3dsmax plugins for this format.

I hate writing mqo converters, when exporting to that format I always resort to dumping the UVs to a temp file - lazy.
And for importing mqo files, you got to evade the vertex colors, weights and blobs, as well as contend with 2,3 and 4 vertex polygons.

Seriously though, it is pretty easy to convert, and very useful software, my main modeler, use 3dsmax for the stuff it can't do, like render.
Use it to view vertices only, 2 V(0,0), great for making random point clouds.

Re: Metasequoia MQO

Posted: Sat Mar 10, 2012 9:02 pm
by finale00
MQO is structured pretty well so if I'm reading a struct that I want, I can parse it, else I just skip. The regex I got for parsing each line into tokens makes it much easier to work with.

I use a "skip to next struct" function which will just keep skipping lines until I read a line starting with Scene, Material, Object, or EOF. Of course atm noesis will crash on non-utf8 strings cause I can't specify the encoding I want to use when reading lines.

I think the main problem I'm having with per-face formats is that...well it's per-face lol the output looks kind of funny and wrong when I use immediate mode rendering for unknown reasons.

Re: Metasequoia MQO

Posted: Fri Mar 16, 2012 9:58 pm
by finale00
Wow, the author decided to mix binary data and text data together...

I mean I guess everything can be parsed as a binary file, but really..? It looks like it was meant to be a text file!

This occurs in the Object struct where it says "BVertex" rather than "vertex". The file uses 3 floats, in binary, to define the coords.