.X Support

I think a .x exporter may be in order. Been playing with it a bit and it supports skeletal animation (not sure about the whole weighted bone issue), but there are a lot of X models out there and this might help any converts from DirectX.


[BTW, OT: my scanner died. I had done a new drawing for the monkey, for u to see if you prefer it]

X supports bones, and totally weihts too.

Is a very nice format for artists.

I have a collection of artist tools, most free ones for x.

I will post now another thread in you GRAPHICS forum section the announce of x exporter beta. Is not the final one, and is only recommended fo rvery experienced blender users. As still have some stuff to polish.

[ The 2.34 Blender version is going to be very powerful. I am like a “private” beta tester for the x exporter script for blender. And his author now allowed me to post a beta version of it, the latest.

The very latest is comited now to blender cvs, but seems is practically the same that this I am posting. next, the author is going to try the little problem there remains. And will be included in export dialogs of blender, so will be much easier to handle for Blender newbies. ]

I have had several experiences with x files. I produced work in that format, used a lot for conversions between my own 3d tools, and helped a lot to 2 game engines, Irrlicht and Urgh. both succeeded finally in loading x files. Only Irrlicht needs usually to resave in mview.exe utility from MS SDK, but I think this can be easily avoided just forcing a less strict identation or formating of the ascii file.

x is an ascii file, and seem squite clear. Fortunately, there’s mountains of docs (being the SDK of dx 8 one of the best) about it, not like with other formats.

And has been a while an standard. Plugin keep trying to keep compatibility with 8.0 and 8.x as engines also did so. URGH for example, load as well a dx8 and a dx9 file. You don’t need to deal with dx nor ms, as the format is platform independent, is just a format, that can be outupot by all the major packages, including LW; maya, max and milskhape and now…Blender! :slight_smile: :slight_smile:

So whatever the doubt, though I am busy these days again, I’ll do my best to answer, as I know every bit in the artist side about it.

Said quickly: x format supports:

-Smoothing (not sure smoothing groups, but yep smoothing value, which what many ppl use, anyway)

-vertex colors (for extra overlayed in texture lighting, or some toon games)


-spline or linear interpolation between frames (ho smooth are th etransitions in time bewteen frames)

-time scale setting. To change the speed of playback.

-Materials, with a lot of settings.

-weights, fully featured.

-high polygon count (not like *.3ds)

-2 uv channels, great for lightmaps (but this is for other thing, for sceneries, as shadows in the character, is rarely done today, only in AAA games they do dinamic shadowing, not lightmaps, as the character moves all th time, baked shadows wont do) .So, fo rcharacters, still 2 channels are useful for texturing.

-If it’s evolved by jME coders, so that , someday, like URGH engine, it can load dx 9 and dx 8 files, not only dx 8…(which is the more important) …then v 9 version, with an external linked format , allows a load more of uv channels, and huger multitexturing layers…mainly for lightmaped terrains with the need of lots of multitexturing… High levels of things, anyway, not really that much needed. Anyway, my huge adviced is x for characters.

In a quick thought (as with features, I’m forgetting now a lot of info) tools that save or export x :


  • metasequoia LE. conv3ds and mview from ms sdk dx7 and 8. accutrans converter. crossroads converter. certain old free version of 3d exploration viewer/converter (I may provide the link) . Milkshape. (it does not do weights, though.For sceneries, objects. ) . max using free panda. maya, lw, truespace, gamespace. Blender (dx7 and 8). 3d canvas.

    A lot more…

The .x format just seems so complex :confused: :frowning:



I think the second best is md5…

but well…


Well, let’s put it on the list, and we (you :slight_smile: ) can tackle it whenever. I was just playing with it in DirectX and it seemed very nice.

does managed directX load x models automagically? as in a simple ModelLoader.load(PathToModel); and you got a model?

Or is it like opengl where you have to read the file and interpret it?


simply call a load mesh method.

I gotta give this Managed DirectX stuff a try…in the future…possibly furthur than that…


