|
|
(11 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
| ==Product summary==
| | #REDIRECT [[ColladaMax]] |
| | |
| '''This page is a work in progress. Do not hesitate to give a hand.'''
| |
| | |
| COLLADAMax is a COLLADA import and export plug-in for
| |
| [http://www.autodesk.com/3dsmax Autodesk 3ds Max]. | |
| | |
| ===Technical information===
| |
| * Latest version: 3.03J hh
| |
| * date: June 19th 2007
| |
| * bug reporting: [http://www.feelingsoftware.com/bugzilla Feeling
| |
| Software bugzilla]
| |
| * forum:
| |
| [http://www.feelingsoftware.com/component/option,com_smf/Itemid,86/lang,en/
| |
| Feeling Software Forum]
| |
| * maintainers: http://www.feelingsoftware.com
| |
| * feature list: http://www.feelingsoftware.com/content/view/74/91/lang,en/
| |
| | |
| | |
| ==ColladaMax 3.03 has been released== 18:18, 8 July 2007 (PDT)
| |
| | |
| It improves the compliance with regards to standard materials, support
| |
| for scrolling UV animations of bitmaps and a slew of other bug fixes.
| |
| New versions of ColladaMaya and FCollada were posted as well. Please
| |
| read the changelog for more information. Registered users can download
| |
| Feeling Software's COLLADA Tools on our website's Downloads section.
| |
| Registration is free.
| |
| | |
| Please note that previous versions of Feeling Software's COLLADA tools
| |
| had a compliance issue with regards to the transparency factor within
| |
| standard material. This issue is now corrected, but:
| |
| | |
| Data exported with previous versions of our COLLADA tools may import
| |
| with inverted transparency in ColladaMax 3.03 and ColladaMaya 3.03.
| |
| | |
| | |
| == 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 our 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.
| |
| *3283 by glaforte
| |
| ** FCollada: A bit of a container usage clean-up. On my own time, I'll
| |
| add a fm::ptr_vector type in order to reduce the executable size of
| |
| FCollada (at the cost of debug info). Right now, the library size
| |
| reduction is about 18%.
| |
| *3267 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.
| |
| *3216 by staylor
| |
| ** Feeling Veiwer: Contains many changes: SceneNode render is broken
| |
| down to update and render loops. Every node updates every frame, but may
| |
| not render. Transform Update is now a downstream process - this means
| |
| that SceneNodes GET their transforms, instead of the transform objects
| |
| SETting the values. GetLocalTransform should be used whenever local
| |
| transform is required. A variety of optimizations have been implemented,
| |
| and are conditionally compiled via a list of defines in
| |
| DebugPerformance, a new class for measuring frame render times. Bounding
| |
| boxes, skinning/morphing updates, vertex animations, are fixed.
| |
| FRTransform resets have been eliminated. Fixed materials disabled on
| |
| skins. Implemented skew matricies. Intersection tests are being moved to
| |
| a seperate namespace, FRIntersect ColladaMax: Upgraded to be compatible
| |
| with 3ds Max 9 Added name attribute to geometry exported from max.
| |
| Recursive map export implemented, but much further work is required in
| |
| this area to standardize non-blinn map export.
| |
| *3216 by staylor
| |
| ** ColladaMaya: Fixed -ve colour indices on export.
| |
| *3204 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
| |
| *3050 by ewhittom
| |
| ** Implemented a "best effort" approach to the NURBS texture problem.
| |
| Max and Maya do not seem to give a lot of importance to NURBS texture
| |
| since in both documentations NURBS are viewed only as a mean of
| |
| generating smooth polygon meshes. ColladaMax: I had two choices of data
| |
| formats for NURBS textures: user defined (raw) and chord length
| |
| parameterization (CLP) data formats, the later using the CV hull to give
| |
| a better, more natural, texture coordinate information. Max does not
| |
| take back its own data, despite what the documentation says. Wether I
| |
| use raw or CLP format, Max screws the texture information, so I chose
| |
| not to import it anymore and use the default setting. I'll contact
| |
| Autodesk to see what's going on in there. The Viewer handles CLP data
| |
| correctly, but Maya will not be able to import it (the rotation angle is
| |
| ok, but the offsets and scales are incorrect due to CLP output).
| |
| ColladaMaya: Added correct texture surface export. NURBS texture
| |
| information is stored in the material's place2dTexture node. At export
| |
| time, I build a default texture surface and transform it using the
| |
| node's simplified rotation, translation and scale parameters.
| |
| *3050 by ewhittom
| |
| ** Since these parameters are exported as extra children in the effect's
| |
| texture element, I don't need to do anything at import time if these
| |
| parameters are imported as well. Still, I added some logic to get back
| |
| the parameters from the texture surface if they're missing. FViewer: I
| |
| added some code to disable the use of placement matrices in FRTexture
| |
| when the texture is bound to a NURBS surface. Bottom line: Max -> Export
| |
| works, import does not. Maya -> Export works, import works for all
| |
| Maya-generated files and some isolated cases of Max-generated files.
| |
| Viewer -> Can display the export data of both Max and Maya.
| |
| *3040 by glaforte
| |
| ** ColladaMax: FS Public Issue #219: Wrong sampled animation start time.
| |
| Implemented the patch provided by Cory McWilliams.
| |