410 likes | 627 Views
A new container model for 3D file formats. 3DFC. Rozenn Bouville Berthelot ( Orange Labs/IRISA Rennes, France ) Jérôme Royan ( Orange Labs Rennes, France ) Thierry Duval ( Université Rennes 1/ IRISA Rennes, France ) Bruno Arnaldi (INSA/ IRISA Rennes, France ). Purpose. Goal :
E N D
A new container model for 3D file formats 3DFC Rozenn Bouville Berthelot (Orange Labs/IRISA Rennes, France) Jérôme Royan (Orange Labs Rennes, France) Thierry Duval (Université Rennes 1/IRISA Rennes, France) Bruno Arnaldi (INSA/IRISA Rennes, France)
Purpose • Goal : • enable composing of 3D files in a single 3D application • Solution requirements : • preventive of functionalities loss • extensible to most 3D formats • operable with most rendering components 3D application Rendering engine Physics engine
Issues and solutions • More than 140 3D file formats … • visualize • exchange • reuse
Issues and solutions • More than 140 3D file formats … • visualize : • no universal viewer • exchange • reuse
Issues and solutions • More than 140 3D file formats … • visualize • exchange : • production pipelines : a different format at each step • reuse Tool B In Tool C In Tool A In Out Out Out
Issues and solutions • More than 140 3D file formats … • visualize • exchange • reuse : • save time and money • ease importation
Issues and solutions • More than 140 3D file formats … • visualize • exchange • reuse • Solutions • standard
Issues and solutions • More than 140 3D file formats … • visualize • exchange • reuse • Solutions • standard • conversion
Issues and solutions • More than 140 3D file formats … • visualize • exchange • reuse • Solutions • standard • conversion • interoperability
Interoperability for 3D data • Two aspects : • between input files and 3D application →Iapp 3D application Rendering engine Physics engine Iapp
Interoperability for 3D data • Two aspects : • between input files and 3D application →Iapp • between input files of the 3D application →Iformat Iformat 3D application Rendering engine Physics engine Iapp
Interoperability for 3D data • Iapp→ Scene Graph Adapter (SGA) architecture • enables interoperability between 3D file formats and 3D application
Interoperability for 3D data • Iapp→ Scene Graph Adapter (SGA) architecture • enables interoperability between 3D file formats and 3D application • Iformat→ 3DFC container model • enables interoperability between 3D file formats of 3D application
Iapp→ Scene Graph Adapter 3D Application Format1 decoder Engine1 Engine1 API . . . . . . Enginen Enginen API Formatn decoder
Iapp→ Scene Graph Adapter 3D Application format scene graphs Format1 decoder Rendering engine Renderer API engine scene graph . . . Formatn decoder
Iapp→ Scene Graph Adapter Scene Graph Adapter 3D Application Format adapter API Format1 decoder Format1 Wrapper Engine adapter API Rendering engine Renderer API Renderer Wrapper . . . . . . Node Indexer FormatnWrapper Formatn decoder ( Bouville Berthelot et al., 2011 )
Iapp→ Scene Graph Adapter SGA Kernel API • 2012 version : Scene Graph Adapter 3D Application Format1 decoder Format1 Wrapper Format adapter API Engine adapter API Renderer adapter API Engine1 Engine1 API Engine1 Wrapper . . . . . . Physics adapter API . . . . . . Node Indexer FormatnWrapper Enginen Enginen API EnginenWrapper Formatn decoder
Iapp→ Scene Graph Adapter SGA Kernel API Scene Graph Adapter 3D Application Format1 decoder Format1 Wrapper Format adapter API Engine adapter API Renderer adapter API Engine1 Engine1 API Engine1 Wrapper . . . . . . Physics adapter API . . . . . . Node Indexer FormatnWrapper Formatn decoder Enginen Enginen API EnginenWrapper
Iformat→ Container Files • To aggregate contents of different types • For digital media files • storage (AVI) • transport (DIVX) • For software architecture • Salomé Project (Bergeaud and Tajchman, 2007) • For 3D files • 3DMLW (3D Technologies R&D, 2009)
A 3D files container ? • Requirements for a 3D files container : • encapsulate most 3D file formats • spatially organize models within a scene • enable interactions between models of different formats • enable annotations Container
A 3D files container ? • Requirements for a 3D files container : • encapsulate most 3D file formats • spatially organize models within a scene • enable interactions between models of different formats • enable annotations Container
A 3D files container ? • Requirements for a 3D files container : • encapsulate most 3D file formats • spatially organize models within a scene • enable interactions between models of different formats • enable annotations Container
A 3D files container ? • Requirements for a 3D files container : • encapsulate most 3D file formats • spatially organize models within a scene • enable interactions between models of different formats • enable annotations a… b… c… d… Container
Existing solutions • 3D graphics API : loading functionalities • Java3D, OpenSG, … → problem : conversion • Interchange formats • OFF (Rost,1989), P3D (Welling et al.,1990), FBX (Autodesk), Collada(Khronos Group),… →problem : encapsulation not provided
3DFC • 3DFC = 3D File Container
3DFC • 3DFC = 3D File Container • Answers our 4 requirements • most 3D file formats • spatial organization • enable interactions • annotations
3DFC • 3DFC = 3D File Container • Answers our 4 requirements • Not a new format, just a model !
3DFC • 3DFC = 3D File Container • Answers our 4 requirements • Not a new format, just a model ! • Relies on the Scene Graph Adapter architecture
3DFC and Scene Graph Adapter 3D Application 3DFC Decoder 3DFCWrapper SGA Engine1 Engine1 Wrapper Format1 Decoder Format1 Wrapper . . . . . . 3DFC F1 Fn . . . . . . Enginen Enginen Wrapper FormatnDecoder Format2 Wrapper
3DFC Nodes • As few as possible • Structuring nodes : • GROUP • TRANSFORM • CONTENT • Interaction/communication nodes : • ROUTE • MATCH • CONVERTER • Other functionalities provided by input formats
Instantiation 3DFC X3D 3D Application SGA 3DFC Ogre X3D DAE Bullet COLLADA Input : X3D, COLLADA and 3DFC Output : Ogre and Bullet
3DFC file sample Ogre 3DFC 3D Application SGA 3DFC Decoder X3D Bullet X3D Decoder + Collada Decoder DAE +
3DFC file sample 3DFC file <SGA_3DContainer> <Group DEF="MyGroupNode"> <Content DEF="X3DFile" type="x3d" decoder_url="" wrapper_url="" url="../x3d/RedCube.x3d" /> <Transform DEF="TRANS" translation="-80 60 50" scale="2 2 2" > <Content DEF="DAEFile" type="dae" decoder_url="" wrapper_url="" url="..\collada\plane.dae" /> </Transform> </Group> </SGA_3DContainer> Ogre 3DFC 3D Application SGA 3DFC Decoder X3D Bullet X3D Decoder + Collada Decoder DAE +
Rotate plane’s propeller <Route fromFile="X3DFile" toFile="DAEFile" fromNode="AnimationOI" toNode="prop" fromField="value_changed" toField="rotate" conversion="convertor_1" /> <Converter DEF="convertor_1" type="VectRotToQuaternion" /> Collada Decoder X3D Decoder R C Add a path between X3D’s Interpolator and Collada’s propeller M
Assign a mass to the cube Collada Decoder <MatchfromFile="DAEFile" toFile="X3DFile" fromNode="plane" toNode="cube_RED" field="mass"/> X3D Decoder M Match the mass of Collada’s plane to X3D’s cube
Summary Ogre 3DFC 3D Application SGA 3DFC Decoder X3D Decoder X3D + Bullet Collada Decoder + DAE
Discussion • Benefits : • enables interaction between 3D models of different formats • easy integration of 3DFC model in any existing scene-graph-based file format • relies on the flexible Scene Graph Adapter framework • Limitations: • matching nodes implies search in Node Indexer →reasonable impact on performance • updates implies additional call of methods →low impact on performance • several representation of the same scene graphs (commonly used in rendering engines) →require cache management for huge scenes
Future work • Add a network engine • to assess the usability of our framework for online virtual platforms • Extend 3DFC model • to add specific attributes to a node • rights, user interaction properties, …
Thanks for your attention. Questions ? Contact : rozennb@gmail.com