"Cep21" wrote:
The .x format just seems so complex :/ :(
You can try to use directx to convert it to jme's xml using c++...

if the complexity is not in parsing the format, which this artist I am doesnt know.

The main advantage of x is serve as an intermediate format. A way to port many graphic features. Not necesarily a END format…recently a very experienced game programmer friend of mine (knew in a company) told me x is not used as final format, in all case for intermediate porting. As is not an optimized format fo rquick load etc.

A proof of it: Dark basic pro. They have an user made utility that loads a bone weighted x file and converts to native DBO format, resulting in a much quicker thing in performance. Seems to be a succesful path.

No tool saves characters in DBO, all save in x format. And their final format is dbo, so they don’t loose speed. The tool is like a parser/converter.

just like .jme :slight_smile:

I dont think .X will be loaded into the scenegraph, but a convertor will be available to convert to .jme which will load into the scenegraph. Much like MD3


I dont think .X will be loaded into the scenegraph, but a convertor will be available to convert to .jme which will load into the scenegraph. Much like MD3

Much like all formats. DarkProphet's right, everything is converted into an internal format. (.jme). Right now, it's a matter of writing exporters that take these other formats, and convert them into .jme. That's what Cep21 is currently creating.

If anyone has any informative links about the .x format let me know. A guide to getting started loading the .x format into jME would be helpful.

I will see if tomorrow I can find time to do a good search and collect resources in a post here about x and all needed :slight_smile:

Thanks :slight_smile:

whatever you do, the key is keep compatible with dx 8, or we would be doing nothing…(noww it’s dx9.0b out…)

and remember I am not a coder…

dx 8.0 (the one that maybe ensures the thing)


another, mor ecomplex it seems, for dx9


also for dx9 (so also, maybe not as useful as the very first link)


GameDev.net - How to parse .X files


following to that above:

Building an .X File Frame Hierarchy


this following (is dx9 based) is not compatible surely with existing packages, all based in dx8 x files.

Working with the DirectX .X File Format and Animation in DirectX 9.0


GAMEDEV in somedays is gonna post an article of exactly how to parse an x file not using direct x (I dunno if will do any of the other articles I posted above, already)

dx9 based

Working with the DirectX .X File Format and Animation in DirectX 9.0


one good source is the sdk for dx8.0. The skinned mesh samples and documentation about it, is what I always hear.

New tutorials for loading and parsing x files, at Gamedev. Date, 19 september, 3 days ago.


x is the most spread format out there for bones and weights animation, as I have said other times.

yet though, some friend has told me to be aware that there’s little doc or none for knowing how to port the animation to an internal format.

Majority of free engines, and other low cost ones, tend to import directly the x format. Is not that complicated, I have seen many do so. The fact is that…I have been told x is not an optimal, and blazing quick format for performance. While it usually good enough for most cases, is not very optimal. Is not though for games. Was developed for applications. Real time 3d applications, anyway.

So, it’s already being used in many engines, and succesfuly. But i am told that the problem is there’s no doc available, or haven’t been able to find, on how to actually make a conversion from x to an internal more optimized format (ie: jme one)

yet though, it’s been done. recently, I had the happy finding of a free x animation IMPORTER for Max. (there was already the fantastic Panda Exporter for Max)

Even so, artist side, the advantage of having so much many packages exporting x is still bigger than the other thing… Ideal would be supporting both md5 (actually a game format, if used directlly would be already optimal, but it seems there’s doc for it to make the conversion of animation to a custom format) and *.x

Take in consideration what i always say:

X supported by:

-Maya, Max, Blender(natively, yet though I prefer a forked modification of the export plugin), 3d Canvas(natively), Milkshape, Lightwave, Truespace, gameSpace(natively), (recently cinema, but yet not animation) , Softimage XSI 4.0 (I know as I have it purchased, and does a perfect job, it also imports x anims!) , Character Fx (only 15$)(natively), Ultimate Unwrap (can be used as animation converter), Deep Exploration(very nicely)…and a bunch more…I just have not enough memory in my brain…

-MD5 has support (and quite good and solid) in Blender, Gmax(u need to know a pair of tricks), and Max. (I think there’s some support for Maya certainversion but not for Maya 6, I think.)

…that though I didn’t mention that a load more modellers support old versions of x format, like dx7 and dx5 x files: metasequoia, Lithunwrap, a load of free and open source modellers. But those x had no bones, no animation.(dx7 had some rigid hierarchies objects animation, I think)

So, is the usual dilema. For power, more ability of coders to understand and work with the format, extra features (though I think md5 does not have lightmaps, while x supports them…but we’re speaking bout characters: for sceneries imho one of better ways is ASE, multiuv support, etc.Already in engine. ) , like dot3 normal mapping, etc , then go for md5.

If you want a wider range of artist be able to contribute with jME projects, then go for *.x.

If you want both things, go for both formats :slight_smile:

ps: x files have a limit of 65k triangles. I don’t know if there’s a limit for md5 files. Anyway, a character of 65k tris would kill any pc, if there’s something else in screen :wink: Or even if not :wink: