Commit Graph

728 Commits

Author SHA1 Message Date
galibzon 6763e2a3ac Shaders changes require two or more change cycles before updating (#5142)
* Shaders changes require two or more change cycles before updating

This fixes the problem described in the title.

Consolidated the responsibility to update the root shader variant
asset into the Shader() class. It was unnecessarily spread across
Shader(), ShaderVariant() and ShaderAsset().
In particular OnAssetReloaded now makes a temporary copy of the root
ShaderVariantAsset and updates the ShaderAsset with such reference
only when OnAssetReloaded() is called on behalf of the ShaderAsset.

Signed-off-by: galibzon <66021303+galibzon@users.noreply.github.com>
2021-11-02 16:21:26 -05:00
Tommy Walton fab0326188 Creating default seedList.seed files for Atom gems (#5147)
Signed-off-by: Tommy Walton <waltont@amazon.com>
2021-11-02 13:42:11 -07:00
Guthrie Adams 68cb8792f7 fix header comments
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-31 15:12:27 -05:00
Guthrie Adams 799290aefc Created custom JSON serializer for editor material component
The editor component contains an editor specific, dynamically generated version of the material slots to display all the possible options, organize properties for the user interface, and add custom actions.
The critical data is already stored inside of the component controller configuration, which only stores a map of modified or overridden values.
This change disables serialization of the redundant data for prefabs.

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-30 17:36:07 -05:00
Guthrie Adams 689f5b2a4a Merge pull request #5076 from aws-lumberyard-dev/Atom/guthadam/material_component_supports_scripting_enums
Fix issue setting enum values on material component from script
2021-10-28 14:41:56 -05:00
Guthrie Adams e5729fbefe Fix clearing material component default material not clearing materials or updating preview
• Changed thumbnail property control to track asset key even if image is overridden so that it will be restored if the image is cleared.
• Changed property asset control to disable the thumbnail image by default whenever the attribute is applied. It will only enable the thumbnail image if the pixmap is valid.
• Changed the material component controller to always use an empty material assignment map on deactivation so that no persistent materials are reapplied.
• Changed the material component controller to immediately send a notification that materials have updated if no materials were queued for load but the configuration contained pre created or persistent material instances. This mainly affects the material editor because it manages its own material instances.

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-28 13:58:47 -05:00
Guthrie Adams b71e307de5 Fix issue setting enum values on material component from script
Replaced get and set functions with explicit types with templates
Added special case handling for setting enum values as strings or numbers from script

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-10-28 13:53:21 -05:00
hershey5045 e22235ec5b Add OpenImageIO as runtime dependency in AtomLyIntegration. (#4987)
* Add OpenImageIO as runtime dependency in AtomLyIntegration.

Signed-off-by: rbarrand <rbarrand@amazon.com>

* Place 3rdparty import inside if block.

Signed-off-by: rbarrand <rbarrand@amazon.com>

* Add platform cmake files for other platforms to prevent compile errors.

Signed-off-by: rbarrand <rbarrand@amazon.com>

Co-authored-by: rbarrand <rbarrand@amazon.com>
2021-10-26 10:40:30 -07:00
santorac a892181432 Minor updates in response to code review feedback.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-10-23 00:02:31 -07:00
santorac cef1e200f6 Merge remote-tracking branch 'upstream/development' into Atom/santorac/MaterialPropertyRenameInMaterialComponent 2021-10-22 16:42:09 -07:00
santorac 3c331e00ff Moved the Material Component property override renaming to EditorMaterialComponent via ApplyAutomaticPropertyUpdates.
MaterialAssignment::ApplyProperties() still reports warnings but does not update the m_propertyOverrides.
MaterialAssignment::ApplyProperties() will now skip the old name'd overrides if overrides are present for the new names. I'm not sure if this will ever happen, but it did happen while I had some intermediate changes, so I imagine it could happen again.
I had to update the Material::FindPropertyIndex function to expose information about renames when they occur. This should make it easier for other systems to get (somewhat) automatic benefit from the version update feature.
I also found that there was an issue with material inspector where it wouldn't be initialized the the right override values when renames were present. Now it applies the renames to whatever override data it gets from the Material Component.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-10-22 16:41:44 -07:00
santorac a27738317b Merge pull request #4918 from aws-lumberyard-dev/Atom/santorac/RequireAzslExtensionInShaderFile
The .shader file must now include the .azsl extension when referencing a .azsl file
2021-10-22 12:45:04 -07:00
santorac 7ba9926202 The .shader file must now include the .azsl extension when referencing a .azsl file. It will no longer be automatically appended.
Fixed an issue where the shader builder would incorrectly succeed when the .azsl file is missing.
Also renamed some variables for more consistency.
Updated all .shader files accordingly.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-10-22 11:10:37 -07:00
hershey5045 f962f3d816 White Balance Updates (#4887)
* Implement simple tint for white balance color grading. Adjust temperature slider to feel linear.

Signed-off-by: rbarrand <rbarrand@amazon.com>

* Change white balance luminance preservation equation and remove unused code.

Signed-off-by: rbarrand <rbarrand@amazon.com>

Co-authored-by: rbarrand <rbarrand@amazon.com>
2021-10-22 09:53:48 -07:00
mrieggeramzn 8c6900eb06 Atom/mriegger/normaloffsetbias (#4841)
* Adding directional light shadow bias

Signed-off-by: mrieggeramzn <mriegger@amazon.com>

* Adding normal offset bias to the directional shadow maps

Signed-off-by: mrieggeramzn <mriegger@amazon.com>

* not time yet for this

Signed-off-by: mrieggeramzn <mriegger@amazon.com>

* small comment fix

Signed-off-by: mrieggeramzn <mriegger@amazon.com>

* fixing tabs

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-10-22 11:48:04 -05:00
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