Rebel Fork Framework

Model
contains vertex and index buffers used to render static geometries. Model
also contain Skeleton
for skeletal animation and some extra metadata.
Note: Model
contains prepared data ready for rendering. Use ModelView
to access model data in easytouse format.
Model
is stored in the file system as *.mdl
file which contains main data and optional *.xml
auxiliary file which contains arbitrary metadata.
Model
contains arbitrary amount of VertexBuffer
s and IndexBuffer
s of arbitrary format.
Model
contains BoundingBox
in model space which will be used for spatial queries.
Model
may contain arbitrary amount of morphs.
Morph is an update to a subset of vertices in one or more VertexBuffer
s. Morph may additively modify position, normal and/or tangent of vertices. Morphs are applied to geometry in AnimatedModel
.
Model
contains exactly one Skeleton
. For static models Skeleton
is empty and is usually ignored.
Skeleton
is an array of Bone
s.
Every Bone
has its name, initial transform and parent bone.
Also, Bone
should contain either bounding box or bounding sphere in order to contribute to the bounding box of AnimatedModel
.
Geometries are what actually defines how Model
will be rendered.
Model
is split into one or more "submodels", where each "submodel":
Material
during rendering.Geometry
is the specific LOD of specific "submodel". Example layout of geometries in the Model
:
 LOD #0LOD #1LOD #2...  **Batch #0**Geometry #0Geometry #1 **Batch #1**nullGeometry #2Geometry #3... **Batch #2**Geometry #4Geometry #5Geometry #5 **...**............
Every Geometry
references one or more VertexBuffer
of the Model
and at most one IndexBuffer
. Geometry
never stores actual vertices or indices.
Geometry
also defines the range of vertices/indices to be rendered and primitive type used.
Usually metadata is up to user, but there's a couple of values with special meaning:
Name  Type  Description 

LightmapSize  IntVector2  Size of the region in lightmap texture required to fit all object lightmaps with specified LightmapDensity. 
LightmapDensity  float  Number of lightmap texels per unit, assuming that the object takes LightmapSize texels of lightmap texture. 
LightmapSharedUV  bool  Whether the object uses the same lightmap UVs for all its LODs. 