Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
1.0.0:custommesh [2023/03/23 13:45] – [Properties] admin | 1.0.0:custommesh [2023/03/23 13:51] – [Add Material] admin | ||
---|---|---|---|
Line 137: | Line 137: | ||
|function AddTriangle(const AIndexOffset : Integer; const ATriangle : TTriangleID; | |function AddTriangle(const AIndexOffset : Integer; const ATriangle : TTriangleID; | ||
|function AddPolygon(const AIndexOffset : Integer; const APolygon : TPolygonID; const AVertices : TList< | |function AddPolygon(const AIndexOffset : Integer; const APolygon : TPolygonID; const AVertices : TList< | ||
- | === Example === | + | |
+ | ==== Example | ||
+ | |||
+ | In this detailed example, let's create a mesh the same like in the " | ||
+ | |||
+ | But here we're going further by adding normals, colors, materials, armature+bones and a skin-animation. | ||
+ | |||
+ | In the first step we're going to show the usage of TVertexCache to setup mesh data. | ||
+ | |||
+ | === Adding MeshData | ||
<file pascal> | <file pascal> | ||
Line 277: | Line 286: | ||
</ | </ | ||
- | ==== Add Hierarchy | + | === Add Hierarchy === |
Since v1.0 most objects in DefTypes are inherited from TTransformDef. | Since v1.0 most objects in DefTypes are inherited from TTransformDef. | ||
Line 319: | Line 328: | ||
- | ==== Vertex Groups | + | === Vertex Groups === |
VertexGroups are helper structures referring to an owner mesh, which holds original vertex data and complete indices list, while this structure only holds a separated index source for partially rendering a mesh. | VertexGroups are helper structures referring to an owner mesh, which holds original vertex data and complete indices list, while this structure only holds a separated index source for partially rendering a mesh. | ||
Line 343: | Line 352: | ||
end; | end; | ||
</ | </ | ||
- | ==== Add Material | + | === Add A Material === |
To expand the dynamic model setup, let's add a material to our sub-mesh. | To expand the dynamic model setup, let's add a material to our sub-mesh. | ||
Line 372: | Line 381: | ||
</ | </ | ||
- | ==== Add Animation | + | === Add A Simple |
Adding animations can become a very challenging part due to complexity. | Adding animations can become a very challenging part due to complexity. | ||
Line 424: | Line 433: | ||
- | ==== Add Armature & SkinController | + | === Add Armature & SkinController === |
To make skin- or skeleton-animations possible you will need an armature with a hierarchy of joints representing the internal skeleton of a body. | To make skin- or skeleton-animations possible you will need an armature with a hierarchy of joints representing the internal skeleton of a body. | ||
Line 508: | Line 517: | ||
end; | end; | ||
</ | </ | ||
+ | |||
+ | === Add a Skin-Animation === | ||
To animate the armature and it's necessary to have compatible animation stages and interpolators. | To animate the armature and it's necessary to have compatible animation stages and interpolators. | ||
Line 595: | Line 606: | ||
__NOTICE:__ You will need a stage for each joint to be modified during the animation. | __NOTICE:__ You will need a stage for each joint to be modified during the animation. | ||
- | ==== Create FMX Components from Definition | + | === Create FMX Components from Definition === |
<file pascal> | <file pascal> |