© Copyright Khronos Group, 2006 - Page 1
Christian LafortePresident, Feeling Software
Feeling Software COLLADA ToolsFeeling Software COLLADA Tools
© Copyright Khronos Group, 2006 - Page 2
Feeling SoftwareFeeling Software• Feeling Software is a consulting and contract development firm specialized in 3D graphics and game tools.
• Founded in March 2005 by veterans of the DCC and game industry.
• Clients include Sony Computer Entertainment, Epic Games, AGEIA, Autodesk, Khronos, Scaleform and many others.
© Copyright Khronos Group, 2006 - Page 3
OverviewOverviewFeeling Software offers free COLLADA solutions:• FCollada: API for COLLADA I/O and manipulation• ColladaMaya: COLLADA plug-in for Maya• ColladaMax: COLLADA plug-in for 3ds max• Nima: AGEIA PhysX plug-in for Maya (supports COLLADA Physics)
• Feeling Viewer: COLLADA 1.4.1 reference viewer and commercial engine
© Copyright Khronos Group, 2006 - Page 4
SupportSupport• Over 40 game and film studios, and thousands of artists and developers, use our COLLADA tools daily.
• Free downloads and forums: www.feelingsoftware.com• Public support: www.feelingsoftware.com/bugzilla• Commercial COLLADA consulting: [email protected]
© Copyright Khronos Group, 2006 - Page 5
About FColladaAbout FCollada• Feeling Software’s COLLADA library, shared across ColladaMaya, ColladaMax, Unreal Engine 3, Feeling Viewer, etc.
• Can import and export COLLADA 1.4
• Can modify scene-graph in place
• Backward compatibility (e.g. import 1.3)
• Preservation of <extra> data
© Copyright Khronos Group, 2006 - Page 6
FCollada FeaturesFCollada Features• Pretty much everything in COLLADA 1.4.1• COLLADA Core: geometry, animation curves, skinning, morphing…
• COLLADA Physics• COLLADA FX, including support for multiple profiles• File referencing
© Copyright Khronos Group, 2006 - Page 7
FCollada ExampleFCollada ExampleFCDocument* daeDoc = FCollada::NewTopDocument(); // XRef support is native, but you can use a flag to disable it.
FUStatus status = daeDoc->LoadFromFile("content.dae"); // Status has warnings and error messages, so you want to check that.
// Retrieve the image with the 'mossyRock' id.FCDImage* mossyRockImage = daeDoc->FindImage("mossyRock");
// process image: you have access to the id/name/filename/size info/...
// Write out the COLLADA document.daeDoc->WriteToFile("content_adapted.dae");
© Copyright Khronos Group, 2006 - Page 8
File ReferencingFile Referencing• Automatic- Transparently load all referenced documents on request- Doesn’t load documents unless necessary- Useful for most conditioners and importers
• Explicit- File references are exposed to and controlled by
application- Used by more sophisticated translators, e.g. ColladaMaya
and ColladaMax
© Copyright Khronos Group, 2006 - Page 9
Saving File ReferencesSaving File References• Several options, e.g.:- Save only top-most modified document: useful for layout /
level editor functionality.- Save all modified documents- Unknown <extra>s can generally be preserved
© Copyright Khronos Group, 2006 - Page 10
FCollada releasesFCollada releases• New FCollada versions released every few weeks:- Source code- Doxygen documentation- Samples
© Copyright Khronos Group, 2006 - Page 11
ColladaMayaColladaMaya• COLLADA Plug-in for Maya
• Supports Maya versions 6.01 to 7.01
• Open-source- If you want, customize to your needs
© Copyright Khronos Group, 2006 - Page 12
ColladaMaya featuresColladaMaya features• Supports most of COLLADA 1.4.1- Core features- Physics- FX (Cg profile)
© Copyright Khronos Group, 2006 - Page 13
ColladaMaya core featuresColladaMaya core features• Geometry: polygon mesh with multiple texcoords, tangents/binormals, vertex blind data
• Common shaders, file textures, lights, cameras• Animation curves (keyframed and sampled) including pre- and post- tangents
• Combination of skinning, morphing and vertex animation• File referencing• Preserve user data: <extra> and dynamic attributes• Demo
© Copyright Khronos Group, 2006 - Page 14
ColladaMaya physics featuresColladaMaya physics features• Export of COLLADA Physics• From native Maya dynamics:- Rigid bodies- Rigid constraints (transformed into 6-DOF)- Up to one gravity force field
• From Nima:- Rigid bodies (including analytical shapes)- Rigid constraints (6-DOF)- Rigid solver parameters
• Demo
© Copyright Khronos Group, 2006 - Page 15
ColladaMaya FX featuresColladaMaya FX features• Import/Export, visualization and editing of COLLADA FX (Cg profile)
• Multi-pass
• Orthogonal with other COLLADA features, e.g. animation of FX parameters
• Legacy support for CgFX
• Interoperability with FX Composer 2
• Demo
© Copyright Khronos Group, 2006 - Page 16
ColladaMaxColladaMax• COLLADA plug-in for 3ds Max
• Supports version 7.0 and above
© Copyright Khronos Group, 2006 - Page 17
ColladaMax FeaturesColladaMax Features• Pretty complete support for COLLADA Core, similar to ColladaMaya’s.
• COLLADA Physics and FX are not yet supported
© Copyright Khronos Group, 2006 - Page 18
ColladaMax ScreenshotsColladaMax Screenshots
Skinned fairy model courtesy of Daz-3D, Skinned fairy model courtesy of Daz-3D, imported from DazStudio by Greg Corson (SCEA)imported from DazStudio by Greg Corson (SCEA)
© Copyright Khronos Group, 2006 - Page 19
ColladaMax ScreenshotsColladaMax Screenshots
NURBS curves imported from MayaNURBS curves imported from Maya
© Copyright Khronos Group, 2006 - Page 20
ColladaMax DemosColladaMax Demos• Lunar lander
© Copyright Khronos Group, 2006 - Page 21
Interoperability between DCCsInteroperability between DCCs• Improving gradually, e.g. NURBS curve in Max Maya• Things to watch for:- Transform stack: may differ a lot from one DCC to
another… hard problem to solve- Animation curve tangents: underspecified in current
COLLADA spec, will rectify in next version- Common materials: multi-texturing, bump maps, and
procedural textures could be standardized further
© Copyright Khronos Group, 2006 - Page 22
NimaNima• Integration of AGEIA’s PhysX engine inside Maya
• Why?- As of Maya 7, the native rigid dynamics aren’t fast enough
and miss important features- In contrast, PhysX is a full-featured physics engine
designed for performance- Fun project
© Copyright Khronos Group, 2006 - Page 23
AGEIA PhysXAGEIA PhysX
• A full-featured physics engine for games- Rigid bodies, constraints, cloth/soft bodies, fluids
• Designed for real-time performance on multi-core architectures:- AGEIA’s unique Physics Processor Unit- Playstation 3 and XBOX 360-Multi-core PCs
© Copyright Khronos Group, 2006 - Page 24
Nima featuresNima features• Supports COLLADA Physics and more:- Rigid bodies and constraints (incl. motors)- Analytical, convex and non-convex shapes- Convex tools and Rag Doll tools- Cloth, force fields, debug visualization
• Works well with most other Maya features including plug-ins
• Can export through ColladaMaya
© Copyright Khronos Group, 2006 - Page 25
Nima DemonstrationsNima Demonstrations• Analytical shapes
• Car crash
• Tornado
• Orc washing machine and torture chamber
© Copyright Khronos Group, 2006 - Page 26
Feeling ViewerFeeling Viewer• COLLADA 1.4.1 reference viewer
• Free for non-commercial use
• Underlying engine has been integrated in commercial applications, e.g.:- 3D screensavers- Video transitions- Visualization and customization of complex 3D models
© Copyright Khronos Group, 2006 - Page 27
Feeling Viewer DemonstrationsFeeling Viewer Demonstrations• COLLADA FX samples from FXC2
• Moon Lander scene
• Orc washing machine
© Copyright Khronos Group, 2006 - Page 28
FutureFuture• Evolution will depend on interest from paying customers.• Ideas:- Transparent support for binary or SQL-based COLLADA
storage- Asynchronous change notifications- Better support for non-Windows platforms- Easier user extensibility- Shading networks and fullscreen effects- Anim features: inverse kinematics, constraints- Physics features: cloth, fluids, particles, fields
• We welcome feedback!
© Copyright Khronos Group, 2006 - Page 29
ThanksThanks• Our sponsors for COLLADA projects: Sony Computer Entertainment,
AGEIA, Epic Games, Autodesk, Khronos, and others…
• Everyone who contributed code or sent feedback
• The Feeling Software COLLADA team: Guillaume Laforte, Antoine Azar, Alfred Leung, Etienne Whittom, Zhang Jian