290 likes | 462 Views
Feeling Software COLLADA Tools. Christian Laforte President, Feeling Software claforte@feelingsoftware.com. Feeling Software. Feeling Software is a consulting and contract development firm specialized in 3D graphics and game tools.
E N D
Feeling Software COLLADA Tools Christian Laforte President, Feeling Software claforte@feelingsoftware.com
Feeling 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.
Overview Feeling 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
Support • 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: info@feelingsoftware.com
About 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
FCollada 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
FCollada Example FCDocument* 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");
File 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
Saving 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
FCollada releases • New FCollada versions released every few weeks: • Source code • Doxygen documentation • Samples
ColladaMaya • COLLADA Plug-in for Maya • Supports Maya versions 6.01 to 7.01 • Open-source • If you want, customize to your needs
ColladaMaya features • Supports most of COLLADA 1.4.1 • Core features • Physics • FX (Cg profile)
ColladaMaya 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
ColladaMaya 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
ColladaMaya 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
ColladaMax • COLLADA plug-in for 3ds Max • Supports version 7.0 and above
ColladaMax Features • Pretty complete support for COLLADA Core, similar to ColladaMaya’s. • COLLADA Physics and FX are not yet supported
ColladaMax Screenshots Skinned fairy model courtesy of Daz-3D, imported from DazStudio by Greg Corson (SCEA)
ColladaMax Screenshots NURBS curves imported from Maya
ColladaMax Demos • Lunar lander
Interoperability 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
Nima • 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
AGEIA 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
Nima 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
Nima Demonstrations • Analytical shapes • Car crash • Tornado • Orc washing machine and torture chamber
Feeling 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
Feeling Viewer Demonstrations • COLLADA FX samples from FXC2 • Moon Lander scene • Orc washing machine
Future • 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!
Thanks • 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