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
1.0.0:custommesh [2023/03/23 13:50] – [Create FMX Components from Definition] admin1.0.0:custommesh [2023/03/23 14:01] (current) – [Create FMX Components from Definition] admin
Line 328: Line 328:
  
  
-=== Vertex Groups ===+=== How To Use 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 352: Line 352:
 end; end;
 </file> </file>
-=== Add Material ===+=== Add 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 381: Line 381:
 </file> </file>
  
-=== Add Animation ===+=== Add A Simple Animation ===
  
 Adding animations can become a very challenging part due to complexity. Adding animations can become a very challenging part due to complexity.
Line 490: Line 490:
   LCtrl.Skin.Skeletons.Add(LJtRef);   LCtrl.Skin.Skeletons.Add(LJtRef);
  
-  // We have to link all relevant joint to the skin and add weights and joint-indices+  // We have to link all relevant joint to the skin and add weights and vertex-indices 
 +  // "Weights" and "Indices" arrays has to have the same size. 
 +  // The sum of all weights (over all joints) for a specific vertex has to be 1.0!
   LJtRef := LCtrl.Skin.LinkJoint(Result.Root);   LJtRef := LCtrl.Skin.LinkJoint(Result.Root);
   LJtRef.Weights := [0.75, 0.75, 0.75, 0.75, 0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0];   LJtRef.Weights := [0.75, 0.75, 0.75, 0.75, 0.25, 0.25, 0.25, 0.25, 0, 0, 0, 0];
Line 520: Line 522:
 === Add a Skin-Animation === === Add a Skin-Animation ===
  
-To animate the armature and it's necessary to have compatible animation stages and interpolators.+To animate the armature it's necessary to have compatible animation stages and interpolators.
  
-Regarding our skin-animation example, the code could look something like this:+Related to our armature and bones (joints) before, the code could look something like this:
  
 <file pascal> <file pascal>
Line 607: Line 609:
  
 === Create FMX Components from Definition === === Create FMX Components from Definition ===
 +
 +After we have build our TModelDef object, we can visualize it easily by pushing it into the **TGorillaModel.LoadNewModelFromDef()** method.
 +It will take care of all necessary actions and will automatically build all FMX components for you.
  
 <file pascal> <file pascal>