Feeling Software Community

COLLADA Tools => ColladaMax => Topic started by: matt on April 16, 2007, 12:23:18 am



Title: Splines seemingly incompatible with the COLLADA spec
Post by: matt on April 16, 2007, 12:23:18 am
Hi,

I'm making an exporter from Blender to COLLADA for 3D bezier splines, since it seems to be the most simple reliable way of getting them into 3DS Max. I've already been using ColladaMax to transfer meshes between Blender and Max so it was an obvious choice for me to continue down this path.

I spent this morning reading up about splines in COLLADA and it seems that ColladaMax Exports and expects a format that's quite different to what's in the actual COLLADA spec.

According to http://www.khronos.org/files/collada_spec_1_4.pdf and the example at the bottom of http://www.khronos.org/files/collada_1_4_release_notes.pdf , bezier spline geometry should be specified as not just a single POSITION input, but also with INTERPOLATION, IN_TANGENT and OUT_TANGENT inputs as well.

Rather than using the IN_TANGENT and OUT_TANGENT inputs, ColladaMax put all CVs and tangent points in the one <control_vertices> POSITION array, which was quite confusing to me at first. It seems that it's knowingly non-standard too, since there is the extra:
 <technique profile="FCOLLADA">
   <type>BEZIER</type>
 </technique>

which seems to be a non-standard way of specifying interpolation.

Why is ColladaMax not following the spec here? I'd really like to make my Blender exporter a general COLLADA format exporter, but because of this I have to tailor it to only ColladaMax's way of doing things. Perhaps this is just a remnant from an older version of ColladaMax that needs to be updated for the new spec?

I'd appreciate any info you could give me here. Thanks very much for your work and for sharing it as open source to the world!


Title: Re: Splines seemingly incompatible with the COLLADA spec
Post by: Guillaume Laforte on April 18, 2007, 03:24:58 pm
Hi Matt,

The splines we are exporting are tailored for our needs. Unfortunately, we found the COLLADA specification to be deficient in defining the splines. We do support NURBS splines as well as the simpler Bezier splines.

Quote
Perhaps this is just a remnant from an older version of ColladaMax that needs to be updated for the new spec?

Looking at 3.03, no work as been done with regards to splines.

Sincerely,


Title: Re: Splines seemingly incompatible with the COLLADA spec
Post by: matt on April 18, 2007, 06:38:03 pm
Hi Guillaume,

The splines we are exporting are tailored for our needs. Unfortunately, we found the COLLADA specification to be deficient in defining the splines. We do support NURBS splines as well as the simpler Bezier splines.

What in particular did you find to be deficient? The COLLADA 1.4 spec seems to offer a lot more capability than ColladaMax supports now. For example, the spec, Max, and Blender all support different handle types per CV, different interpolation types per segment, but I can't translate any of this information through the ColladaMax importer and the format that it accepts. The COLLADA 1.4 spec seems to support NURBS too, and there is an example at the bottom of the 1.4 release notes showing B-splines.

Perhaps did you make the decision not to support the standard spec based on an older version of the spec?

It's unfortunate that you chose to diverge from the standard. Even if you like to keep your tailored method as an option for your own usage, it would be very, very useful if the importer/exporter did at least understand and convert standard data. There are very few standard formats for translating 3D bezier splines - OBJ is patchy and few apps support it, I've read that FBX is supposed to support splines, but neither Max nor Maya will export beziers, and I was so happy to see it supported in an open format like COLLADA. Unfortunately, it makes it very difficult to get behind COLLADA and push the format as an open standard for this purpose, when the biggest I/O plugins don't actually follow the spec.

Anyway, I understand you're free to work on whatever you like, and I'm thankful that I at least have this option now. It would be very nice if you could support the spec in future, and that we could have a truly standardised format for 3D interchange.

cheers,

Matt


Title: Re: Splines seemingly incompatible with the COLLADA spec
Post by: Guillaume Laforte on May 08, 2007, 09:08:24 am
Splines are still being discussed by the COLLADA working group and until we have reached a conclusion, we have no plans to modify the current way it is supported in our COLLADA tools.

Do note that once a conclusion has been reached, we will be modifying our COLLADA tools to support that conclusion. We are committed to COLLADA compliance and our current export of splines should pass through the schema.

Sincerely,