Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor SkinnedMeshFeatureProcessor (DCO fixed) (#9171)
* Squash skinned mesh dispatch changes (#299) Squashing several changes from a staging branch into a single commit to get rid of some bad history. Each of these changes was individually reviewed: One skinning dispatch per mesh: Part 1 aws-lumberyard-dev#286 Removing support for morph targets that modify vertex colors aws-lumberyard-dev#288 One SkinnedMesh Dispatch Per Mesh Part 2: Morph targets aws-lumberyard-dev#294 Support for more or less than 4 influences per vertex aws-lumberyard-dev#296 Skip skinning cloth meshes aws-lumberyard-dev#297 Support varying influence counts per mesh aws-lumberyard-dev#298 * WIP use oned dispatch per mesh instead of per lod for skinning. Need to update Actor.cpp to account for the new padding in the bone Id's Signed-off-by: Tommy Walton <waltont@amazon.com> * Attempt to fix JointId buffer Signed-off-by: Tommy Walton <waltont@amazon.com> * WIP use oned dispatch per mesh instead of per lod for skinning. Need to update Actor.cpp to account for the new padding in the bone Id's Signed-off-by: Tommy Walton <waltont@amazon.com> * Attempt to fix JointId buffer Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix compile errors Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix Material->MaterialAsset name mixup Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix 3-component buffer views to work with metal Signed-off-by: Tommy Walton <waltont@amazon.com> * Fixing position history writing to the incorrect offset Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix JointId alignment issue Signed-off-by: Tommy Walton <waltont@amazon.com> * Moved jointId padding logic into a separate file that can be shared between EMFX and the ModelAssetBuilderComponent. Also simplified the loop for doing the padding in EMFX. Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix incorrect variable name after merge Signed-off-by: Tommy Walton <waltont@amazon.com> * Minor cleanup Signed-off-by: Tommy Walton <waltont@amazon.com> * More minor cleanup Signed-off-by: Tommy Walton <waltont@amazon.com> * Comment updates Signed-off-by: Tommy Walton <waltont@amazon.com> * Split giant CreateFromModel function into smaller functions that should be easier to follow. Signed-off-by: Tommy Walton <waltont@amazon.com> * More minor cleanup/re-naming Signed-off-by: Tommy Walton <waltont@amazon.com> * Switch from AZ::RoundUpToMultiple to AZ::SizeAlignUp since the alignment is a power of two Signed-off-by: Tommy Walton <waltont@amazon.com> * Minor PR feedback Signed-off-by: Tommy Walton <waltont@amazon.com> * Switch from size_t to uint32_t Signed-off-by: Tommy Walton <waltont@amazon.com> * Fixing a few integer conversion related failures on non-windows platforms Signed-off-by: Tommy Walton <waltont@amazon.com> * Removing support for morph targets that modify vertex colors Signed-off-by: Tommy Walton <waltont@amazon.com> * One SkinnedMesh Dispatch Per Mesh Part 2: Morph targets (#294) * Update morph targets to work with per-mesh dispatches Signed-off-by: Tommy Walton <waltont@amazon.com> * Moving some things around to make the updated render proxy logic easier to follow Signed-off-by: Tommy Walton <waltont@amazon.com> * Store morph targets in the order they were created instead of on individual meshes Signed-off-by: Tommy Walton <waltont@amazon.com> * Minor PR feedback Signed-off-by: Tommy Walton <waltont@amazon.com> * Support for more or less than 4 influences per vertex (#296) * Initial support for more than 4 influences per vertex Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix shader compile error Signed-off-by: Tommy Walton <waltont@amazon.com> * Add a settings registry setting to modify the default max influences per vertex Signed-off-by: Tommy Walton <waltont@amazon.com> * Add a comment explaining the jointId offset Signed-off-by: Tommy Walton <waltont@amazon.com> * PR Feedback Signed-off-by: Tommy Walton <waltont@amazon.com> * Support varying influence counts per mesh (#298) * Modify ModelAssetBuilder to allow for meshes to have different per-vertex influence counts Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix merge error. Signed-off-by: Tommy Walton <waltont@amazon.com> * Update EMFX::Mesh to work with sub-meshes that have varying influence counts Signed-off-by: Tommy Walton <waltont@amazon.com> * Use the max influence count across all meshes to pre-allocate memory for the EMFX skin layer Signed-off-by: Tommy Walton <waltont@amazon.com> * Get rid of local vector in ProcessSkinInfluences to improve performance during level load Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix an incorrect comment Signed-off-by: Tommy Walton <waltont@amazon.com> * PR feedback Signed-off-by: Tommy Walton <waltont@amazon.com> * Skip skinning cloth meshes (#297) * Skip skinning dispatch entirely for certain meshes(like those with cloth) instead of modifying the blendweights to all be 0 Signed-off-by: Tommy Walton <waltont@amazon.com> * Working but somewhat hacky attempt to push the skip skinning logic to the component Signed-off-by: Tommy Walton <waltont@amazon.com> * Disable via ebus instead Signed-off-by: amzn-tommy <waltont@amazon.com> * Rename shouldSkipSkinning to isSkinningEnabled which is easier to follow with set/get methods Signed-off-by: amzn-tommy <waltont@amazon.com> * Add SkinnedMeshOverrideBus, which was missing from an earlier commit Signed-off-by: amzn-tommy <waltont@amazon.com> * Update FillSkinnedMeshInstanceBuffers to only fill buffers for meshes that won't be skinned. Signed-off-by: amzn-tommy <waltont@amazon.com> * Allow cloth to tell skinning to be enabled/disabled at any time instead of requesting it from cloth at a particular point of initialization Signed-off-by: Tommy Walton <waltont@amazon.com> * Remove function for filling buffers, since now they are either filled by simulation or filled by skinning Signed-off-by: Tommy Walton <waltont@amazon.com> * Minor PR feedback Signed-off-by: Tommy Walton <waltont@amazon.com> * Support varying influence counts per mesh (#298) * Modify ModelAssetBuilder to allow for meshes to have different per-vertex influence counts Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix merge error. Signed-off-by: Tommy Walton <waltont@amazon.com> * Update EMFX::Mesh to work with sub-meshes that have varying influence counts Signed-off-by: Tommy Walton <waltont@amazon.com> * Use the max influence count across all meshes to pre-allocate memory for the EMFX skin layer Signed-off-by: Tommy Walton <waltont@amazon.com> * Get rid of local vector in ProcessSkinInfluences to improve performance during level load Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix an incorrect comment Signed-off-by: Tommy Walton <waltont@amazon.com> * PR feedback Signed-off-by: Tommy Walton <waltont@amazon.com> Co-authored-by: Jon B <jonbold@amazon.com> Signed-off-by: Tommy Walton <waltont@amazon.com> * Redcode old SkinnedMesh interfaces (#301) * Redcode Signed-off-by: Tommy Walton <waltont@amazon.com> * More redcode Signed-off-by: Tommy Walton <waltont@amazon.com> * Even more redcode Signed-off-by: Tommy Walton <waltont@amazon.com> * Still more redcode Signed-off-by: Tommy Walton <waltont@amazon.com> * Modified the handle to be opaque to the underlying implemention, and have operations on the handle done through the feature processor interface instead of directly via the handle (#302) Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix cloth skinning for assets that have different influence counts for each sub-mesh (#313) * Fix cloth skinning for assets that have different influence counts for each sub-mesh Signed-off-by: Tommy Walton <waltont@amazon.com> * Removed check for invalid jointId, which no longer occurs and should be handled by the higher level actor initialization. Also renamed a few variables based on PR feedback. Signed-off-by: Tommy Walton <waltont@amazon.com> * Fixed a miss-spelling of the word skinning Signed-off-by: Tommy Walton <waltont@amazon.com> * Fixing a couple print statements using %zu for a variable that was changed to uint32_t Signed-off-by: Tommy Walton <waltont@amazon.com> * Fix missing commits for unity build and added spaces around PRIu32 Signed-off-by: Tommy Walton <waltont@amazon.com> * Made other uses of PRIu32 have spaces as well for consistency Signed-off-by: Tommy Walton <waltont@amazon.com> * Minor build fixes: A type mis-match between AZ::u64 and uint64_t, an unnecessary call to reserve on a fixed_vector, a missing namespace in a unit test, and an unused variable. Signed-off-by: Tommy Walton <waltont@amazon.com> * Remove unused variable Signed-off-by: Tommy Walton <waltont@amazon.com> Co-authored-by: Jon B <jonbold@amazon.com>
- Loading branch information