[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
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"
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.
@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
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.
I haven’t studied the remaining work of FBX, and it may not support FBX for a long time.
@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).