Commit Graph

713 Commits

Author SHA1 Message Date
santorac a55d94217c Enable material version updates
Merge pull request #4338 from aws-lumberyard-dev/Atom/rbarrand/MaterialVersionUpdate

## Overview

Added support for automatically updating .material files when the property layout of the .materialtype changes. At this stage, we only support a "rename" operation for renaming or moving material properties. We can add more operations in the future if needed (this will require some improvement to how we represent the data internally, but we can deal with that as the need arises).

It's important to note that we currently have a hybrid dependency model for the material system, where materials can depend on materialtypes as job dependencies (property names are processed at asset build time), or material property names can be stored in the cooked assets (property names are processed and resolved at runtime when loading material assets). This means there are two places where we need to apply material property rename auto-updates: in the tools and in the runtime. So you will find that we have ApplyVersionUpdates() functions in both MaterialSourceData and MaterialAsset. (I hope we can move away from this hybrid approach at some point so this can all be simplified, but that depends on new Asset Processor features we don't have yet).

## Main changes
- Added version and versionUpdates structures for .materialtype files, MaterialTypeSourceData, MaterialTypeAssetCreator, etc.
- The .materialtype version number is now at the top level instead of inside the propertyLayout section, because in the future there are other ways the material type could change besides the property layout which might require version auto-updates. (The AP will fail if the version is found in the old location, and tell the user where it should be moved).
- Added ApplyVersionUpdates() and ApplyPropertyRenames() utility functions to facilitate the auto-updates.
- Updated MaterialTypeSourceData::FindProperty(name) to support renames because it must find the property data while loading .material files in order to resolve property data types.
- These new functions will report warnings when they detect that source files are out of date, and recommend the user update them. The easiest way to do this is open it in the Material Editor and save. (which can be scripted in python if necessary)
- Renamed the .material file format "propertyLayoutVersion" to "materialTypeVersion" which is more accurate. This shouldn't hurt existing data as this field wasn't actually used for anything before.

