Files
UnrealEngineUWP/Engine/Source/Developer/SkeletalMeshUtilitiesCommon
benoit gadreau b1161f9352 Alternate Skin Weights fixes
- MeshAssetFunctions: updated ddc cache when adding a new profile (should be handled in CommitMeshDescription)
    - LODUtilities: corrected GenerateImportedSkinWeightProfileData, which did not correctly handle maximum bone influence + weight sorting (+ fixed similar position test)
    - SkinnedMeshComponent: added GSkinnedMeshSkinWeightProfileEarlyExit (false by default) to avoid exiting too early when defining a new profile stack
    - FSkeletalMeshAttributes: adding a new skin weight attribute now returns true if the attribute is already available

NOTE: things to keep in mind when generating rendering meshes from editable meshes (mainly for the future me)
    - influences may be clamped at 8/12 when converted for rendering, even if editable data can support any number (be sure to check rendering settings and the number of bones supported by the current platform)
    - as weights can be clamped, it's important that weights are sorted from highest to lowest
    - use FBoneWeights to ensure that weights are re-normalized if they are clamped

TODO:
    - test CommitMeshDescription to ensure that adding a new profile triggers a DDC invalidation
    - there is redundancy between MeshUtilities::GenerateSkeletalRenderMesh and LOD rendering mesh generation (which is a source of errors)
    - FLODUtilities::UpdateAlternateSkinWeights could benefit from a more robust projection algorithm (see FTransferBoneWeights)


#rb halfdan.ingvarsson
#rnx

[CL 36788984 by benoit gadreau in 5.5 branch]
2024-10-02 11:38:49 -04:00
..
2024-10-02 11:38:49 -04:00