[Away3D] does it support FBX format?

[Away3D] does it support FBX format?

It looks like there’s a file attached here:

http://away3d.com/forum/viewthread/6210/

If its licensed well we could add it to Away3D

Accoridng discussions via this link, it’s incomplete and doesn’t support animations. However I didn’t test it yet

File cannot be downloaded :frowning:

1 Like

Yes, I’ve contacted author and he commited it to github. Unfortunately it is incomplete:
"Just see your email some reason it was in the spam folder, current state of this is it only load geometry data and only supports version 7400.

This is no longer being worked on myself and not sure why away3d forums wont let you download it, but have now uploaded it to github and is provided “AS-IS”

Real Loft"

1 Like

I have turned it into a Haxe file, but need to deal with some problems before it can be used.

The function seems to be incomplete, it seems that it can only parse mesh, but not animation and other data.

3 Likes

@rainy Would you like to be a contributor to Away3D? I can give you rights if you would like to improve the core with your work

2 Likes

I’ve been waiting for FBX support for years and even looked into porting an FBX class from either C++ or JavaScript myself. Thanks for this @rainy, I can’t wait to try it out once it’s done.

1 Like

@singmajesty Of course, I am willing to contribute!

1 Like

I haven’t studied the remaining work of FBX, and it may not support FBX for a long time. :thinking:

@rainy Is it possible that this is an issue with matrix.appendRotation and not with Away3D?

@singmajesty https://github.com/openfl/away3d/commit/055c8fa5acd7a8447eac7ec8e354a20aef8737de

I re-checked and found that the value of comps[1] was caused by NaN. The discovery comes from the Matrix3DUtils.decompose method:

} else if (orientationStyle == Orientation3D.AXIS_ANGLE) {
			tw = Math.acos((a + f + k - 1) / 2);
			var len:Float = Math.sqrt((j - g) * (j - g) + (c - i) * (c - i) + (e - b) * (e - b));
			//Error: len == 0
                        tx = (j - g) / len;
			ty = (c - i) / len;
			tz = (e - b) / len;
		} else {//Orientation3D.QUATERNION

Hmm I wonder what the behavior of this is in Flash Player. I wonder if it would make sense to set tx, ty and tz to zero in this case


The appendRotation needs to work, currently if len is 0, tx=0;ty=1;tz=0;

PS: Its valid value must be (0,0,1)/(0,1,0)/(1,0,0).

1 Like