Commit Graph

1223 Commits

Author SHA1 Message Date
Aristo7 4c47d7b587 Merged main in 2021-05-04 10:13:50 -05:00
Aaron Ruiz Mora 70bd3ea0ff Performance pass to Cloth CPU Skinning
- Added operator+(Matrix3x4), operator*(float), RetrieveScaleSq and GetReciprocalScaled to Matrix3x4. Used by Cloth CPU Linear Skinning. These operation will be performant as they use SIMD.
- Modified so there are no virtual functions calls at vertex level.
- Caching indices to simplify the loop when applying skinning.
- Caching static variables Matrix3x4 zero and DualQuaternion zero to avoid creating it for every vertex.
- Removing branching to skip joints when the weight is zero, these cases are rarely and this improves performance by removing branching from loops at vertex level.
- Changing skinning influences so it's a continuous block of memory.
- Caching the vector size() if a variable instead of directly using it in a for loop.
2021-05-04 12:09:56 +01:00
Tom Hulton-Harrop 83545c0243 Merge pull request #470 from aws-lumberyard-dev/hultonha_LYN-2315_camera-phase-2
Updates to new Camera System (part 2 - still in progress)
2021-05-04 09:59:47 +01:00
Chris Burel 31885753cb Fixes for compile failures with Clang on Windows (#532)
* Fix compile errors when building with Clang.

* Fix for clang-based unity builds
2021-05-03 22:46:28 -07:00
Aristo7 03c219bd2d Removed unused code 2021-05-03 21:31:06 -05:00
Esteban Papp edf8ab4822 Renaming CPack.cmake to Packaging.cmake to avoid infinite recursion (Packaging.cmake includes CPack.cmake) (#533) 2021-05-03 18:55:42 -07:00
lumberyard-employee-dm bcbe1bfef7 LYN-2537 AssetBundler updates (#426)
* LYN-2537 Updated the AssetBundler code to looks for the AssetSeedList
files within the Assets/Engine directory
Updated the MissingDependencyScanner GetXMLDependenciesFile functions to
use the Assets/Engine directory as well

Also fixed the MissingDependencyScanner to properly located dependency
xml files within gem directories

* Adding back input argument validation for the AssetBundler command options.

Also added an application_options settings registry file that contains the list of valid command options for the ComponentApplication

* Adding missing end of file newline for applications_options.setreg

* Fixed the AssetBundler help output for the bundleSeed command
2021-05-03 20:09:37 -05:00
cgalvan 15c2203e01 Merge pull request #528 from aws-lumberyard-dev/cgalvan/RemoveLegacyMaterial
[LYN-3078] Removed legacy CMaterial and all related/unused classes.
2021-05-03 19:18:19 -05:00
Gene Walters 0c3e0f18cc Merge pull request #187 from aws-lumberyard-dev/LY123349_Emfx_MotionInstancePoolReduceFragmentation
Change reservation strategy in MotionInstancePool to reduce fragmentation.
2021-05-03 16:27:55 -07:00
Vincent Liu dfe57c9d8f [LYN-2964][LYN-2965] Improve user experience of using AWSScriptBehaviorS3 (#495)
As AWS S3 GetObject doesn't provide proper file handling, move logic into custom request validation step
2021-05-03 16:16:19 -07:00
Eric Phister 4485edf77d LYN-2578: Updates cmake install for 'scripts' directory. (#518)
* LYN-2578: Updates cmake install for 'scripts' directory.  Updates destination of certain binaries.
* LYN-2578: Updates to cmake install based on feedback.
2021-05-03 17:46:54 -05:00
Chris Burel 7f81602fe7 Use the material id from the base mesh when optimizing blend shapes (#517)
This is cherry-picked from #311

When processing meshes with blend shapes, the mesh optimizer disables the
optimize duplicates setting, to prevent potential vertex reodering that
could cause the base mesh vertices to become out of sync with the blend
shape. However, it will still reorder vertices based on their material.
It places all triangles that use the same material in the same submesh,
grouping them together in the resulting mesh. The SceneAPI does not track
material ids for blend shapes. To ensure that the blend shape triangles are
reordered in the same way as the base shape, this change makes the blend
shape optimization use the material id from the base shape.
2021-05-03 15:43:42 -07:00
Luis Sempé fe0b768d03 Merge pull request #510 from aws-lumberyard-dev/carlitosan-beta-fixes
Carlitosan beta fixes - autogen Property fixes for nodeables
2021-05-03 15:33:34 -07:00
Terry Michaels 55f2b24302 Legacy Mesh component removal
* Removed legacy components

* More legacy render component removal

* Starting removal of legacy mesh component dependencies

* Removed old light components that were allowing Atom test to succeed

* Testing increasing the timeout to see if it lets it pass in Jenkins

* put original timeout back

* reordered components to test if it is component specific or not

* Testing disabiling the test to see if we get a green

* Fixed the removal of the test to sandbox

* Removed Legacy Mesh Component and associated tendrils

* Removed some missed references

* Fixed some issues with unity builds and ambiguous naming

* Addressed review feedback
2021-05-03 17:17:18 -05:00
Chris Burel 13c7b06308 Handle EMotionFX hotkeys with QActions instead of in keyPressEvent (#514)
EMotionFX has user-customizable hotkeys. These hotkeys are registered by
individual plugins, and then the user can set what they want the hotkey to
be. The way this was implemented was by reimplementing `keyPressEvent` and
`keyReleaseEvent` for each widget that used customizable hotkeys, and in
there call `KeyboardShortcutManager::Check` to see if key press matched any
existing hotkey mapping.

However, the main Editor has behavior that prevents events from reaching
EMotionFX's `keyPressEvent` method, if a keypress matches a hotkey that is
also used by the main Editor. This is due to the global event filter
defined in `ShortcutDispatcher::eventFilter`. This event filter takes a Qt
`Shortcut` event, and will re-dispatch that event to all parent widgets of
a given receiver. So if a parent widget, like the main Editor, *does* have
a QAction that matches a given key sequence, that widget will receive the
event, the event is marked as processed, and no `KeyPress` event is ever
sent to the original widget where the event occurred.

All this means that processing hotkeys in a `keyPressEvent` won't work
reliably. The main editor defines a hotkey for the `delete` key, so that
can never be received in a `keyPressEvent` by any child widget of the
Editor.

This change removes all the hotkey logic from the `keyPressEvent` methods,
and replaces them with `QAction` instances. Hotkeys are defined with
`QAction::setShortcut`, and added to each widget that they apply to.

In addition, the `KeyboardShortcutManager` class had to be adjusted to suit
this new way of defining the hotkeys. It now has a pointer to each
`QAction*` that can have a customizable hotkey. It has also been greatly
simplified, since it can use a `QKeySequence` instead of separate variables
for `int key; bool hasCtrlModifier; bool hasAltModifier`.

Applying user-defined hotkeys now has to be done after the hotkeys are
registered from a plugin. It is the plugin's responsibility to reload the
user-defined hotkeys after registering all of its actions.
2021-05-03 15:00:40 -07:00
Mike Balfour 53d47736c6 Merge pull request #523 from aws-lumberyard-dev/mbalfour/cherrypick-lyn-3357
[LYN-3357] Cherry-pick fix to UI textures to make them process as the correct type
2021-05-03 16:59:17 -05:00
Chris Galvan 8b0b3f4d02 [LYN-3078] Removed legacy CMaterial and all related/unused classes. 2021-05-03 16:42:11 -05:00
Olex Lozitskiy ea5dc5eb24 Merge pull request #521 from aws-lumberyard-dev/Atom/olexl/ATOM-15301_gems
Adding nullptr checks in Gems/ for Get3DEngine()
2021-05-03 17:35:08 -04:00
Aristo7 f4def0c93f Minor compile warning cleanup 2021-05-03 16:33:06 -05:00
Gene Walters 284c34a1af Merge branch 'main' into LY123349_Emfx_MotionInstancePoolReduceFragmentation 2021-05-03 14:06:26 -07:00
Vincent Liu 93254944fe [SPEC-6602] Add module class to make sure profile build generate required Qt binaries (#509) 2021-05-03 14:02:39 -07:00
michabr 6b08719466 Fix UI Canvas loading in Launcher (#468) (#515)
* Fix UI Canvas loading in Launcher (#468)

* Resolve merge conflict
2021-05-03 13:58:54 -07:00
Aristo7 64d980bc03 Deleted AzFramework::AtomActiveInterface 2021-05-03 15:40:32 -05:00
Guthrie Adams eb25e0bd33 Merge pull request #504 from aws-lumberyard-dev/Atom/guthadam/ATOM-15439
ATOM-15439 Implement basic local socket and server for IPC in material editor and other tools
2021-05-03 15:32:28 -05:00
Brian Herrera 1c63b6ae86 Merge pull request #481 from aws-lumberyard-dev/build-strike/fix-root-path
Fix root folder path for canary files
2021-05-03 13:19:30 -07:00
Guthrie Adams b100260633 Merge pull request #505 from aws-lumberyard-dev/Atom/guthadam/ATOM-14065
ATOM-14065 fix problems with material editor details group property descriptions
2021-05-03 15:12:55 -05:00
Guthrie Adams 4398a28f64 Merge pull request #519 from aws-lumberyard-dev/Atom/guthadam/LYN-3133
LYN-3133 Adding material editor asset path dependencies to Automated Testing project
2021-05-03 15:11:47 -05:00
Mike Balfour 0f9f4be382 [LYN-3357] Cherry-pick fix to UI textures to make them process as the correct type. 2021-05-03 14:38:08 -05:00
Aristo7 cc4712aa25 Deleted Visibility gem, it was Cry only gem 2021-05-03 15:37:16 -04:00
Aristo7 954e158454 Adding nullptr checks in Gems/ for Get3DEngine() 2021-05-03 15:21:27 -04:00
guthadam 9292d2e63f LYN-3133 Adding material editor asset path dependencies to Automated Testing project
Some of these changes may not be necessary but comparing against the Atom Test project

https://jira.agscollab.com/browse/LYN-3133
2021-05-03 13:43:34 -05:00
SJ 71c5df040f Fix iOS Crash
ILogger instance is null on iOS for some reason. I'm still investigating why. But this doesn't need to be fatal.
2021-05-03 11:24:38 -07:00
jjjoness edbad529f5 Merge pull request #472 from aws-lumberyard-dev/LY-110648
Ly 110648 - Asset Processor - Source path will become truncated when selected if the current folder name is not completely displayed.
2021-05-03 18:37:02 +01:00
amzn-sj 2e4545d289 Fix iOS Crash 2021-05-03 10:01:20 -07:00
Benjamin Jillich 893d4208c0 [LYN-3312] EMotionFX: Multi-threading dual quaternion software skinning / Moving the mouse while having many characters on screen makes the editor unusably slow (#506)
Multi-threaded software skinning by splitting the mesh up into batches of 10,000 vertices, which results in 27 jobs being spawned and executed using a character asset from a customer having 262,676 vertices and a speed improvement of 12x on a 32-core machine.

Single-threaded: 11,61 ms
Multi-threaded (27 jobs): 0,96 ms

* Created a SkinRange() function that can skin a part of the vertices.
* The actual skinning is now using the job system to split up the skinning into several pieces and executes them in parallel.
* Ported the bone info array to AzCore.
* Fixed some issues with the mesh based bounds update in the actor instance.
2021-05-03 18:48:30 +02:00
Benjamin Jillich 3c7ca72693 [LYN-3269] EMotionFX Editor save changed files prompts users to save files to the cache (#469)
* The asset source filename is now displayed instead of the product filename.
* Fixed a stylesheet issue with screen scaling on 4K monitors for the saved changed files window.
* Cleaned up surrounding code.
2021-05-03 18:45:35 +02:00
chcurran 181ce42591 Merge branch 'main' into carlitosan-beta-fixes 2021-05-03 09:42:01 -07:00
chcurran 071a642804 Auto gen updates fixing property declarations. 2021-05-03 09:37:23 -07:00
AMZN-koppersr 27c27a5f8e Merge pull request #502 from aws-lumberyard-dev/SceneReleaseFix
Fixed several release build compile errors.
2021-05-03 09:07:30 -07:00
jjjoness b5cf0f59fc Moved the pragma below the copyright message. 2021-05-03 16:57:58 +01:00
jackalbe fe88ae12b0 {LYN-3365} GraphObjectProxy is now hidden from Script Canvas (#478)
* GraphObjectProxy is now hidden from Script Canvas
* the IGraphObject has been added to the BC

Jira: https://jira.agscollab.com/browse/LYN-3365
Tests: manual testing the node type is not in the SC editor
2021-05-03 10:02:04 -05:00
guthadam 9d0f9e9e3a ATOM-14065 fix problems with material editor details group property descriptions
Moved the code that automatically appended a script variable name to a property description out of the dynamic property class and into the material property conversion utility functions.

Added proper descriptions for the material type and parent material placeholder properties

https://jira.agscollab.com/browse/ATOM-14065
2021-05-03 00:13:45 -05:00
guthadam f58f8805be Removed bad test code 2021-05-02 17:16:07 -05:00
guthadam fae33e9235 ATOM-15439 Implement basic local socket and server for IPC in material editor and other tools
This replaces grid hub usage in the material editor. It allows material editor and other tools to intercommunicate on the local host.  This will allow enforcing that there is only one instance of the material editor running.  Opening a second instance will forward command line options to the first instance running a local server.

https://jira.agscollab.com/browse/ATOM-15439
https://jira.agscollab.com/browse/ATOM-13742
2021-05-02 17:08:21 -05:00
AMZN-koppersr 5eeeaf4346 Fixed several release build compile errors. 2021-05-01 13:26:54 -07:00
galibzon 781415755d [SPEC-6220] Mac clean asset fails "No ShaderPlatformInterfaces found"
Added missing runtime and tools target dependencies.
2021-04-30 19:46:47 -05:00
Terry Michaels 3eed53fa27 Crash fixes in LyShine with pRenderer being nullptr now (#496) 2021-04-30 19:41:46 -05:00
AMZN-nggieber 7a2f698bbc Create the Project Manager project (#320)
* Created the Project Manager project with a barebone styled window and rough sketch of first screen

* Renamed to Project Manager, ect.

* Corrected string name for projectmanager and added comments on getting engine path

* Changed output name for Project Manager to lowercase o3de

* Added header guards
2021-04-30 17:11:40 -07:00
dmcdiarmid-ly dd3f032480 Merge pull request #488 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-14933
[ATOM-14933] Reflection probes do not show mesh reflections if the entity's transform is scaled up
2021-04-30 16:33:15 -07:00
lumberyard-employee-dm 99c82d141d LYN-3468 Updating the WhiteBox Editor Physics Tests to load the gem module using the updated filename of PhysX.Editor.Gem (#492) 2021-04-30 18:30:51 -05:00