GHI #5976 described that for really large numbers the edit field randomly changed digits. This does not happen on the latest version anymore and most likely was caused by a floating point issue that the editor team fixed. We're limiting the maximum values now additionally as in case such large numbers are needed, something is wrong with the global time scale.
Resolves#5976
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
* Fixes the problem with using actor render flags in actor component
Signed-off-by: rhhong <rhhong@amazon.com>
* In progress work for actor render flag rework
Signed-off-by: rhhong <rhhong@amazon.com>
* add an utlity function to check bit
Signed-off-by: rhhong <rhhong@amazon.com>
* code cleanup
Signed-off-by: rhhong <rhhong@amazon.com>
* More CR cleanup
Signed-off-by: rhhong <rhhong@amazon.com>
* build fix
Signed-off-by: rhhong <rhhong@amazon.com>
* CR feedback
Signed-off-by: rhhong <rhhong@amazon.com>
The LOD level for skinned meshes is determined in the render phase, which is after the animation update and is also specific to the camera/target Atom renders to, which means that different render targets could end up using different LOD levels depending on how much screen space the character's bounding box takes.
In order to make sure that all transformations are calculated by EMotion FX that the skinned mesh Atom wants to render are available, the Simple LOD Component takes ownership of the LOD level and uses the Atom LOD override. That way Atom adapts to the LOD level determined by the Simple LOD component and makes sure the skeletal matches with the geometry LOD levels.
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
* Hair
- First introduction of Hair gem to Atom and O3DE
- The hair technology is based off TressFX 4.1
- These are some of the areas we enhanced the original TressFX implementation:
- Lighting model was replaced and we now use a modified Marschner model
- Blending is done directly with the back buffer removing the silhouette of the original implementation
- Hair depth / thickness is now calculated to remove incorrect back lighting (TT lobe in the Marschner model)
- Thickness corrected to handle hair gaps hence introducing better light passage for the TT
- The hair is fully integrated into the Atom pipeline and structure design
- Usage of single shared buffer for the computer buffers reduces barriers sync overhead
Remarks:
- Collisions via SDF compute are to be introduced soon
- Improved shortcut rendering method ala Eidos Montreal to be introduced soon
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - code clean pass
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - EMFX Actor visibility implementation
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - COnnecting hair passes to Atom's MainPipeline.pass
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - adding dedicated thumbnail pipeline that does not include the hair gem
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - changed Atom shader files to allow hooking the hair to the lighting data structures
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - fixed a few headers to have the latest O3DE license + verification fixes
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - enabling editor component only when tool pipline is built + default texture add
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - fixing Linux and Android compilation builds
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - another files change to make Linux compile
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - more Linux and Android build fixes
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair
- Adding usage of fallback white texture
- Removing invalid null assignments into vectors
- Removing redundant mutex preventing deletion on some platforms
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair
- Shame: removed forgoten #pragma optimize
- Adding header complained by Android
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - removing the Hair Gem connection in the active project.
- This submission removes the connection to the active project hence allowing to run without the Gem. Enable the passes in MainPipeline.pass and declare them again when you want to use the Gem.
Remark: the gem file PassTemplates.azasset was renamed and will be connected via code in the future to avoid the need to declare in the global pass template.
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - registrating gem pass templates through the gem templates file (#198)
* Hair - registrating gem pass templates through the gem templates file
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - adding handler disconnect for the pass template registration.
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - PPLLIndexCounter buffer going data driven via the pass declarations (#202)
* Hair - PPLLIndexCounter buffer going data driven via the pass declaration
- Moving PPLLIndexCounter from code allocation and attachment to be data driven
- Fixed RPI typo bug that can prevent using buffers like that
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - fixing UI Editor (LYShine) crash (#209)
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* [Hair - resolved the multi pipeline mismatches and crashes + cleaned initialization & leftovers (#222)
* [Hair] - multiple render pipelines handling
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* [Hair] - Shut down order is handle to allow hair feature processor be deregistered only after the bootstrap component has disabled it
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* [Hair] - minor cleanups
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* [Hair] - followups from review nits
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - code fixes based on the CR remarks for the Hair merge to Dev (#248)
* Hair
- First introduction of Hair gem to Atom and O3DE
- The hair technology is based off TressFX 4.1
- These are some of the areas we enhanced the original TressFX implementation:
- Lighting model was replaced and we now use a modified Marschner model
- Blending is done directly with the back buffer removing the silhouette of the original implementation
- Hair depth / thickness is now calculated to remove incorrect back lighting (TT lobe in the Marschner model)
- Thickness corrected to handle hair gaps hence introducing better light passage for the TT
- The hair is fully integrated into the Atom pipeline and structure design
- Usage of single shared buffer for the computer buffers reduces barriers sync overhead
Remarks:
- Collisions via SDF compute are to be introduced soon
- Improved shortcut rendering method ala Eidos Montreal to be introduced soon
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - code clean pass
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - EMFX Actor visibility implementation
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - COnnecting hair passes to Atom's MainPipeline.pass
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - adding dedicated thumbnail pipeline that does not include the hair gem
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - changed Atom shader files to allow hooking the hair to the lighting data structures
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - fixed a few headers to have the latest O3DE license + verification fixes
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - enabling editor component only when tool pipline is built + default texture add
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - fixing Linux and Android compilation builds
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - another files change to make Linux compile
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - more Linux and Android build fixes
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair
- Adding usage of fallback white texture
- Removing invalid null assignments into vectors
- Removing redundant mutex preventing deletion on some platforms
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair
- Shame: removed forgoten #pragma optimize
- Adding header complained by Android
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - removing the Hair Gem connection in the active project.
- This submission removes the connection to the active project hence allowing to run without the Gem. Enable the passes in MainPipeline.pass and declare them again when you want to use the Gem.
Remark: the gem file PassTemplates.azasset was renamed and will be connected via code in the future to avoid the need to declare in the global pass template.
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - registrating gem pass templates through the gem templates file (#198)
* Hair - registrating gem pass templates through the gem templates file
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - adding handler disconnect for the pass template registration.
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - PPLLIndexCounter buffer going data driven via the pass declarations (#202)
* Hair - PPLLIndexCounter buffer going data driven via the pass declaration
- Moving PPLLIndexCounter from code allocation and attachment to be data driven
- Fixed RPI typo bug that can prevent using buffers like that
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - fixing UI Editor (LYShine) crash (#209)
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* [Hair - resolved the multi pipeline mismatches and crashes + cleaned initialization & leftovers (#222)
* [Hair] - multiple render pipelines handling
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* [Hair] - Shut down order is handle to allow hair feature processor be deregistered only after the bootstrap component has disabled it
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* [Hair] - minor cleanups
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* [Hair] - followups from review nits
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - last fixes based on CR remarks
Signed-off-by: Adi-Amazon <barlev@amazon.com>
* Hair - fixing AR
Signed-off-by: Adi-Amazon <barlev@amazon.com>
This allows the EMotionFX runtime to compile with `/we4267` enabled, which
emits a warning when converting from `size_t` to a smaller type. All tests
for the runtime have been updated accordingly, and they pass.
In instances where a range-for loop could be used, or a std algorithm, that
was used instead of using `size_t numItems = vec.size()` and a for loop.
Casts to `uint32` were removed where possible. Some places remain, like in
the file formats.
Signed-off-by: Chris Burel <burelc@amazon.com>
* Final update copyright headers to reference license files at the repo root
Signed-off-by: spham <spham@amazon.com>
* Fix copyright validator unit tests to support the stale O3DE header scenario
Signed-off-by: spham <spham@amazon.com>
-Re-purposed an unused boolean in RPI::Cullable for previous frame's visiblity to instead represent objects that are hidden in the simulation.
-Updated MeshFeatureProcessor::SetVisible to set this value on the cullable.
-Updated the MeshComponent to handle visiblity changes by not rendering the mesh instead of deactivating and/or reactivating the component.
-Updated the AtomActorInstance to handle changes to the visibility from the ActorComponent.
Tested by creating two entities with static mesh components, on entity hidden and the other visible. Plus three entities with actor components, one where the actor is visible, one where the entity is visible but the 'render character' setting on the actor component is disabled, and one where the 'render character' setting is enabled, but the entity is not visible.
For each of these 5 entities, I added them as 5 loose entities, 5 entities that were children to a parent entity, and a slice with all 5 as children to a parent entity, and tested toggling visibility of the parent entities.
For each of these 3 sets of 5 entities, I added them directly to the level, added them all to a layer where the layer was visible, and added them all to a layer where the layer was not visible, and tested toggling the visibility of the layers.
* Expose Actor bounding box configurations to component serialize and edit contexts.
Allows one, for example, to have an animation which moves the character far away from the static bounds, and not have that character dissapear when the static bounds are outside of the camera frustum
* Apply suggestions from code review
* Bug fix: name the parameter, place comments in the intended place.
* 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
* LYN-2537 Moved the Engine and Editor folder to be within the EngineAssets folder
* Fixed Documentation in bootstrap.cfg to correct the path to the user project specific registry file
* Adding a newline to the output of AssetCatalog 'Registering asset..., but type is not set' message
* Updating the AssetProcessorPlatformConfig.setreg Scan Folder to detect
the @ENGINEROOT@/EngineAssets/Engine path for engine runtime assets and
@ENGINEROOT@/EngineAssets/Editor path for engine tool assets
* Updating references to Icons and other assets to account for moving the
Engine and Editor folder under a single EngineAssets folder
* Moving the Engine Settings Registry folder from Engine/Registry -> Registry
* Removed the LY_PROJECT_CMAKE_PATH define as it is not portable to other locations. It is hard coded to the project location that was used for the CMake configuration. Furthermore it paths with backslashes within it are treated as escape characters and not a path separator
* Updated the LyTestTools asset_processor.py script to copy the exclude.filetag from the EngineAssets/Engine directory now
* Fixed Atom Shader Preprocessing when running using an External Project
* Updated the TSGenerateAction.cpp to fix the build error with using a renamed variable
* Updated the Install_Common.cmake ly_setup_others function to install the
EngineAssets directory and the each of the Gem's Assets directory while
maintaining the relative directory structure to the Engine Root
Also updated the install step to install the Registry folder at the
engine root
* Fixed the copying of the Registry folder to be in the install root, instead of under a second 'Registry' folder
* Moving the AssetProcessorPlatformConfig.setreg file over to the Registry folder
* Updated the LyTestTools and C++ code to point that the new location of
the AssetProcessorPlatformConfig.setreg file inside of the Registry
folder
* Renamed Test AssetProcessor*Config.ini files to have the .setreg extension
* Converted the AssetProcessor test setreg files from ini format to json
format using the SerializeContextTools convert-ini command
* Updated the AssetProcessor CMakeLists.txt to copy over the test setreg files to the build folder
* Updated the assetprocessor test file list to point at the renamed AsssetProcessor*Config setreg filenames
* Removed the Output Prefix code from the AssetProcessor. The complexity that it brought to the AP code is not needed, as users can replicate the behavior by just moving there assets underneath a another folder, underneath the scan folder
* Adding back support to read the AssetProcessorPlatformConfig.setreg file from the asset root. This is only needed for C++ UnitTests as they run in an environment where the accessing the Engine Settings Registry is not available
* Updating the Install_common.cmake logic to copy any "Assets" folder to
the install layout.
The Script has also been updated to copy over the "Assets" folder in the
Engine Root to the install layout instead of an "EngineAssets" folder
* Updating References to EngineAssets source asset folder in code to be the Assets source folder
* Moved the Engine Source Asset folder of 'EngineAssets' to a new folder name of 'Assets'. This is inline with the naming scheme we use for Gem asset folders
* Adding the EngineFinder.cmake to the AutomatedTesting project to allow it to work in a project centric manner
* Updating the LyTestTools copy_assets_to_project function to be able to copy assets with folders to the temporary project root
Fixed an issue in LyTestTools where the temporary log directory could have shutil.rmtree being called twice on it leading to an exception which fails an automated test
Updated the asset_procesor_gui_tests_2 AddScanFolder test to not use the
output prefix, but instead place the source asset root into a
subdirectory
* Correct the AssetProcessorPlatformConfig Scan Folders for the EngineAssets directory to point at the Assets directory
* Updated the asset procesor batch dependency test scan folder to point at the 'Assets' folder instead of 'EngineAssets'
* Removed discrepancy between editor and game simple motion components which led to an animation being played in the game one while the editor component looked broken for animations with root joints animated only.
* Sharing a new in-place attribute between the game and editor components that lets users control whether positional and rotational changes shall be applied onto root joints or not.