## Unit test improvements
- The new code is well unit tested.
- MaterialSourceDataTests 
  - Updated to include both a .materialtype file and a MaterialTypeAsset for the test material type. Both are used by the MaterialTypeSourceData class.
  - The default test material type now includes some version update steps; these are only used for version update tests and won't impact the other test functions.
  - Updated the path for storing temp files to disk, to just be in a "temp" folder in the exe path. (Originally they were saved to the gem folder near MaterialSourceDataTests.cpp, but at some point someone changed it to be under the exe folder, so there's no reason to use the full gem path anymore).

## Other changes
- Fixed AzCore Utils WriteFile() to create the file if it doesn't exist already.
- Updated all .materialtype files to have the version number in the new position.
- Fixed AssetSystemStub to normalize asset paths for more reliable lookup in unit tests.
2021-10-21 20:48:26 -07:00
Jonny Galloway b779f358d0 Refactor DCCsi to work better with O3DE changes (#4226)
* moving files in refactor/re-org

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* dev env refactor/re-org

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* moving/re-org so we can deprate the SDK nomiclature

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* moving/re-org so we can deprate the SDK nomiclature

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Refactoring env so I can replace SDK with Tools folder

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* re-org and prune, from SKD to Tools

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Removing old .bat files from SDK

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* updated how to retreive PYTHONHOME

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Can't use/set PYTHONHOME with DCC Tools

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* small refactor

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* repaired a missed typo (causes error)

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Added missing EntityId.h include to FocusModeInterface.h

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* refactor additional LY to O3DE tags

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Some design scaffold file stubs

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* stubbing in scaffold file pattern

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Removal of corrupted prefabs

Signed-off-by: Benjamin Black <benblac@amazon.com>

* refactored config_utils to maintain py2.7 support for maya 2020

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* refactored config_utils to maintain py2.7 support for maya 2020

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* pruning and cleanup

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* .env is for local dev overrides

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* .env is for local dev overrides

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* clean up init and logging patterns

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* Core refactoring, config.py functional standalone

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* cleaned up some bad logging, fixed up boostrap

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* fixed validation errors

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* fix logging issue, tiddy up

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* tiddy up maya for .bat bootstraping and launch

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

* name stub, fix validation

Signed-off-by: Jonny Gallowy <gallowj@amazon.com>

Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Co-authored-by: Benjamin Black <benblac@amazon.com>
2021-10-21 17:03:49 -07:00
santorac 19dee0e37c Merge branch 'development' into Atom/rbarrand/MaterialVersionUpdate 2021-10-21 15:57:57 -07:00
hershey5045 68b585102e Re-order some color grading operations. Increase values for SMH to account for HDR colors. (#4856)
Signed-off-by: rbarrand <rbarrand@amazon.com>

Co-authored-by: rbarrand <rbarrand@amazon.com>
2021-10-21 12:06:46 -07:00
santorac bf2997f960 Merge remote-tracking branch 'upstream/development' into Atom/rbarrand/MaterialVersionUpdate 2021-10-21 11:14:03 -07:00
Guthrie Adams 6566ff1fcb Fixing material system component mac release build
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-20 16:22:34 -05:00
Guthrie Adams 2e44d96b05 Merge pull request #4734 from aws-lumberyard-dev/Atom/mriegger/directionallightbias
Atom/mriegger/directionallightbias
2021-10-20 15:22:33 -05:00
Luis Sempé cd1b08ce72 Merge pull request #4748 from aws-lumberyard-dev/animation/rhhong/renderOptions
Add toolbar for anim viewport and some more camera controls.
2021-10-19 15:21:34 -07:00
Scott Romero 10b175e453 [development] promoted Atom CPU profiler into its own gem (#4742)
Extracted the CPU data and visualization systems out of Atom and turned them into a separate gem

NOTES:
 - A large portion of this change is code restructuring. The only changes made to such code was the minimum necessary for it to work in the new location.
 - The *CpuProfiler* files shown below as deletes/adds were originally moves (see 6946145), my guess is the namespace/formatting change in d193dc4 is the culprit for this.
 - There is one minor outstanding issue post move which is related to how the live CPU frame graph is displaying in the ImGui window. All the data is there and correct but the frame boundary is anchored to the wrong side (left instead of right).

Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
2021-10-19 14:20:30 -07:00
Guthrie Adams 132833238f Fixing compilation error and bug with counter
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-19 13:46:23 -05:00
AMZN-ScottR 1b1ef46d9d Merge branch 'development' into atom_cpu_profiler_gem_promotion
Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com>
2021-10-19 10:58:35 -07:00
Guthrie Adams 65dd97af48 Merge branch 'development' into Atom/guthadam/prevent_multiple_preview_renderers 2021-10-19 11:58:52 -05:00
Guthrie Adams f0bf0b6e9c correcting const casing
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-19 11:57:40 -05:00
Guthrie Adams fa3f3e4285 Merge pull request #4618 from aws-lumberyard-dev/Atom/EditorColorGrading
Implement LUT Generation Pass and hook up into Editor
2021-10-19 11:00:46 -05:00
rhhong bfa600ede4 CR feedback
Signed-off-by: rhhong <rhhong@amazon.com>
2021-10-18 22:29:36 -07:00
rhhong 32833c68c7 CR feedback
Signed-off-by: rhhong <rhhong@amazon.com>
2021-10-18 22:27:21 -07:00
Guthrie Adams f271d3f91e connected buses
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-18 18:26:13 -05:00
Guthrie Adams 5b8a37a75b Additional preview renderer checks
Preventing multiple preview renderers from being created with multiple catalog loaded notifications
Purging material preview images reaching a maximum number of stored images
Purging material previews if entity gets destroyed

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-18 18:21:50 -05:00
hershey5045 85183f5936 Add weights for the remaining color grading operation. Refactor editor hdr color grading property texts. (#266)
Signed-off-by: rbarrand <rbarrand@amazon.com>

Co-authored-by: rbarrand <rbarrand@amazon.com>
Signed-off-by: rbarrand <rbarrand@amazon.com>
2021-10-18 13:25:39 -07:00
rhhong 13781a759f Add toolbar for anim viewport and some more camera controls.
Signed-off-by: rhhong <rhhong@amazon.com>
2021-10-17 16:40:47 -07:00
santorac a3d84b5098 Merge remote-tracking branch 'upstream/development' into Atom/rbarrand/MaterialVersionUpdate 2021-10-15 21:47:33 -07:00
AMZN-ScottR da75b7ef2b [atom_cpu_profiler_gem_promotion] disconnected Atom CPU profiler preparing for gem promotion
Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com>
2021-10-15 19:22:26 -07:00
rbarrand a8b6c1e77b Add cmake file for editor scripts. Add constexpr keyword to constants. Use AZ_CRC_CE for LookModificationComponent.
Signed-off-by: rbarrand <rbarrand@amazon.com>
2021-10-15 12:56:19 -07:00
mrieggeramzn a114fa5531 Merge branch 'development' into Atom/mriegger/directionallightbias
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-10-15 12:46:58 -07:00
Guthrie Adams c0e9a353a3 Merge pull request #4717 from aws-lumberyard-dev/Atom/guthadam/shared_preview_renderer_as_interface
Replace multiple PreviewRenderer instances with single instance and AZ::Interface
2021-10-15 13:48:53 -05:00
mrieggeramzn 49f3393646 Removing unused softening boundary width controls (#4647)
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-10-15 11:26:19 -07:00
Guthrie Adams d1fe07b736 Merge branch 'Atom/guthadam/thumbnail_and_preview_refactor' into Atom/guthadam/shared_preview_renderer_as_interface 2021-10-15 10:59:33 -05:00
Guthrie Adams 42130bc1ff Merge branch 'development' into Atom/guthadam/thumbnail_and_preview_refactor 2021-10-15 10:17:06 -05:00
Guthrie Adams b434d29899 Merge pull request #4652 from aws-lumberyard-dev/Atom/guthadam/thumbnail_and_preview_refactor
Material preview images update to reflect property changes
2021-10-15 09:56:59 -05:00
hultonha 9aafc51ff5 Add first pass version of click feedback while in Focus Mode (#4693)
* add first pass version of click feedback while in Focus Mode

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* add more WIP experimental feedback ideas for Focus Mode

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* small updates after UX feedback to improve focus mode feedback

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* refactor and improve invalid click feedback

Signed-off-by: hultonha <hultonha@amazon.co.uk>

* update comments from review feedback

Signed-off-by: hultonha <hultonha@amazon.co.uk>
2021-10-15 15:25:27 +01:00
Guthrie Adams c8be25a9ce Converted preview renderer to use AZ::Interface
Made some files private when exposing public interfaces
Updated a few comments

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-14 20:22:48 -05:00
rbarrand c42d82386b Refactor and resolve PR comments.
Signed-off-by: rbarrand <rbarrand@amazon.com>
2021-10-14 15:48:13 -07:00
Guthrie Adams 8679f13bc2 Merge branch 'development' into Atom/guthadam/thumbnail_and_preview_refactor 2021-10-13 20:37:36 -05:00
rbarrand 579236ecf6 Add SPDX header for python script. Update path aliases. Re-order HDRColorGradingParams.inl to order editor properties appropriately.
Signed-off-by: rbarrand <rbarrand@amazon.com>
2021-10-13 15:57:09 -07:00
rbarrand 8a8b74a6e9 Finalize shaper implementation. Refactor color grading functions.
Signed-off-by: rbarrand <rbarrand@amazon.com>
2021-10-13 15:57:06 -07:00
Robin b00ee3ff75 Implement lut resolution.
Signed-off-by: rbarrand <rbarrand@amazon.com>
2021-10-13 15:57:05 -07:00
Robin 2313f912bc Initial commit for editor LUT generation.
Signed-off-by: rbarrand <rbarrand@amazon.com>
2021-10-13 15:57:03 -07:00
Guthrie Adams 0217f45f3f Merge pull request #4673 from aws-lumberyard-dev/Atom/guthadam/update_material_editor_icons
updated material editor skybox and changed property icons
2021-10-13 16:29:42 -05:00
amzn-phist 29b62c7b84 Various updates to get pak builds working (#4552)
* Various updates to get pak builds working

-Fix basing config file merges off engine root.
-Merge command-line in relelase to make sure they override defaults.
-Fix nullptrs.
-Exclude more paths from being sent to bootstrap setreg.

Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>

* Reverting a change that caused some test failures.

Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>

* Change tabs to spaces

Signed-off-by: amzn-phist <52085794+amzn-phist@users.noreply.github.com>
2021-10-13 15:22:25 -05:00
mrieggeramzn d7ac1be726 Adding directional light shadow bias
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-10-13 11:46:29 -07:00
Guthrie Adams afdf35a925 updated material editor skybox and changed property icons
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-13 13:41:31 -05:00
Guthrie Adams 7415277eed fixing ME shutdown
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-13 13:35:46 -05:00
Guthrie Adams 4089edb336 added missing include to fix build
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-13 11:19:01 -05:00
mrieggeramzn ea030d2890 Removing unused softening boundary width controls
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-10-12 17:48:12 -07:00
Guthrie Adams 8487373b0c Updated thumbnail notification bus to use const QPixmap&
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-12 14:41:26 -05:00
Guthrie Adams 91592d2218 Merge branch 'development' into Atom/guthadam/thumbnail_and_preview_refactor 2021-10-12 13:21:11 -05:00
Guthrie Adams e8142fa403 Updated editor material component slots to support dynamic previews rendered with property overrides applied
Fixed scaling issues with labels used for images
Reduced updating previews and material component inspector to only apply after a value is committed
Storing cache of previously rendered material previews

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-12 13:19:38 -05:00
Roman 129d249cb4 Do not delete the actor instance if it's belong to an entity. (#4624)
Signed-off-by: rhhong <rhhong@amazon.com>
2021-10-12 17:53:30 +02:00
Scott Romero a95c609bd8 [development] Migrate Atom CPU timing stats tracking to use global stats profiler (#4549)
This change is a preparation for moving the CPU profiler/visualization system from Atom into its own Gem by removing the dependency on local time tracking object AZ::RHI::CpuTimingStatistics

Full changes include:
- Removed all usage of AZ::RHI::CpuTimingStatistics
-- Replaced with pushing to AZ::Statistics::StatisticalProfilerProxy global instance
- Promoted VariableTimer from AZ::RHI to AZ::Debug
- Removed now unused CpuTimingStatistics.h

Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
2021-10-11 14:00:42 -07:00
Guthrie Adams 8aea92af29 renamed SharedThumbnailUtils to SharedPreviewUtils
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-10 02:10:15 -05:00