Motion Matching: Fixed several bugs and improved anim graph node RPE layout
* Fixed several crashes that happened when adjusting the cost function in the UI.
* Automatically hide the trajectory path radius and path speed properties when the mode is set to target-based.
* Re-ordered the properties for better grouping.
Motion Matching: Moved discard event check into consolidated IsFrameDiscarded() method
* Moved the extract events call and the check for a discard frame event to the IsFrameDiscarded() function.
* Added class description for the frame database and ported the comments to //! and //<
Motion Matching: Fixed crash on empty KD-tree
Motion Matching: Automatic target mode for trajectory query
* Consolidated the different automatic path generation modes into a single automatic demo mode.
* Moved the static phase variable to a member so that multiple instances won't follow the same path and speedup the phase increment.
Motion Matching: Added class description and member comments
* Added description for Feature, FeatureMatrix, FeatureTrajectory classes.
* Changed default residual type to absolute as that results in better visual quality.
* Moved to //! doxygen style code to not affect /**/ sourounding temporary code commenting.
* Make atom render viewport the default for animation editor.
Signed-off-by: rhhong <rhhong@amazon.com>
* Fixed the automated test problem caused by making atom vp the default
Signed-off-by: rhhong <rhhong@amazon.com>
* Fix another test failure
Signed-off-by: rhhong <rhhong@amazon.com>
* fix failed test
Signed-off-by: rhhong <rhhong@amazon.com>
* more fix to the automation test
Signed-off-by: rhhong <rhhong@amazon.com>
* we don't need to manuelly call init on the ragdoll plugin anymore
Signed-off-by: rhhong <rhhong@amazon.com>
* PipelineLibrary (PSO Caching) support for Metal
- API changes to handle Metal drivers implictly doing save/load of PipelineLibrary data
- Fixed up code related to Metal device selection
- PipelineLibrary support for Mac and ios
Signed-off-by: moudgils <moudgils@amazon.com>
* Fix compile errors for Dx12, Vulkan backend + Unit tests
Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
* Fixed errors related to M1 GPU
Signed-off-by: moudgils <moudgils@amazon.com>
* Fix a minor 'tab' validation issue
Signed-off-by: moudgils <moudgils@amazon.com>
* Addressed feedback
Signed-off-by: moudgils <moudgils@amazon.com>
* Minor feedback
Signed-off-by: moudgils <moudgils@amazon.com>
* Added a few asserts
Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
* Fix a typo
Signed-off-by: moudgils <moudgils@amazon.com>
* Fixed several crashes that happened when adjusting the cost function in the UI.
* Automatically hide the trajectory path radius and path speed properties when the mode is set to target-based.
* Re-ordered the properties for better grouping.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
Shaders can now specify a top-level field "Definitions" which
accepts an array of string values. Each string will be appended
to the set of preprocessor definitions defined globally and forwarded
to the MCPP preprocessor on shader build. The shader-reload soak test
was modified to accept a new shader to test this feature in the ASV.
Signed-off-by: Jeremy Ong <jcong@amazon.com>
Added new utility functions for easily creating the value set for a ShaderOptionDescriptor.
Made ShaderOptionDescriptor default value optional, picking the first available value as the default ... by default.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
* Added camera controller script canvas graph that follows the character and rotates slowly around it.
* Added simple motion matching anim graph using the automatic target mode that doesn't need user input and just makes the character run around in the level.
* Added example level.
Note: As O3DE can't locate level files from within the gems asset folder, the level file needs to manually be copy & pasted to the ${YourProject}\Levels\ folder.
Signed-off-by: Benjamin Jillich jillich@amazon.com
* Misc SurfaceData Optimizations.
This includes a few different optimizations found while trying to make the bulk query APIs faster:
* Switches mutexes over to shared_lock to optimize for the multi-reader-single-writer pattern
* Surface provider point creation now uses a pre-created set of masks to initialize with, and uses std::move() to move the created point into the output list instead of copying it.
* Splits CombineSortAndFilterNeightboringPoints so that the FilterPoints() can occur separately and efficiently with erase/remove_if, and avoids making a copy of the output points.
* Optimized SurfaceDataShapeComponent::ModifySurfacePoints
* Fixed potential bug where the sort wasn't stable since it only compared the Z value, and could have produced unexpected results for differing points with the exact same Z value.
* Fixed up a couple small bugs and missing checks in the unit tests
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Fixed syntax on unit tests.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Terrain ray cast benchmarks and optimization:
- Added some benchmarks that exercise terrain ray casting.
- Optimized terrain ray casting by removing an unnecessary AABB intersection check (this was suggested by @invertednormal in the original review, but I forgot to actually remove it until now).
- Fixed a bug where we were not normalizing the ray direction before performing the Moller-Trumbore ray<->triangle intersection calculations.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Update to make work with changes pulled down from mainline.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Moved the extract events call and the check for a discard frame event to the IsFrameDiscarded() function.
* Added class description for the frame database and ported the comments to //! and //<
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
* Consolidated the different automatic path generation modes into a single automatic demo mode.
* Moved the static phase variable to a member so that multiple instances won't follow the same path and speedup the phase increment.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
* Added description for Feature, FeatureMatrix, FeatureTrajectory classes.
* Changed default residual type to absolute as that results in better visual quality.
* Moved to //! doxygen style code to not affect /**/ sourounding temporary code commenting.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
• Moved all of the common save and load code to the document base class
• Moved undo and redo support to document base class but will probably extract to its own class or replace with one from AzTF
• Streamlined material editor, shader management console, and other tools with updated document code
• Cleaned up some of shader management console loading code, added support for saving, as well as getting and setting the shader variant list source data structure
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
* Making terrain query resolution a single float instead of a Vector2
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Keeping the concept of different x/y step sizes in region queries since that may be useful and is separate from query resolution. Also keeping the concept of different x/y step sizes in physics since that's independent of the terrain gem.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Formatting cleanups
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* A few more minor cleanups
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Added support to convert serialized Vector2 query resolution to a single float.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Switch ray intersection check back to using separate values for x and y resolution
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fixing new unit tests added to use float query resolution.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Updating automated test
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Add benchmarks and unit tests for GetSurfacePoints*.
The benchmarks are very enlightening - the existing implementation of GetSurfacePointsFromRegion (and GetSurfacePointsFromList) is currently measurably *slower* than just calling GetSurfacePoints() many times in a loop. This is due to all of the extra allocation overhead that's currently happening with the way these data structures are built.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Small syntax improvement
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Small update to the benchmark to use filtered results.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Removed accidental extra include.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added several new sections (trajectory history, motion matching data, motion matching instance)
* Added images for the available feature visualizations and UI editors.
* Added feature histogram and scatterplot.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
update the prefab path for procedural prefabs so that the prefab template
can be found from the level prefab load event. It is important that it
points to the realative/path/to/the.procprefab using the correct
front slashes for the source asset path
Signed-off-by: Allen Jackson <23512001+jackalbe@users.noreply.github.com>