Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
deftypes [2019/03/12 14:51] – [G3D File Format] admindeftypes [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Internal Model Definition ====== 
  
-Gorilla3D holds model, animation and material data inside of an internal structure for better instancing, abstraction and management. 
- 
-The so-called DefTypes can be stored and loaded to/from *.G3D file format. 
- 
-===== Structure ===== 
- 
-Take a look at the following schematic structure of a model definition. 
- 
-<file> 
--TModelDef 
-        // holds a list of TMeshDef instances 
-  -List::Meshes 
-  -TMeshDef 
-                        // a reference to the owner model 
-  -@Model::TModelDef 
-  -/TMeshDef 
-  -/List::Meshes 
- 
-        // holds a list of TMaterialDef instances 
-        -List::Materials 
-  -TMaterialDef 
-                        // a reference to the owner model 
-  -@Model::TModelDef 
- 
-                        // holds a list of textures 
-  -List::Textures 
-  -TTextureDef 
-  -/TTextureDef 
-  -/List::Textures 
- 
-                        // holds a list of shader codes 
-  -List::Shaders 
-  -TShaderDef 
-  -/TShaderDef 
-  -/List::Shaders 
- 
-                        // holds a list of sub materials for layered material sources 
-  -List::Materials 
-  -TMaterialDef 
-                                 [...] 
-  -/TMaterialDef 
-  -/List::Materials 
-  -/TMaterialDef 
-        -/List::Materials 
- 
-  // holds a list of THumanoidDef instances 
-  -List::Humanoids 
-  -THumanoidDef 
-                        // a reference to the owner model 
-  -@Model::TModelDef 
-  // holds a list of TControllerDef references 
-  -@List::Controllers 
- 
-  // represents a tree of TJointDef nodes 
-  -Root::TJointDef 
-  -TJointDef 
-  -TJointDef 
-  -TJointDef 
-  -TJointDef 
-  -/TJointDef 
-  -/TJointDef 
-  -/Root::TJointDef 
-  -/THumanoidDef 
-  -THumanoidDef 
-  [...] 
-  -/THumanoidDef 
-  -/List::Humanoids 
- 
-  // holds a list of TControllerDef instances 
-  -List::Controllers 
-  -TControllerDef 
-                        // a reference to the mesh, the controller handles 
-  -@Mesh::TMeshDef 
- 
-  // is a sub component of TSkinDef 
-  -Skin::TSkinDef 
-  -TSkinDef 
-                                        // the owner controller of the skin definition 
-  -@Controller::TControllerDef 
- 
-  // holds a list of TJointRefDef instances - these 
-  // are referenced objects to TJointDef instances 
-  -List::LinkedJoint 
-  -TJointRefDef 
-  -TJointRefDef 
-  -TJointRefDef 
-  -TJointRefDef 
-  -TJointRefDef 
-  [...] 
-  -/List::LinkedJoints 
- 
-  // contains the root joint of the skeleton 
-  -@Skeleton::TJointRefDef 
-  -/TSkinDef 
-  -/Skin::TSkinDef 
-  -/TControllerDef 
-  -TControllerDef 
-  [...] 
-  -/TControllerDef 
-  -/List::Controllers 
- 
-  // holds a list of TAnimationDef instances 
-  -List::Animations 
-  -TAnimationDef 
-                        // reference to the owner model 
-  -@Model::TModelDef 
- 
-  // holds a list of TAnimationStageDef instances 
-  -List::Stages 
-  -TAnimationStageDef 
-  -List::Interpolators 
-  -TInterpolatorDef 
-  -TInterpolatorDef 
-  -TInterpolatorDef 
-  [...] 
-  -/List::Interpolators 
-  -/TAnimationStageDef 
-  -TAnimationStageDef 
-  [...] 
-  -/TAnimationStageDef 
-  -/List::Stages 
-  -/TAnimationDef 
-  -TAnimationDef 
-  [...] 
-  -/TAnimationDef 
-  -/List::Animations 
- -/TModelDef 
-</file> 
- 
-===== G3D File Format ===== 
- 
-The Gorilla3D file format is a representation of the internal model structure defintion. 
-It allows different kinds of storage formats: 
- 
-^ Format  ^ Notes  ^ 
-| BSON      | binary json format: https://en.wikipedia.org/wiki/BSON [wikipedia] | 
-| JSON       | default json format: https://en.wikipedia.org/wiki/JSON [wikipedia] | 
- 
-In addition to those formats we provide different storage options: 
- 
-^ Option ^ Notes ^ 
-| None     | The save routine simply stores data plain as BSON or JSON | 
-| Zipped  | Store as zipped data stream. You can extend this option by the FastestCompression or MaxCompression option. If none of them is set, the exporter will use default compression. | 
-| Beautified | Compatible with JSON format. Defines data will be exported with linebreaks and indents or not. This option has no influence on bson format. | 
-| FastestCompression | If the Zipped-Option is set, this option will choose the fastest algorithm for packing the data stream. | 
-| MaxCompression | If the Zipped-Option is set, this option will chose the maximum compression algorithm for packing the data stream. |