text: 3dsMax (COLLADAMax)
  Product summary
  COLLADAMax is a COLLADA import and export plug-in for Autodesk 3ds Max.
  Technical information
  - Latest version: 3.03J
  - Date: June 19th 2007
  - Bug reporting: Feeling Software bugzilla
  - Forum: Feeling Software Forum
  - Maintainers:
  - Feature list:
  ColladaMax 3.03 has been released
  18:18, 8 July 2007 (PDT).
  ColladaMax 3.02 has been released
  It includes a bunch of bug fixes. Please read the newly merged changelog for more information. Registered users can download Feeling Software's COLLADA Tools on the Feeling Software website's Downloads section. Registration is free.
  Feeling Software is pleased to announce that ColladaMax 3.01 has been released. This new release includes a wide range of bug fixes, support for the latest version of 3ds Max, etc. Full details can be found below.
  ColladaMax 3.01 has been released
  - 4062 by staylor
  - Extension to Bug311 && Bug293: Skinned animation BakeMatrix export is kinda screwy... The bake matrices export had inconsistencies in the way mesh matrices were evaluated. In some cases, the matrix is evaluated with GetObjectTMAfterWSM, and in others GetNodeTM. This causes animations to be thrown out of wack when ObjTM is not identity. Also, bones should NEVER use ObjTM, as skin & physique use NodeTM, so ObjTM has no visual effect. The transform export has been updated to evaluate each node and export the relevant transform
  - 4012 by staylor
  - fix rotation sampling import. Instead of creating a euler directly and trying to set frames on it, create and populate a hybrid interp controller (as before) then create a euler controller, copy the hybrid. This fixes flipping issues in the data.
  - 3995 by staylor
  - Fixed bad comparison that stopped derived objects (skins and morphs) from assigning their materials.
  - 3973 by staylor
  - Fixed: Re-initing ColladaAttrib for instanced objects. Fixed Load/Save of SimpleAttrib parameter block descriptions, moved the functions into ClassDesc. This is consistent with the Max method of obtaining pb descs. On load, it is important that we do not assign memory for max objects, if max free's it, it has to assign it. Fixed SimpleAttrib parameter block ID assignments. (Finally) Fixed extremely anoying heap corruption error on reset (or deleting the wrong objects). It is EXTREMELY important that NO data objects deleted by Max are created in Collada code. This WILL cause all sorts of memory faults.
  ColladaMax 3.0 has been released
  - 3892 by staylor
  - Fixed bad #if statements causing wrong vector definition to be compiled in Max version < 9
  - 3830 by staylor
  - ColladaMax: Added code to clean filename of XML characters on HLSL import (as this is an extra URL attribute, it gets no special treatment on load, leaving us with raw XML characters). FUtils: exposed XmlToString
  - 3743 by staylor
  - SimpleAttrib has been updated to manage its (and derived classes) param block descs. This should have been in an earlier commit, I dont know why its here again. Emitter export/import no longer relies on the mutation queue objects being present in the scene graph. Morphers no longer force target nodes to be exported, instead they create the needed geometry if it is not already present. The scene graph exports object hierarchies correctly, regardless of whether the parent nodes are exported. What this essentially means is that forced nodes do NOT export geometry. If an entity needs to force geometry. FCollada: FCDParticleComplex emitters now completely manage their mutation queue geometry instances. They will delete them on destruction. DO NOT set in visual scene instances (clone instead) FRenderer: FRControllerInstance has been updated to handle morph targets without scene graph instances. In this case, the controller instance will create new FRMeshs. TODO: Fix the FRMesh instance leak on object destruction?
  - 3725 by glaforte
  - ColladaMax: Fixed the export of XRef materials that was missing its polygons set symbol.
  - 3719 by glaforte
  - ColladaMaya/ColladaMax: Fixed the skin object inter-operability between Max and Maya. Had some issues with the generation of pivot points and their usage within the plug-in.
  - 3709 by staylor
  - (For the last commit too) Possible fix for 3ds maxs triggering breakpoints on file reset. Added code for properly managing ParamBlockDesc2 items in the ColladaAttrib ClassDesc2. As each instance of the class creates a unique ParamBlockDesc2 desc it is the responsibility of the class to ensure that this description is deregistered and deleted from the ClassDesc
  - 3703 by claforte
  - Implemented export of particle instance of mesh geometry. Can now import in GB successfully.
  - 3694 by staylor
  - Fixed incorrect export of disabled maps
  - 3546 by staylor
  - ColladaMax: Fixed export of look-at even when KeyMatrices option is set Non PRS controllers now default to sampling the matrix. Added support for exporting World space modifiers when keying matrices. Added support for exporting non-std material textures, through both parameter name matching and the max function StdIDToChannel.
  - 3532 by staylor
  - Touch up animation export to correctly fall back to baking matrices on non-prs controllers. This will correctly export link constraints or scripted transforms
  - 3517 by glaforte
  - COLLADA Tools: Follow the recent changes to FUError and to the Material library.
  - 3490 by staylor
  - Fixed particle rotation scaling
  - 3483 by staylor
  - ColladaMax: Removed all traces of any references to non-max attributes from the Particle System import/export - including the looping parameters on FCDEmitterParticle.
  - 3477 by staylor
  - Added TYPE_TIMEVALUE type support to ExportProperty, and added an FUAssert(type is supported) to these functions for a quick feedback when an export does not work. Fixed export of Drag start/end time values
  - 3439 by staylor
  - Replaced several SetReference calls with ReplaceReference (this ensures max's reference system pointers are initialized) Fixed export/import of Particle Speed chaos scale.
  - 3429 by glaforte
  - ColladaMax: Implemented the export of the start/end-time from the animation timeline. FCollada: Re-implemented the writing out of the start/end-time.
  - 3425 by staylor
  - ColladaMax: TODO: Mutlimaps on standard particles can fail to import. Also moved FCDConversionDiffFunctor out of FCDAnimationCurve.h into ConversionFunctions.h
  - 3420 by glaforte
  - ColladaMax: Fixed up the units/factors of a few force-related values.
  - 3409 by glaforte
  - ColladaMax: Added the export of force objects and the fields binding them to emitters. The exported force fields are still parameter-less, though. Added the ForceExporter class to ColladaMax.
  - 3407 by staylor
  - ColladaMax: Completed import and export of all particle systems, with the exception of MutationList import on PCloud and PArray FCollada: Support for particle systems is complete. Support for forces is coming.
  - 3384 by glaforte
  - ColladaMax: A couple of project fix-ups in order to get the project to compile in Release Max 9.
  - 3380 by sli
  - Supported material color animation
  - 3378 by glaforte
  - ColladaMax: Modified the animation-related export options. Removed the "single-anim" option. Added a "create-clip" option that pushes all the animations in one animation clip on export. Added a "enable-animations" option that enables/disables the export of animations. COLLADA Tools: Small typo interface change in FCDAnimation.
  - 3375 by staylor
  - ColladaMax: Basic particle import/export Includes support for spray, snow, and blizzard. Other changes include standardizing import/export scaling functors using the FCDConversionFunctor super class. Removed the auto-delete of passed in Functors in favour of a static list of commonly used functors and local objects. Fixed potential issue of creating objects that are not already loaded (deferred plugin load issue) TODO: Refactoring on blizzard to subclass all common parameters, creating a import/export and class heirarchy similar to the simple particle class. This will make adding support for PArray, SuperSpray and PCloud trivial. TODO: Just noticed some times are not constant through export/import. This should be checked out.
  - 3358 by glaforte
  - ColladaMax: Fixed regression in the export of morph targets whose instances have been deleted.
  - 3341 by glaforte
  - ColladaMax: Fixed the export of bump maps in the standard Blinn material.
  - 3307 by staylor
  - Bug 251: Images always export relative, regardless of export settings. Fixed by applying ForceAbsoluteFlag on FUFileManager. Also fixed (recent) error exporting std materials.
  - 3299 by glaforte
  - ColladaMax: Public Bugzilla#264: ColladaMax doesn_t import all textures. Fixed the detection of the NV_import mechanism that was exiting early. Ensure that the _valid_node_ flag gets set correctly when creating child nodes for the multiple instance special case. Allow for the finalization of 3dsMax node with no attached FCollada node.
  - 3296 by glaforte
  - ColladaMax: A first step to extra/id preservation. Refactored the custom attributes for clarity and re-use: ColladaAttrib is now based on SimpleAttrib XRefCustomAttribute was replaced with ColladaAttrib. Re-organized the 4 class description classes.
  - 3288 by glaforte
  - COLLADA Tools: FCDGeometryPolygonsInput::set is now a private member. Also fixed private Bugzilla#404 about the retrieval of the texture-texture coordinate set matches when dealing with material instances.
  -267 by ewhittom
  - ColladaMax (bug #232) Fixed the asset units' export. Max always uses generic units internally, no matter what are the display preferences. Max's generic units are centimeters, so everything we export from Max is in centimeters. I included some commented code to fetch units preferences if we ever want to convert every number before writing them to the COLLADA file.
  - 3227 by glaforte
  - FCollada and COLLADA tools: Renamed FCDGeometryInstance::GetMaterialInstanceList() to GetMaterialInstances() for consistency. Modified the export of lights, cameras, scene nodes and the entity's note in order to use FCDExtra rather than the <extra> element directly. ColladaMaya: Continued the extra preservation task: properly link the scene node instances with the entities. Re-use the material instance structures.
  -204 by glaforte
  - ColladaMax: Fixed regression in the assignment of the Max texture channels into the FCollada texture channels: glossiness and specular level textures were switched channels on export.
  - 3185 by staylor
  - Removed ComposteMtl, as we now use CompositeTexture
  - 3179 by ewhittom
  - ColladaMax: (public bug#208) An attempt to fix the group export/import. Valid only for in-Max export-import sequences.
  - 3177 by staylor
  - Bug: 228 Added support for Mix map type, by multiplying the export "amount" value by the mix amount. Fixed scaling of "amount" values. TODO: Check animation values. Reworked the import of materials to use compositeTexMap, rather than CompositeMtl. All textures load through the composite tex map onto the default StdMtl, and all channels of the StdMtl are set to 100% effect. Individual textures are then modified by their "Output" parameter for blending effects etc. TODO: Support correct amount export for textures.
  - 3165 by ewhittom
  - FCollada, ColladaMax, ColladaMaya, FViewer: Bug 225: Added the LINEAR type for splines. Although LINEAR interpolation is a special case of BEZIER or NURBS interpolation, one could save a lot of space/memory by using the line spline type. I added the FCDLinearSpline class in FCollada. Max and Maya can now import lines by first converting them to a Bezier or NURBS representation. I tested the whole thing using Bezier curves generated by Max, changing their type to LINEAR, and comparing the linear result with its convex hull.
  - 3152 by ewhittom
  - FCollada, ColladaMax and ColladaMaya: Added PREMIUM_NURBS #ifdefs excluding any NURBS surface related code from the non-premium build. Define the PREMIUM macro to enable any premium feature from FCollada.h.
  - 3138 by glaforte
  - COLLADA Tools: Fixed some ToPoint renamed to ToVector3. 3dsMax #defines NEVER in the global namespace, so #undef it before using it in our COLLADA enumerators.
  - 3129 by ewhittom
  - ColladaMax: Fixed NURBS surface import bug. Note: For the moment, some exports containing NURBS surface data will not automatically work on the viewer. Try to re-import the scene back into Max, and then export it again and feed it to the viewer. In most cases it fixes the data. Same thing with Maya, except that instead of re-import/export, just select the incorrect surfaces and perform a default "Rebuild surface" on them.
  - 3115 by staylor
  - Fixed very recent bug of morphers failing to link
  - 3109 by glaforte
  - Everything: All the code should now use fm::string, fm::vector and fm::map. These structures do not exist in the default namespace anymore.
  - 3095 by staylor
  - ColladaMax: Fixed import of bones based on SID. Bones support multiple roots, and different bones on instanced skins. When loading a skinned object, on a 2nd finalize the SkinImporter will check the originally created skin modifier bones list against the bones list provided in the ControllerInstance. If the bones do not match, the Derived Obj referencing the skin is cloned, assigned back to the node, and the import is finalized again onto the new instance. Exporting works in all tested cases. ColladaMaya: to do FCollada: Implemented sub id reading/searching etc. Implemented LinkExport/LinkImport on ControllerInstance in order to hook up local versions of bone lists, based on <skeleton> tag etc
  -40 by glaforte
  - ColladaMax: FS Public Issue #219: Wrong sampled animation start time. Implemented the patch provided by Cory McWilliams.