Commit Graph

468 Commits

Author SHA1 Message Date
Mike Balfour 3f63cf3546 Misc SurfaceData Optimizations (#7299)
* 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>
2022-02-01 10:44:14 -06:00
santorac c2e220ce49 Renamed property 'set' to property 'group' for consistency with the prior naming.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-27 16:11:26 -08:00
santorac 906db920d0 Merge remote-tracking branch 'upstream/development' into Atom/santorac/RemixableMaterialTypes3
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-27 12:58:22 -08:00
santorac a4346de658 Code cleanup. New comments. Added some non-const find functions to MaterialTypeSourceData. Fixed places where I forgot to change m_name to GetName().
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-26 23:54:25 -08:00
lumberyard-employee-dm b9824ed172 Updated all array_view uses with the C++20 span. (#7157)
* Updated all array_view uses with the C++20 span.

The updates were done in the following order
1. `AZStd::array_view<([^>].+)\* ?>`  -> `AZStd::span<\1 const>`
2. `AZStd::array_view<(?:const )(.+)>` -> `AZStd::span<const \1>`
3. `AZStd::array_view` -> `AZStd::span`

Removed the implementation of array_view.

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

* Added missing whitespace between `const` and the typename for spans.

Updated the ShaderTest comparison of the ShaderResourceGroupLayout span
to compare the sizes as well

Updated comments on some of the methods that stated that they return "an
array" to mention they return "a span".

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-01-26 16:15:47 -06:00
santorac aeb43c4012 Fixed up a few small things to get Material Editor working again.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-26 13:04:28 -08:00
santorac b5c7869f14 Merge branch 'development' into Atom/santorac/RemixableMaterialTypes3
There were lots of material system conflicts that had to be resolved. I expect the build is broken at this commit, and I'll fix it in followup commits.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-25 14:47:24 -08:00
Tom Hulton-Harrop ea55c6d5e5 Initial fix for geometry being intersected when not visible (#6473)
* initial fix for geometry being intersected when not visible

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* add tests for shape intersection with helpers enabled/disabled

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* update moved cmake file after merge

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* updates following PR feedback

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
2022-01-25 16:56:58 +00:00
Chris Galvan a2db9806a8 Merge pull request #7123 from aws-lumberyard-dev/cgalvan/gitflow_220124_o3de_development
Merged `stabilization/2111RTE` to `development`
2022-01-25 08:19:34 -06:00
Chris Galvan 049b33d2df Merging stabilization/2111RTE -> development, resolved conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2022-01-24 15:55:31 -06:00
santorac fec2b889a3 Merge remote-tracking branch 'upstream/development' into Atom/santorac/RemixableMaterialTypes2_FIX2
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-24 10:54:03 -08:00
Tom Hulton-Harrop 5940982244 Ensure render geometry is refreshed when the mesh component controller is moved (#6452)
* ensure render geometry is refreshed when the mesh component controller is moved

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* cache bus pointer and send update notification when mesh changes

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* add integration test to detect MeshComponentController notification to IntersectionNotificationBus

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* remove optimize off

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* update build visibility for AtomLyIntegration editor static lib

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>

* move runtime dependencies to gem module

Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
2022-01-24 10:41:32 +00:00
santorac 42b7f21689 Fixed a place where GetFullName was still being used.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-21 11:55:02 -08:00
santorac 02acf2f65e Updated MaterialPropertyId class in preparation for nested material property sets.
Here the class has been generalized for a list of group names and a final property name, rather than assuming a single group containing the property. This included removing the unused GetPropertyName and GetGroupName functions. All that's really need from this class is conversion to a full property ID string.

Testing:
New unit test.
Reprocessed all core material types and StandardPBR test materials used in Atom Sample Viewer's material screenshot test.
Atom Sample Viewer material screenshot test script.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2022-01-20 15:43:22 -08:00
dmcdiarmid-ly 61dc7623d2 Minor change to a comment
Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com>
2022-01-20 12:41:25 -07:00
dmcdiarmid-ly c27f73c66b Added a NumRaysPerProbe DiffuseProbeGrid setting
Added supervariants to the precompiled DiffuseProbeGrid shaders for the NumRaysPerProbe values

Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com>
2022-01-19 20:17:15 -07:00
Guthrie Adams b09caa5e75 Atom Tools: disabling auto load of unused gems in some atom tools
Atom tools are set up to inherit and automatically load all of the gems used by the game project. This is a great simplification that saves us from having to manually update cmake settings for every game project to push dependencies to every tool. The tradeoff is that some dependencies will be added to certain tools that have no relevance whatsoever, potentially wasting initialization time, memory utilization, and some processing. This change follows an existing example to update a couple of tools to forego initializing unused gems. They can easily be reenabled as needed.

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2022-01-18 17:14:49 -06:00
Chris Galvan f2b1970e8f Merge pull request #6818 from windbagjacket/development
Adding ray tracing toggle to mesh component UI
2022-01-18 14:33:01 -06:00
windbagjacket 7474c5480e Adding ray tracing toggle to behavior context so it can be used with scripting.
Signed-off-by: windbagjacket <nibor@ntlworld.com>
2022-01-14 17:07:13 +00:00
windbagjacket 5c52df7211 Change property refresh to ValuesOnly instead of EntireTree
Signed-off-by: windbagjacket <nibor@ntlworld.com>
2022-01-14 10:48:13 +00:00
windbagjacket 71732c1f45 Adding ray tracing toggle to mesh component UI
Adding ray tracing toggle to mesh component UI

Signed-off-by: windbagjacket <nibor@ntlworld.com>
2022-01-11 13:55:20 +00:00
sphrose 0e0ca7585c change default input color space to SRGB
Signed-off-by: sphrose <82213493+sphrose@users.noreply.github.com>
2022-01-11 11:32:17 +00:00
lumberyard-employee-dm 18ea4ba6a8 Added a CriticalAssetsCompiled Lifecycle event (#6469)
The CriticalAssetsCompiled event can be handled to detect when the
AssetProcessor has finished processing Critical Assets

Also with the new event, an audit has been performed over all the
locations where the AssetCatalogEventBus OnCatalogLoaded event was being
handle to make sure it was the proper event to use.
If the handler was actually examing the enumerating over the full
catalog or querying all assets within the catalog, then it was a proper
use.
For handlers that were interested in a particular asset it was not

Moreover added implementations of `OnCatalogAssetChanged` and
`OnCatalogAssetAdded` to the FileTagComponent and the MaterialViewportComponent.

Any applications which uses the AtomToolsApplication
class(MaterialEditor, AtomSampleViewerStandalone,
ShaderMangementConsole) now signals a "CriticalAssetsCompiled" lifecycle
event as well as loads the "assetcatalog.xml" if it exists.

The Launcher application signals the "CrticalAssetsCompiled" event and
reloads the "assetcatalog.xml" for the ${project}.GameLauncher and
${project}.ServerLauncher in Launcher.cpp

Finally the Editor signals the "CriticalAssetsCompiled" and reloads the
"assetcatalog.xml" in CryEdit.cpp

resolves #6093

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-01-10 15:21:04 -06:00
Michael Pollind e3bf4311eb bugfix: update attenuation when light intensity changed for mode Automatic (#6499)
REF: https://github.com/o3de/o3de/issues/6128

Signed-off-by: Michael Pollind <mpollind@gmail.com>
2022-01-05 10:22:47 -06:00
Chris Galvan c7284a781e Merge pull request #6365 from aws-lumberyard-dev/Atom/guthadam/materialcomponent/workaround_for_lost_image_overrides_with_prefabs
Temporary fix for material component losing image overrides with prefabs
2022-01-04 11:28:39 -06:00
mrieggeramzn 03f6ba55fd Adding cascade blending for pcf (#6181)
* Adding cascade blending for pcf

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

* tabs to spaces

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

* tabs to spaces

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

* tabs 2 spaces

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

* Feedback using min3

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

* Only enable flag if > 1 cascade

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

* no blending if last cascade

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

* Remove unused

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2022-01-04 11:29:34 -05:00
Mike Balfour aafb9e8110 Misc Bugfixes (#6530)
* Bugfix: AreaIds don't compare correctly when the priority bus doesn't have a listener.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
(cherry picked from commit eb9e95fcb3884dee638b9032785b828359b0d8c0)

* Bugfix: Only deactivate a component if it's currently active.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
(cherry picked from commit 7c9e4b7de49e8fe009616651d6e09f66c356db38)

* Switched shared_lock to unique_lock, since the data is being written to.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Moved Legacy::CryCommon build dependency to correct location.
It was a public build dependency in FastNoise and GradientSignal, but really only should be a private dependency in Vegetation due to the vegetation system needing some init/shutdown events.
Fixing this up also required cleanup of a few unused legacy remnants in other files.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* InWorldBounds was incorrectly checking the X bounds against the Z bounds.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Removed some additional unneeded legacy code that was now causing compile errors.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Addressed PR feedback.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Adjusted cmake dependencies again, based on what's needed in the public header files in the gems.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Second attempt at the Deactivate() fix, this time by tracking the nested component state.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Addressed PR feedback, made operation symmetrical.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added CryCommon privately to other veg modules too, since they all reference AreaSystemComponent, which uses the legacy events.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
2021-12-22 10:38:04 -06:00
Mike Balfour 37bb001040 Merge pull request #6517 from aws-lumberyard-dev/mbalfour/gitflow_211220_stabilization_2111RTE
Merge from stabilization/2111RTE
2021-12-21 08:21:58 -06:00
Roman 366a7118ab Attachment: expose more function from AttachmentComponentRequestBus to behavior context (#6456)
Signed-off-by: rhhong <rhhong@amazon.com>
2021-12-20 22:00:47 -08:00
Mike Balfour 2dcf206b35 Merge commit 'd7dc2579270d2f78786c14d69648692e714a11bc' into mbalfour/gitflow_211220_stabilization_2111RTE 2021-12-20 14:50:27 -06:00
hershey5045 d7dc257927 Add MainPipeline to pass hierarchy for when HDR color grading component requests for the lut generation's image attachment. (#6436)
Signed-off-by: hershey5045 <43485729+hershey5045@users.noreply.github.com>
2021-12-16 12:07:37 -08:00
Guthrie Adams 3bca63bb71 Temporary fix for material component losing image overrides with prefabs
The bug reported that overridden texture properties would be lost whenever an entity was created, destroyed, or a prefab was created. Initially, it seemed like there was a problem with the custom JSON serializer for material properties. Debugging proved this to be incorrect because all of the data was converted to JSON values in the serializer on multiple passes. At some point during prefab patching, the data for the asset properties is lost while other values like colors and floats serialize correctly. Converting the asset data values into asset IDs resolves the immediate problem for the material component but the underlying issue is still under investigation by the prefab team. This change is being posted for review in case the underlying issue cannot be resolved in time for the next release.

Signed-off-by: Guthrie Adams <guthadam@amazon.com>

Fixing unittests and moving texture conversion into material component controller

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-12-13 11:35:05 -06:00
dmcdiarmid-ly c58a742296 Switched to a single merged ProbeData texture instead of separate textures for Relocation and Classification.
Switched to HDR irradiance.
SDK Update.
Fixed a Vulkan validation error on RayTracingSceneSrg::MeshInfo.
Improvements to DiffuseProbeGrid blending.

Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com>
2021-12-08 18:35:45 -07:00
Esteban Papp 0b9497cd45 Changes call from AZ_TRACE to AZ_PROFILE. AZ_TRACE uses a driller bus that is going to be removed
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-12-02 17:12:25 -08:00
Esteban Papp fb6e6e339f Add CRC validator (#5857)
* Adds crc validation checks

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Fixes invalid CRCs

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Changes test to smoke suite

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* excludes some test data from the validator

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* uses pathlib instead of os.path

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* fixes wrong path to test scripts

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

* Escape not needed

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
2021-11-30 15:07:57 -08:00
Guthrie Adams ff631ac07c Merge pull request #5897 from aws-lumberyard-dev/Atom/guthadam/fix_model_previews
Fixed a bug with model previews and thumbnails.
2021-11-29 10:29:24 -06:00
Artur K eca2e36687 Fix clang 13 compilation problems (#5791)
* Fix clang 13 compilation problems

Re-instated ShowPlayedSequencesDebug logic by introducing no-op lambda
which replaces missing `Draw2dLabel` functionality ( added TODO marker
there )

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* apply review suggestions

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>

* Fix type in assert message

Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
2021-11-25 09:24:39 +00:00
Guthrie Adams 357648a424 Fixed a bug with model previews and thumbnails.
A source model asset can have multiple products including models and materials.
It’s not guaranteed that the first entry in the list of products for a model asset will be a model.
In this case the first product was the default material asset.
This caused some model previews to render a gray sphere depicting the default material.

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-11-24 14:42:07 -06:00
puvvadar 724ff3b011 Merge commit 'd222aeef48ad10224958e682294e704c10ee06df' into puvvadar/gitflow_211118_o3de 2021-11-18 09:42:47 -08:00
puvvadar b37f75f060 Merge commit '713a3916f5c101c324f8e2f2e06b49bf521da783' into puvvadar/gitflow_211118_o3de 2021-11-18 09:42:23 -08:00
puvvadar 9f886de5f6 Merge commit 'dd1d515e37d4692e587c21df43a674c7134ad43b' into puvvadar/gitflow_211118_o3de 2021-11-18 09:35:21 -08:00
santorac 2774ac1811 Merge branch 'stabilization/2110' into Atom/santorac/MaterialEditorHandlesMissingTextures 2021-11-17 13:24:56 -08:00
santorac be9db80f99 Merge branch 'stabilization/2110' into Atom/santorac/MaterialEditorHandlesMissingTextures 2021-11-17 12:15:57 -08:00
Guthrie Adams cb552256f8 Moved asynchronous image loading function to atom tools framework
Moved settings registry wrapper function to atom tools framework
Created registry settings with default values for preview configurations based on asset type
Changed lighting preset previews and thumbnails to use reflective material
Created registry settings for preset selection dialog borders, padding, sizes
Updated shared preview utility functions to compare against registered asset types instead of passing them in individually

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-11-17 10:55:14 -06:00
Guthrie Adams 123b422709 Updated shared preview fit to camera logic and viewing angle
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-11-17 10:12:07 -06:00
Tommy Walton 783bb72944 Merge commit 'f1d9e7ae28bf0667487c939aa32b1ef833da80f4' into amzn-tommy/gitflow_211116_o3de2 2021-11-16 11:41:26 -08:00
mrieggeramzn dd1d515e37 Atom/mriegger/normaloffsetbiasarealight (#4917)
* Adding directional light shadow bias
* Adding normal offset bias for projected shadows

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
2021-11-16 11:08:25 -08:00
santorac db3d41ad9d Merge remote-tracking branch 'upstream/stabilization/2110' into Atom/santorac/MaterialEditorHandlesMissingTextures 2021-11-16 10:06:28 -08:00
santorac 7d849cc0d2 Changed the overall strategy for how to handle missing image references. Instead of replacing it with one of the placeholder assets, we replace it with an random UUID which will be interpreted as a missing asset (unless some discovers discovers a UUID collision). This eventually gets replaced by one of the placeholder textures at runtime. This approach gives more consistent results in how missing texture are handled between Material Editor and Material Component.
I actually tried this approach before and it didn't seem to work the way we needed, but I realized that's because PropertyAssetCtrl wasn't handling missing assets properly. I fixed a few issues there including showing the error button when the asset can't be found, and fixing a broken reference to the error icon file.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
2021-11-15 16:51:22 -08:00
Guthrie Adams 1689b880fe added version to material component exporter
deleted unnecessary checks

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2021-11-11 21:45:53 -06:00