Commit Graph

867 Commits (1431afb51a08535a0ceabc22f11a55c0e5f5bb93)

Author SHA1 Message Date
santorac 0972c4f1a3 Merge remote-tracking branch 'upstream/development' into Atom/santorac/MaterialPropertyRenameInMaterialComponent 4 years ago
Adi Bar-Lev d5431653aa
Hair and Tools Pipeline bug fixes (#4902)
- Fixed fallback connections for hair pipeline to allow disabling the parent pass hierarchy when not required
- Renamed the Thumbnail pipeline to be used as generic minimal tools pipeline
- Reused the Tools pipeline for the preview renderer - minimal FPs and passes

Remark:
- The tools pipeline should have folloup submits for reducing passes to minimal required render passes

Signed-off-by: Adi-Amazon <Adi Bar-Lev barlev@amazon.com>

Co-authored-by: Adi-Amazon <Adi Bar-Lev barlev@amazon.com>
4 years ago
galibzon 63140dc247
Atom/galibzon/atom 4608/inline to root constant (#4897)
* Changed references to "InlineConstant" to "RootConstant".

Updated AZSLC to version 1.7.34  for mac,  linux & windows

Signed-off-by: garrieta <garrieta@amazon.com>
4 years ago
santorac c6b209ace0 Made material property auto-rename procedure apply to Material Component at runtime. This ensures that an material property overrides and any gameplay scripts that work with property overrides can get the benefit of the material type version update procedure.
I added an ApplyPropertyRenames function to MaterialTypeAsset very similar to the one in MaterialTypeSourceData.
Updated the MaterialAssignment class to apply any property renames when it discovers the old name doesn't work. This will be written to disk when the level or prefab is saved.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
antonmic 4b7eac0b40 merging dev
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic e5c7703aa7 Addressing review feedback
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
santorac 19dee0e37c Merge branch 'development' into Atom/rbarrand/MaterialVersionUpdate 4 years ago
santorac b32a6a1369 Reverted accidental change to StandardPBR.material type's color property name.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
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>
4 years ago
santorac bf2997f960 Merge remote-tracking branch 'upstream/development' into Atom/rbarrand/MaterialVersionUpdate 4 years ago
santorac f83b6594c9 Updated MaterialTypeSourceData to force users to move the "version" indicator to the new location at the top level of the json document.
(It's a simple enough change to make manually, and making .materialtype is an uncommon workflow, so not worth doing this automatically).

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
antonmic 58a518ce69 removing accidental file
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 6e7d2e6dd6 removing commented line in TAA pass
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 6642850c02 Cleaned up new Depth of Field, ready for PR
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 60148ccc39 New Depth of Field - Minor improvements, optimizations, and now works with auto focus
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic d04d9883bc New Depth Of Field working quite well with a small amount of artefacts
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
antonmic 9e8e08a815 Throwing up Depth of Field WIP so Galib can investigate AP crash with shader processing
Signed-off-by: antonmic <56370189+antonmic@users.noreply.github.com>
4 years ago
Guthrie Adams 2e44d96b05
Merge pull request #4734 from aws-lumberyard-dev/Atom/mriegger/directionallightbias
Atom/mriegger/directionallightbias
4 years ago
AMZN-ScottR 1b1ef46d9d Merge branch 'development' into atom_cpu_profiler_gem_promotion
Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com>
4 years ago
Guthrie Adams fa3f3e4285
Merge pull request #4618 from aws-lumberyard-dev/Atom/EditorColorGrading
Implement LUT Generation Pass and hook up into Editor
4 years ago
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>
4 years ago
AMZN-ScottR b89e437a6b [atom_cpu_profiler_gem_promotion] migrated CPU frame data capture API and implementation from Atom over to Profiler gem
Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com>
4 years ago
AMZN-ScottR 66f905870d [atom_cpu_profiler_gem_promotion] reinstated CPU frame time serialization in Atom profiling tools (relies on Atom frame time tracking)
Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com>
4 years ago
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>
4 years ago
moudgils 693d849bd1
Vulkan fixes (#4710)
* Disable partial Descriptor Set updates as Vk validation layer does not like that

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

* Enable parallel encoding for Vulkan
Disable partial SRG updates for Vk as the validation layer did not like that. There is a way to just updat SRG constants but that will require more work
Fix a bunch of Vulkan validation errors (mostly the ones spammming each frame)

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

* Minor feedback update

Signed-off-by: moudgils <moudgils@amazon.com>
4 years ago
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>
4 years ago
mrieggeramzn a114fa5531 Merge branch 'development' into Atom/mriegger/directionallightbias
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
santorac 6e62e66269
Fixed frame capture on vulkan
Atom Sample Viewer screenshot tests were failing because they couldn't be saved. The code was passing the previous RHI Format instead of the updated one.

Vulkan screenshot tests are operational again. ASV material screenshot test script passes on vulkan and dx12 now (other than known issues).

Merge pull request #4719 from aws-lumberyard-dev/Atom/santorac/FixVulkanPngCapture
4 years ago
mrieggeramzn 49f3393646
Removing unused softening boundary width controls (#4647)
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
santorac 1626d2d007 Minor code cleanup.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
santorac d89b1b0aa1 Fixed frame capture on vulkan. It just wasn't passing the correct RHI Format value.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
rbarrand 67c14c21cc Remove lut identity assets and code, simply calculate base coordinates for LUT programmatically.
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
rbarrand c42d82386b Refactor and resolve PR comments.
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Tommy Walton 2dd00e2983
Move wrinkle mask data out of default object srg (#4578)
* Refactored depth, shadow, and motion vector shaders to support custom object srgs. Added a new skin object srg and moved wrinklemask data out of the default object srg. Added a new minimal morph target asset for testing wrinkle masks to AutomatedTesting.

Signed-off-by: Tommy Walton <waltont@amazon.com>

* Fix copyright header

Signed-off-by: Tommy Walton <waltont@amazon.com>
4 years ago
rbarrand a3802c45b8 Fix cmakelist file for atom features.
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
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>
4 years ago
rbarrand 2ac006a468 Add HDRColorGradingCommon.azsl.
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
rbarrand 8a8b74a6e9 Finalize shaper implementation. Refactor color grading functions.
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Robin b00ee3ff75 Implement lut resolution.
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Robin 2313f912bc Initial commit for editor LUT generation.
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
hershey5045 4a133f1251 Editor HDR Color Grading Component implemented under the PostFx stack (#219)
Signed-off-by: Robin <rbarrand@amazon.com>
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Robin 580716bef6 Correct case for file.
Signed-off-by: Robin <rbarrand@amazon.com>
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Robin 22dd71739f Remove color grading pass from light adaptation parent pass due to failing ASV tests. This will be added back later on.
Signed-off-by: Robin <rbarrand@amazon.com>
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Robin ddbba7d37c Code refactor.
Signed-off-by: Robin <rbarrand@amazon.com>
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Robin 20cf2a837c Improve code quality.
Signed-off-by: Robin <rbarrand@amazon.com>
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Robin 2e2a7b2a3e Add HDR color grading pass and shaders.
Signed-off-by: Robin <rbarrand@amazon.com>
Signed-off-by: rbarrand <rbarrand@amazon.com>
4 years ago
Ken Pruiksma 937c2b2e88
Terrain FP supports macro material component (#4587)
* Adding basic support for TerrainMacroMaterialNotificationBus. Tracking macro materials in list.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
(cherry picked from commit b4773454334de940d730620ffff300b46d6c611d)

* Adding bus connection

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
(cherry picked from commit 66c99f503adb24f4be4f81716b544202d8e237d9)

* Additions to indexed data vector to allow for getting an index from the data or deleting data with a reference to the data itself instead of the index.
Additions to the feature processor for tracking macro material indices in sectors.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
(cherry picked from commit 06365dbde5454e18e5fdf941f03b17b0d632027c)

* Macro materials updating which macro materials are used in which sectors. Correctly handling construction / destruction.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Updating the terrain macro material type to have the correct properties and also not attempt to render. Refactored some of the update loop in the TerrainFP to only rebuild the sectors when necessary, otherwise just update the srgs.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Fixed up macro material to not try to actually render anything with shaders or hook to any shader data
Terrain FP now pulls data pulling from macro material instance to use in the terrain material
Various bug fixes around when terrain sectors needed reprocessing

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Adding basic support for TerrainMacroMaterialNotificationBus. Tracking macro materials in list.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
(cherry picked from commit b4773454334de940d730620ffff300b46d6c611d)

* Adding bus connection

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
(cherry picked from commit 66c99f503adb24f4be4f81716b544202d8e237d9)

* Additions to indexed data vector to allow for getting an index from the data or deleting data with a reference to the data itself instead of the index.
Additions to the feature processor for tracking macro material indices in sectors.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
(cherry picked from commit 06365dbde5454e18e5fdf941f03b17b0d632027c)

* Macro materials updating which macro materials are used in which sectors. Correctly handling construction / destruction.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Updating the terrain macro material type to have the correct properties and also not attempt to render. Refactored some of the update loop in the TerrainFP to only rebuild the sectors when necessary, otherwise just update the srgs.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Fixed up macro material to not try to actually render anything with shaders or hook to any shader data
Terrain FP now pulls data pulling from macro material instance to use in the terrain material
Various bug fixes around when terrain sectors needed reprocessing

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Constify all the things

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Updates from PR review.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
4 years ago
mrieggeramzn d7ac1be726 Adding directional light shadow bias
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
lumberyard-employee-dm 97e9f4dc7d
[LYN-6838] Various Monolithic shutdown fixes for the GameLauncher (#4564)
* Added a stateless allocator which uses AZ_OS_MALLOC/AZ_OS_FREE to
allocate memory for objects in static memory.

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

* Updated the Maestro and LyShine Anim Nodes to use the
stateless_allocator for its static containers.

This prevents crashes in static de-init due to the SystemAllocator being
destroyed at that poitn

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

* Updated the EBus AllocatorType to use the EBusEnvironmentAllocator

Because the EBus Context resides in static memory, the SystemAllocator
lifetime is shorter than the EBus Context.

This results in shutdown crashes in monolithic builds due to all of the
gem modules being linked in as static libraries and the EBus context now
destructing at the point of the executable static de-init, instead of
the module de-init, where the SystemAllocator would still be around.

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

* Fixed an assortment of shutdown issues due to deleting objects after
AZ allocators are no longer available

Fixed the NameDictionary IsReady() function to not assert when the
dictionary when invoked after the environment variable it was stored in
was destroyed.
Updated the NameData destructor to check that the NameDictionary
IsReady() before attempting to remove itself from the dictionary

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

* Fixed NameDictionary destory workflow, to reset the EnvironmentVariable
instance

Updated the EnvironmentVariable instance to store the NameDictionary as a
value.

Added a rvalue reference `Set` function overload to the
EnvironmentVariable class to support move only types.

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

* Clang 6.0.0 build fixes

The C++17 std::launder feature isn't available in that compiler version

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
4 years ago
mrieggeramzn ea030d2890 Removing unused softening boundary width controls
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
mrieggeramzn c38c9739da
Adding vertexNormal to the Surface structure and using it for shadows (#4617)
* Adding vertex shadow and using it for all shadows
* Fixing small issue with it not being initialized
* Adis recommendations for hair

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
moudgils 5cefd552a6
- Optimize SRG compilation to not update the whole SRG if not needed across all backends (#4499)
- Each resource type is tracked and updated separately
- Added caching ability for Raytracing srg to save ~2ms for a scene containing 100 x 50 vegetation patch

Signed-off-by: moudgils <moudgils@amazon.com>
4 years ago
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
4 years ago
Tobias Alexander Franke 091b729183
Do not run SSAO pass when disabled (#3826)
* Define fallback slots when shader is disabled

* Disable SSAO parent pass depending on the settings

* Move SSAO modulation pass into SsaoParent pass so it can be disabled with the rest of SSAO

* Enable SSAO by default

Co-authored-by: Tobias Alexander Franke <tobias.alexander.franke@huawei.com>
4 years ago
Tommy Walton 9686ff034f Merge remote-tracking branch 'upstream/development' into SkinnedMeshOutputStreamManager_deferred_buffer_init
Signed-off-by: Tommy Walton <waltont@amazon.com>
4 years ago
Yuriy Toporovskyy bf38f07480 Allow buffer to take any size, including 0
Signed-off-by: Yuriy Toporovskyy <toporovskyy.y@gmail.com>
4 years ago
dmcdiar b8bf5486a4 Removed the ScatterDistanceOutput texture from the EnvironmentCubeMapForwardMSAAPass.
Removed unused Srgs from the ReflectionCompositePass.

Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
galibzon 643bd84739
Create helper function for getting threads per (#4480)
* Create helper function for getting threads per
group from a compute shader

Added GetComputeShaderNumThreads() functions to RPIUtils.
By default the function returns 1, 1, 1 in case of errors.

Updated existing code that was looking for 'numthreads' attribute data
with the new GetComputeShaderNumThreads() API.

Signed-off-by: garrieta <garrieta@amazon.com>
4 years ago
Tommy Walton 256564a3e0
Model Hot-Reloading (#4304)
* Added a ModelReloader class that handles reloading the hierarchy of assets in the correct order. A ModelReloaderSystem that is used to make sure there is only one ModelReloader at a time for a given asset. Modified the Model, ModelLodAsset, and Buffer assets to not automatically reload, and instead handle reloads manually via AssetCatalog events. Modified the MeshLoader to kick off a reload via the ModelReloaderSystem whenever a model asset is added or changed.

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Comment updates

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Minor naming and comment updates based on PR feedback

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Correcting previous commit. I flipped == to != when switching from count to find, when it should have stayed ==

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Updating RenderCommon header

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Removing unneeded headers

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Reverting RayTracingFeatureProcessor change following Doug's guidance. This logic was tricky to get right initially, and leads to TDR when incorrect, so leaving as is.

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Removing a tab

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Added missing #include for AssetId

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Adding missing RTTI header

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Include ModelAsset definition intead of forward declaring it to avoid a static assert on Linux

Signed-off-by: amzn-tommy <waltont@amazon.com>
4 years ago
Guthrie Adams 09c6101b8b
Merge pull request #4416 from aws-lumberyard-dev/Atom/mriegger/stopdecalflickering
Adding some code to cache the material in the editor component to avo…
4 years ago
Adi Bar-Lev 9786d63596
Hair - Hair Gem introduction to O3DE from Atom/barlev/AtomTressFX_DevRebase (#4439)
* 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>
4 years ago
mrieggeramzn ba23583d5f Adding gadams feedback
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
mrieggeramzn 76de21940d Fixup merge
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
mrieggeramzn db68911c9a Merging
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
mrieggeramzn b3d7de1e78 Improvements. You can now call SetDecalMaterial() with any permutation and it works as expected
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
dmcdiarmid-ly fe35a09474
Merge pull request #4421 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-16458
Change the DiffuseProbeGrid component to an OBB
4 years ago
dmcdiar 04d62ae761 Passed DiffuseProbeGrid OBB directly into culling data.
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
mrieggeramzn 60a0d2ba01
Atom/mriegger/decalnormalmaps (#4302)
* Adding normal maps to decals initial commit

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

* Adding checks for normal maps not present

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

* Readding the proper switch statement

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

* Addressing PR feedback, adding brackets

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

* Adding comments

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

* fixing compile issue

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
dmcdiar 6e115fb257 Updated RTX-GI SDK to v1.1.30.
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
mrieggeramzn 65e375bb42 Guthries excellent recommendation
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
mrieggeramzn 2db8aa3ce2 Merge branch 'development' into Atom/mriegger/stopdecalflickering
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
mrieggeramzn d9a3048a6d Adding comment
Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
santorac c0d8020786 Merge branch 'development' into Atom/santorac/RemixableMaterialTypes 4 years ago
santorac 62e268bec7 Merge branch 'development' into Atom/santorac/RemixableMaterialTypes 4 years ago
Guthrie Adams 4c9f456ea5 Merge branch 'development' into Atom/guthadam/material_component_supports_property_overrides_without_material_overrides
Signed-off-by: Guthrie Adams <guthadam@amazon.com>

# Conflicts:
#	Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/MaterialComponentController.cpp
4 years ago
Artur K f44169f7fa
Cleanup SerializeContext.h pt.1 (#4264)
* Remove AssetSerializer inclusion from SerializeContext header

Moved a few Reflect methods to new cpp files.

In addition, some preparations for further header dependency reductions.

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

* Fix smoke test lua failures.

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

* Windows build fixes.

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

* Missing license headers

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

* Fix white-space issues.

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

* Code review fix for AzToolsFramework/AssetEditor/AssetEditorBus.h

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

* Fix inheritance list wrapping broken by older clang-format

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

Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
4 years ago
santorac 3753ee6f1c Merge remote-tracking branch 'upstream/development' into Atom/santorac/RemixableMaterialTypes 4 years ago
santorac f765dc0942
Changed Atom to Use LibPng instead of OpenImageIO
Merge pull request #4006 from aws-lumberyard-dev/Atom/santora/UseLibPng

OpenImageIO is a huge library and overkill for Atom's needs, which is to just save and load png files at this time. Here we remove all dependence on OpenImageIO and use libpng instead. I introduced a PngFile wrapper class to assist with loading and saving png files.

Note that there is a bit more work to do before merging these changes. I am still working on adding libpng to the 3rdParty package system. Currently these changes only reflect the addition of the Windows package. We'll make the other platform packages available before merging.
4 years ago
Ken Pruiksma 8791ae7ed7
Terrain feature processor improvements regarding material, mesh, and lod (#4303)
* Terrain feature processor improvements regarding material, mesh, and lod
- Now using a material with pbr lighting for terrain. Removed some of the old shader code that wasn't needed anymore
- Move heightmap image declaration to the material so it's not needed in the object SRG anymore
- Added prototype code (commented out) for smoothing the terrain with a b-spline weighting function
- Mesh data is all made with a proper mesh asset now.
- Added basic LOD support (no continuous LOD yet, but it does pop between lod levels)
- Moved RenderCommon to be accessible publicly. It contains stencil refs that should be public.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Fixing terrain's per object srg because of changes in the default per object srg.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* PR Fixes

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Removing unused static.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
4 years ago
dmcdiar 16d7061863 Merge branch 'development' into Atom/dmcdiar/ATOM-16458 4 years ago
dmcdiar 25b16fc82c Changed the DiffuseProbeGrid to an OBB
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
santorac 765f82d945 Merge branch 'development' into Atom/santora/UseLibPng 4 years ago
Mike Balfour 4b2dc9b3a4
Terrain System fixes (#4299)
* Remove the "TEST_SUPPORTED" traits.
Terrain unit tests should be usable on all platforms, so they shouldn't need a platform-specific trait to enable/disable.

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

* Fix a few misc terrain bugs.
* Change Activate/Deactivate to happen immediately instead of deferring.  There were too many order-of-operation bugs caused by trying to defer this.
* Added implementation for calculating normals.
* Fixed bug where GetHeightSynchronous wasn't stopping at the highest-priority layer.
* Added locks for SurfaceData bus to help ensure we lock our mutexes in the correct order and avoid deadlocks.

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

* Add trivial TerrainSystem tests.
Tests construction, Activate(), Deactivate(), and destruction.

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

* Unified Terrain system calls on single bus.

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

* Added mock for TerrainDataNotificationBus listener.
Also added unit tests to verify the listener, and added in missing notification events.

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

* Removed extra Sampler class.
Fixed up APIs to correctly pass Sampler and terrainExistsPtr around.

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

* Switched MockTerrainSystem to be proper gmock.
This makes it for flexible to use and easier to reuse from other test environments.

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

* Fix settings bug caused by bad order of operations that occurred when the methods moved to a different bus.

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

* Eliminate extra EBus by simplifying area initialization.
Previously, there was a back-and-forth ebus signal used for the terrain system to find any terrain spawners that were created prior to the terrain system activation.  Now it uses the more simple technique of just grabbing all the spawners that are currently hooked up to the spawner ebus.

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

* Switch to NiceMock so that "uninteresting" mock calls get ignored.

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

* Addressed PR feedback.
Filled in terrainExistsPtr at the end, and added it to GetNormal as well.

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

* Fixed shader height calculation.
It was off by half a pixel, and it was interpolating, both of which were wrong.

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

* Create initial LmbrCentral mocks that other Gems can use.
To help improve mock maintenance over time, this creates mocks in the same Gem as the systems being mocked, instead of the other Gems that need to use mocked systems during testing.  This way, the mocks should more easily stay in sync with the interface that they mock out.

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

* Null-guard any uses of Atom to make the class easier to unit test.

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

* Add more mocked terrain services

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

* Moved Terrain mocks to publicly-available Mocks directory.  Also added more unit tests.

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

* Change debug code to use EXACT instead of BILINEAR height sampling, because it's specifically using the terrain grid.

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

* Added support for the sampler filters.

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

* Fix bad merge.

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

* Add unit test to verify terrain layers define terrain regions.

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

* Moved the AABB component mock into a private terrain header, since it's a specialized mock just for the terrain tests.

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

* Moved sampler and normal calculations into TerrainSystem so that they can work across multiple adjacent areas.

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

* Missed a couple of unit test changes.

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

* Removed normal query as well, that needs a seprate unit test.

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

* Removed unused variable that was only caught in Linux/Android builds.

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

* Addressed PR feedback
Made the parameter names consistently listed in MockShapes.h.
Added comments to TerrainHeightGradientListComponent explaining why terrainExists is always true when a gradient exists.
Also fixed a bug where terrainExists should technically be *false* if no gradient exists.

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

* Added more descriptive comments and names for ClampPosition.

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

* Unit tests to verify height samplers work correctly.

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

* Fix bug where wireframe didn't refresh when the setting changed.

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

* Created TerrainWorldRenderer Component and moved all terrain rendering management code into it.

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

* Fixed the icon references

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

* Removed expensive profile marker.

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>

* Fixed AR error - constexpr doesn't need to be in a lambda capture.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
4 years ago
Guthrie Adams d151e16fc5 RebuildInstance only checks Asset::IsReady
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
4 years ago
Guthrie Adams b0ea4ac389 moved code for applying properties to MaterialAssignment
added lambdas for queuing and updating assets

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
4 years ago
Guthrie Adams ebcf3723f9 Material Component: Can set material property overrides on default materials
No longer need to assign material overrides to set/edit properties in UI or script
Material component will load and use the default material for a slot if no override is assigned

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
4 years ago
dmcdiarmid-ly 1050f95601
Merge pull request #4298 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-16529
Instance BLAS objects at the subMesh level in the RayTracingFeatureProcessor
4 years ago
dmcdiar 2dc7b517d1 Cached BLAS objects at the sub-mesh level
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
santorac f92daf060b Working on exposing the doubles-sided flag outside the Opacity property group.
Before, the only way to set the double-sided flag was to enable a non-opaque mode, because the flag was hidden. We are moving the double-sided flag to the general property group instead of the opacity property group, so it is always available. In this particular commit, we just add the general.doubleSided property so we don't break existing data. In an upcoming commit I will remove opacity.doubleSided, once we have the material backward compatibility system ready.

I also added another "default" texture map to the Common/Feature gem that is directional, so better for understanding UV/tangent space. These were copied from the AtomLyIntegration gem. This is being used for a screenshot test in AtomSampleViewer with the new 009_Opacity_Opaque_DoubleSided.material.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Scott Romero 8cbc5bc447
[development] Atom CPU profiler include cleanup (#4272)
- Removed all unnecessary includes to Atom CpuProfiler.h
 - Added includes to AzCore Profiler.h where necessary

Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
4 years ago
Alex Peterson 20849655ea
Initial gem dependencies (#4229)
These are immediate dependencies, and include many circular dependencies, largely amongst the Atom gems, as indicated by cmake

Signed-off-by: AMZN-alexpete <26804013+AMZN-alexpete@users.noreply.github.com>
4 years ago
dmcdiar df42377fc6 Minor changes to forward pass IBL specular
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
dmcdiar 3961d2724e Merge branch 'development' into Atom/dmcdiar/ATOM-4126 4 years ago
dmcdiar e5cc029c76 Converted ReflectionProbe Srg indices to ShaderInputNameIndex
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
hershey5045 30da67fe7d
Editor HDR Color Grading Component implemented under the PostFx stack (#4159)
* Add HDR color grading pass and shaders.

* Remove color grading pass from light adaptation parent pass due to failing ASV tests. This will be added back later on.

* Editor HDR Color Grading Component implemented under the PostFx stack (#219)

* Add softmin/max for unbounded color grading properties.

* Revert channel mixer properties to vector3. Refactor mix to weight. Fix color grading pass to convert any color variable into vec4.

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

Co-authored-by: Robin <rbarrand@amazon.com>
4 years ago
amzn-tommy ed61f47b7f Cleaner initialization of heightMinMax plus a comment in StandardMultilayerPBR_Common.azsli to indicate that the .lua needs to be updated if the .azsli enum changes.
Signed-off-by: amzn-tommy <waltont@amazon.com>
4 years ago
dmcdiar db5fd91ac9 Merge branch 'development' into Atom/dmcdiar/ATOM-4126 4 years ago
amzn-tommy d15d7c3a85 Modify CalcOverallHeightRange to not return nil
Signed-off-by: amzn-tommy <waltont@amazon.com>
4 years ago
dmcdiarmid-ly 16e806abff
Merge pull request #4200 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-16437
Instance the ray tracing BLAS objects
4 years ago
dmcdiar 154b6dc461 Added a mutex to protect the mesh and BLAS lists in the RayTracingFeatureProcessor
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
Scott Romero 36bcf5849a
[development] Migrated Atom CPU profiler to utilize new AzCore Profiler interface and related macros (#4160)
- Added new interface type AZ::Debug::Profiler to externally register profiler systems
 - Modified the Atom CPU profiler to register as an AzCore profiler
 -- This allows full engine markers to be visualized in the associated ImGui tool
 - Converted all AZ_ATOM_PROFILE_* macros to use AZ_PROFILE_* macros instead

Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
4 years ago
dmcdiar 2bd01f09fb Removed modelToWorldInverse from the stencil Srg.
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
SJ 1f542838bb
[Mac] Generate O3DE SDK app bundle that can be notarized and distributed (#4150)
* [Mac] Initial support for building with hardened runtime enabled and code signing the binaries and bundles generated by the CMake install process.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Move call to ly_post_install_step
2. Entitlements should only be added for executables
3. Change use of CMake exec_program to newer execute_process
4. Remove broken symlinks from embedded Python frameworks
5. Run post install code signing only if hardened runtime is enabled

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Remove unnecessary flag

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Remove unnecessary additional call to condesign python inside a bundle

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Move commonly used install functions for codesigning, copying files, and fixing frameworks to a utility script
2. Remove unnecessary wait in the Editor/AP launchers I added earlier.
3. Codesign 3rd party libraries for distribution.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Codesigning on 3rd party libs should only happen when hardened runtime is enabled.
2. Change the order of the if blocks in Editor's main_dummy.cpp. This was causing strange notarization issues because it wass too similar to AP's main executable.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Add new line to end of file

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Move architecture specification to PAL_mac cmake file. 2. Codesign failure should be fatal.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Address some PR feedback

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Remove unnecessary comment. Change if to use IN_LIST.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* HOME may not always be defined. Adding alternate POSIX way of determining HOME.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Checking in partial work to get O3DE SDK built as an app bundle. Has a bunch of debug code that needs to be cleaned up.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Remove this and add it back later with fixed casing.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Adding file back with fixed case

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Add entitlements sparingly(only when necessary)
2. Convert entitlements to plist files which we can directly pass to codesign
3. Install python site-packages in the o3de_sdk launcher and then launch the project manger.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Move hardened runtime check to codesigning functions only. This way, non-hardened runtime install is identical to the former except for codesign. Makes it easy for QA to test internally.
2. Move cmake min version for install to the pre-install steps.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Remove the dummy launchers for AssetProcessor and Editor
2. Add loader_path to the rpaths of binaries outside an app bundle so that the dynamic loader can load their dependencies if any.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Remove file named main_dummy.cpp

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Add O3DE SDK launcher

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Add missing runtime dependencies to gems

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Update the path to binaries when codesigning to the correct one.
2. Remove some debug messages.
3. Move installed binary path setreg generation to the target install function. This way, we get the correct path to the bundle accounting for different configs and subdirectories.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Add explanatory comments.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. ly_install_add_install_path_setreg cannot be called during install target because the runtime dependencies are already processed by then.
2. The SDK launcher now uses the ProjectManager's bundle setreg to find the path to the installed binaries

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Update path to install relative binaries after merge from dev

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Only one config of the SDK launcher needs to be installed. Preinstall steps should not be run per config, but only once.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Install python dependencies using the get_python.sh script.
2. Replace any reference to hard-coded package name/version numbers with variables.
3. Add one more missing runtime dependency.
4. Misc. PR feedback.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Remove the need for setreg files in all tool bundle. Project binary path can be used instead.
2. Move O3DE_SDK_Launcher to Code/Tools/BundleLauncher
3. Add ly_install_run_script() function for install(SCRIPT) functionality.
4. Address some other PR feedback.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Add source permission when installing O3DE_SDK executable.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Rename setreg file to add specialization tag.

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Remove LY_BUILD_PERMUTATION that's not needed

Signed-off-by: amzn-sj <srikkant@amazon.com>

* 1. Add BinariesInstallPath.setreg to all our bundles like before. This is now only added during the install process though.
2. Fix path in Install_common.cmake

Signed-off-by: amzn-sj <srikkant@amazon.com>

* Fix comment

Signed-off-by: amzn-sj <srikkant@amazon.com>
4 years ago
santorac 71c7fc0217 Updated unit tests to work with the new convention for property name vs property ID.
This revealed that the approach of reflecting both the old "id" and the new "name" would not work, because whenn saving it would write out both fields. So I decied to just give up on backward compatibility. This will be much cleaner than trying to continue supporting "id" as a field name, it is uncommon for users to make their own material types at this point, and if they have made some it is very easy to search and replace "id" with "name" update their files.

All .materialtype files have been updated. RPI unit tests now pass. ASV still passes.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
santorac c2abd2d74f Updated the naming convention for material property "names" vs "IDs".
A "property name" is the name of the just the property without regard to the group that it's in. A "group name" is the name of the group. And a "property ID" is the full unique name of a property in the form "groupName.propertyName". This is important preparation for upcoming changes where property sets can contain other property sets, and property IDs can be arbitrarily long like "layer1.baseColor.factor" for example.

The naming changes include variables, some code comments, and the .materialtype file format. I was able to make these changes in a backward compatible way so a property or group "id" field has been replaced with a "name" field, but "id" is still supported for compatibility. StandardPBR, EnhancedPBR, StandardMultilayerPBR, and Skin have all been updated. Note that MinimalPBR has not been updated, proving that backward compatibility works. (We can update this one too at some point though).

Testing:
Opened up materials in the material editor.
Ran AtomSampleViewer in dx12 and vulkan with no new failures.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
dmcdiar efce1033bc Instanced the RayTracingBLAS objects to enable re-use when the same model is added multiple times.
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
dmcdiar b737e9f80e Merge branch 'development' into Atom/dmcdiar/ATOM-4126 4 years ago
dmcdiar 880f4d96cc Changed the ReflectionProbe component to use an OBB
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
AMZN-tpeng 0f5fc1de4d
[ATOM][RHI][Vulkan] Make sure to set super-variant for non-MSAA pipel… (#4134)
* [ATOM][RHI][Vulkan] Make sure to set super-variant for non-MSAA pipeline. Separate out reflection probe draw packet checks.

Signed-off-by: Peng <tonypeng@amazon.com>

* Missed from previous commit to make sure non-MSAA super-variant is used.

Signed-off-by: Peng <tonypeng@amazon.com>

* Minor comment edit.

Signed-off-by: Peng <tonypeng@amazon.com>
4 years ago
santorac 5b04183b4e
Material System Reports Warnings About PSO-Impacting Changes
Merge pull request #4102 from aws-lumberyard-dev/Atom/santorac/WarnOnMaterialPsoChanges

These changes make material system report warnings when gameplay scripts attempt to change PSO-impacting material properties at runtime. So far the material system has always allowed any properties to be changed at runtime, including those that affect Pipeline State Objects (PSOs), as this is supported on several platforms. But some platforms require that Pipeline State Objects be pre-compiled and shipped with the game. At some point we will need to add new restrictions that limit what material properties can be changed at runtime. In the meantime, these warnings should alert users to avoid this, as the functionality likely won't be supported in the future.

- Made the Material and LuaMaterialFunctor classes configurable to report errors or warnings when material properties modify Pipeline State Objects. This is controlled by a new "MaterialPropertyPsoHandling" enum.
- Made the EditorMaterialComponent override PSO handling as Enabled, to prevent warnings when the user is editing material instance property overrides. This requried a new MaterialComponentNotificationBus bus message "OnMaterialInstanceCreated".
- Added a new ScopedValue utility class that simply sets a value when it goes out of scope.
- Removed unnecessary GetMaterialPropertyDependencies member from material functor context classes, as this is already available as part of the functor itself.
- Made Material::SetPropertyValue return early when the property value hadn't actually changed. Besides being more efficientn, this prevents unnecessary spamming of the new warning.
- Made a couple imporvements to material_find_overrides_demo.lua: 
  - Made the target material slot name configurable through an exposed component property. 
  - Fixed a timing issue where the assignmentId was invalid if FindMaterialAssignmentId is called too early.
4 years ago
hershey5045 b2445ebe0c
Add color grading pass into main pipeline (#4005)
* Add HDR color grading pass and shaders.

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

* Improve code quality.

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

* Code refactor.

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

* Remove color grading pass from light adaptation parent pass due to failing ASV tests. This will be added back later on.

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

* Add newline.

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

* Correct case for file.

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

* Update comment.

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

Co-authored-by: Robin <rbarrand@amazon.com>
4 years ago
Esteban Papp bbe437819b
Enables override/virtual warnings
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
santorac 61618e66d3 Fixed a build dependency issue between libpng and zlib on android, thanks to suggestion from @lumberyard-employee-dm
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
santorac 48e0a9d5ff Merge remote-tracking branch 'upstream/development' into Atom/santorac/WarnOnMaterialPsoChanges 4 years ago
galibzon 169b8f3679
[ATOM-5441] Shader Builders May Fail When Multiple New Files Are Added (#3862)
* [ATOM-5441] Shader Builders May Fail When Multiple
New Files Are Added

ShaderAssetBuilder::CreateJobs now recursively parses *.azsl files
looking for #include lines and builds the list of source dependencies
using a depth-first algorithm. It was using MCPP before but not anymore
(during CreateJobs).

The new algorithm may over prescribe, but fixes the issues
when multiple new shader related files are added, at once or out of order, to a game project
or Gem.

Overall the new ShaderAssetBuilder::CreateJobs() is around 40% faster
and, of course, handles source dependencies in a robust way.

* Added new test suite to AutomatedTesting project:
Gem/PythonTests/atom_renderer/test_Atom_ShaderBuildPipelineSuite.py

Bug fix to Gems/Atom/Asset/Shader/Code/Source/Editor/ShaderAssetBuilder.cpp
discovered thanks to the automated test suite. The idea is that
CreateJobs doesn't fail if the AZSL file doesn't exist. The failure is
deferred during ProcessJob. This way if the AZSL file exists the .shader
file is rebuilt automatically.

* For testability purposes and avoid memory leakage errors
during Unit Tests created the class ShaderBuilderUtility::IncludedFilesParser

Now accepts "#  include <file>" with space between '#' and 'include'.
Also now accepts the '-' character inside the file path.

Added Unit Test to validate all cases of "#include <file>" parsing.

* Fixed linux runtime issues for Unit Tests in Atom_Asset_Shader.Tests

Signed-off-by: garrieta <garrieta@amazon.com>
4 years ago
santorac bcef5e4952 I think I got the libpng android package working.
Note there is a bit of a dependency hack in Gems\Atom\Feature\Common\Code\CMakeLists.txt to work around a mysterious issue; I'll reach out to some experts for investigation.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
santorac 860571f1e3 WIP trying to get android package working.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
mrieggeramzn bd8c53550a
Replacing the old esm shadow blur with faster blur (#4095)
* Replacing the old gaussian blur with a much faster, better quality kawase blur

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

* Removing atomtesting outdated msg

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

* Some recommendations from Tommy

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

* Adding early termination from previous gaussian filtering algorithm that kawase replaces

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

* Removing pcf method

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

* removing the old blur and adding in the new kawase blur into .cmake file

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
Esteban Papp b5835fceb6 Merge branch 'development' into cmake/warn_virtual
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Gems/Atom/Feature/Common/Code/Source/Shadows/ProjectedShadowFeatureProcessor.h
4 years ago
mrieggeramzn 603e33d7f7
Removing the boundary search method. (#4024)
* Removing the boundary search method. Bicubic is now the default and only PCF filtering method

* Removing padding (based upon feedback)

* Removing PCF method from py auto testing

Signed-off-by: mrieggeramzn <mriegger@amazon.com>
4 years ago
Esteban Papp 4db353eb22 PR comments
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
santorac f75fa435f9 Made a couple imporvements to material_find_overrides_demo.lua:
- Made the target material slot name configurable through an exposed component property.
- Fixed a timing issue where the assignmentId was invalid if FindMaterialAssignmentId is called too early.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Yuriy Toporovskyy dbc1f3bb62 Don't const_cast, instead remove const qualifier from function
Signed-off-by: Yuriy Toporovskyy <toporovskyy.y@gmail.com>
4 years ago
Esteban Papp 5965760612 Merge branch 'development' into cmake/warn_virtual
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp a7780b6dbe Gems/Atom*
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Jonny Galloway 43355e47ca
minor bug fixes based on finding defects while using (#4035)
Signed-off-by: Jonny Gallowy <gallowj@amazon.com>
4 years ago
Qing Tao d9cbc97ec0
ATOM-16063 Remove SetShaderResourceGroupCallback in scene and update scene srg handling (#3969)
ATOM-16273 Compiling SceneSRG before updating it can cause a gpu crash

Changes include:
1. Removed Scene::SetShaderResourceGroupCallback() function and clean up code which use this function.
2. Moved SceneTimeSrg.azsli to RPI's DefaultSceneSrg folder and setup the constants in RPI::Scene
3. Add AZ::Event for Scene's update srg event which features and update scene srg at proper place
4. UpdateTransformServcie FP to use PrepareSceneSrg event handler.
5. Clean up shaders and srgs used in project templates.

Signed-off-by: Qing Tao <qingtao@amazon.com>
4 years ago
Mike Balfour 0505f200e5
Remove extra/bad profile markers (#4031)
Many of these are just extra noise in the profile, but the one in Archive.cpp could also cause PIX to crash.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
4 years ago
Esteban Papp 9f6d4125b8 Merge branch 'development' into cmake/warn_virtual
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Ken Pruiksma d17ac748ac
Various terrain improvements: (#3942)
* Various terrain improvements:
- Height now stored in a R16_unorm to decrease the amount of memory / memory bandwidth needed for the height field
- Many simplifications to the feature processor
- Added a shader to render to the depth pre pass
- Pulled common functionality needed by depth and forward to a common include shader
- Forward shader now outputs to all the expected render targets
- Adjusted the way normals and lighting are being calculated

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Adding missing shader files. Updated terrain shader to alter the color slightly with height.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Removed pixel shader code from terrain depth pass

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Renamed the depth pass shaders to no longer indicate they include a pixel shader.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Removing unneeded code from TerrainCommon.azsli

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
4 years ago
santorac 3d3324cc2b Merge remote-tracking branch 'upstream/development' into Atom/santora/UseLibPng
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
santorac a9c6909a29 Renamed PngImage to PngFile and put it in a Utils namespace to match the other file utilities.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
santorac 7a8eb8eda5 Added a new PngImage utility class that wraps libpng. This replaces the use of OpenImageIO in O3DE (although OpenImageIO is still a build dependency for now).
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Esteban Papp c805d443d2 Merge branch 'development' into cmake/warn_virtual
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Legacy/CryCommon/IConsole.h
#	Code/Legacy/CrySystem/LocalizedStringManager.h
#	Code/Legacy/CrySystem/XConsole.h
#	Code/Legacy/CrySystem/XConsoleVariable.h
#	Code/Legacy/CrySystem/XML/XmlUtils.cpp
#	cmake/Platform/Common/Clang/Configurations_clang.cmake
4 years ago
dmcdiar 5f95c41eb5 Added RayTracingPass support for the Scene Srg.
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
dmcdiar fd007548e0 MeshFeatureProcessor::SetVisible now adds or removes the mesh from the raytracing scene as appropriate.
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
Esteban Papp 40d2fe61a1 Gems/Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp 9a6a1ba97a fixes monolithic release
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
hershey5045 4249ceeae7
Add material property names to material assets, disable FBX dependency on materialtype files. (#3408)
* Add material property names to material assets, disable FBX dependency on materialtype files.

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

* Add reflection for MaterialAssets. Update member variable comment.

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

* Switch cvar to using bus value. Refine comments.

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

* Refactor functions and refine comments.

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

* Realign property values when material property names are populated.

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

* Switch PostLoadInit check to on asset status ready. Add realign property values code to PostLoadInit as well.

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

* Stash@{1} code.

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

* Refactor realignment code into the right places.

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

* Remove pragma optmize off.

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

* More refactoring.

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

* Refactor comments and remove code no longer needed.

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

* Refactor comments and remove unused include.

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

* Comment refactor, corrected some code.

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

Co-authored-by: Robin <rbarrand@amazon.com>
4 years ago
Qing Tao b9c0b2a5f7
Fixed a crash issue with RHI::Fence when trying to capture screenshot which null renderer is used. (#3802)
ATOM-16292, ATOM-16243, ATOM-15493

Signed-off-by: qingtao <qingtao@amazon.com>
4 years ago
santorac 675af8692d WIP switching from OpenImageIO to libpng.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Jonny Galloway 37e5ef29bb
Atom/gallowj/color grading dev (#3751)
* color grading workflow assets, python scripts, ~and test data for Nuke and PS.

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

* minor changes

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

* pep8 reformate code style, clean up, address CR

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

* Pep8 refactor, some DRY refactoring.

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

* simplification write_azasset()

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

* corrected code and further simplified ()

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

* updated readme.txt, I was mistakenly converting the wrong lut to engine

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

* refactoring, simplification and some re-org

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

* fixed bad loop in old_lut_helper

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

* improve the lut_helper and corrected lut shaping

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

* skip non-digit metadata in 3DL files

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

* file name fix

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

* nit: renamed a tag in comment

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

* style

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

* cleanup, cmd readme

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

* fixed WINGHOME

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

* Updated the readme with basic instructions

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

* fixed py bootstrapping errors

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

* removed log file (shouldn't be there)

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

* re-gen bad test lut (forgot)

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

* simplify bootstrap, enhance initialize and oiio access, remove lrg .PSD files

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

* bump py rev2 in bat files for colorgrading

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

* removed debug flag not used, caused failure

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

Co-authored-by: Jonny Gallowy <~gallowj@amazon.com>
4 years ago
mrieggeramzn e15634a867
Adding receiver plane bias to directional shadows (#3305)
* Adding receiver plane bias to directional shadows

* fixing whitespace issue

* Slight spelling change
4 years ago
Jonny Galloway 6f589ad50c
color grading workflow (#3152)
* color grading workflow assets, python scripts, ~and test data for Nuke and PS.

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

* minor changes

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

* pep8 reformate code style, clean up, address CR

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

* Pep8 refactor, some DRY refactoring.

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

* simplification write_azasset()

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

* corrected code and further simplified ()

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

* updated readme.txt, I was mistakenly converting the wrong lut to engine

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

* refactoring, simplification and some re-org

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

* fixed bad loop in old_lut_helper

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

* improve the lut_helper and corrected lut shaping

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

* skip non-digit metadata in 3DL files

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

* file name fix

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

* nit: renamed a tag in comment

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

* style

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

* cleanup, cmd readme

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

* fixed WINGHOME

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

* Updated the readme with basic instructions

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

* fixed py bootstrapping errors

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

* removed log file (shouldn't be there)

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

* re-gen bad test lut (forgot)

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

Co-authored-by: Jonny Gallowy <~gallowj@amazon.com>
4 years ago
Steve Pham fa0f2a1007
Fix unused warnings release (#3677)
* Release build fix for Windows
* Release build fix for Android
* Release build fix for Windows
* Release build fix for Android
* Release build fix for Linux
* Release build fix for Mac
* Release build fix for iOS

Signed-off-by: Steve Pham <spham@amazon.com>
4 years ago
Qing Tao f2eb8ff51f
ATOM-16237 Using setting registry to RPI system settings (#3663)
* ATOM-16237 Using setting registry to RPI system settings
Changes include:
- Remove RHISystemDesriptor since the pre-registered draw list tag is not needed.
- Remove EitorContext which was for system component settings.
- Add atom_rpi.setreg file
- Add getting RPISystemDescriptor from setting registry.

Signed-off-by: qingtao <qingtao@amazon.com>
4 years ago
Qing Tao c32740ad53
Removed all preview.png and references of preview.png in all Atom related gems. (#3664)
Signed-off-by: qingtao <qingtao@amazon.com>
4 years ago
Esteban Papp 48c959e359
[Windows] Debug build error in OpenImageIO 3rdParty library (#3625)
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Chris Burel ec0278b899
Configure default Atom assets to be enabled on the linux platform (#3611)
Signed-off-by: Chris Burel <burelc@amazon.com>
4 years ago
Esteban Papp 6b96be82ea Merge branch 'development' into cmake/linux_fix_warn_unused
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Legacy/CrySystem/Log.cpp
#	Code/Tools/Standalone/Source/Driller/Annotations/AnnotationHeaderView.cpp
#	Code/Tools/Standalone/Source/Driller/AreaChart.cpp
#	Code/Tools/Standalone/Source/Driller/AreaChart.hxx
#	Code/Tools/Standalone/Source/Driller/ChannelDataView.cpp
#	Code/Tools/Standalone/Source/Driller/DrillerCaptureWindow.cpp
#	Code/Tools/Standalone/Source/Driller/Profiler/ProfilerDataView.cpp
4 years ago
Jeremy Ong 07a14bdce1 Add AZ_BUDGET_DEFINE/AZ_BUDGET_DECLARE and remove driller
NOTE: The memory driller is still intact for now to avoid needing to
modify allocators, but the frame/cpu portions of driller and the
standalone executable are now gone.

Signed-off-by: Jeremy Ong <jcong@amazon.com>
4 years ago
Ken Pruiksma ef5b49fc2b
Adjust the sharpness of TAA's Catmull-Rom filter based on local area luminance (#3400)
* Adjust the sharpness of TAA's Catmull-Rom filter based on local area luminance.
This helps prevent ringing artifacts in high contrast areas. Due to Catmull-Rom's use of negative weights, it's possible to have a very high value neighbor sample with a negative weight completely overwhelm the result leading to a negative output. This change reduces the sharpness of the catmull rom filter in high contrast areas so the negative weights contribute less to the final result.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* PR review feedback fixes - more comments and updated the way the sharpness equation was written for clarity.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
4 years ago
Esteban Papp d91dbe3d92 Merge branch 'development' into cmake/linux_fix_warn_unused
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
carlitosan 4e0399b283
Merge pull request #3309 from aws-lumberyard-dev/carlitosan/development
JSON serialization of SC Editor Assets
4 years ago
Esteban Papp 9c7b55a31d Merge branch 'development' into cmake/linux_fix_warn_unused
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Gems/Atom/RHI/Code/Include/Atom/RHI.Reflect/Bits.h
#	Gems/Atom/RHI/Code/Include/Atom/RHI/IndexBufferView.h
#	Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditorWindow.cpp
#	Gems/Atom/Tools/ShaderManagementConsole/Code/Source/Window/ShaderManagementConsoleWindow.cpp
4 years ago
Guthrie Adams 701e36f493
Merge pull request #2752 from greenrazer/ExposeLodControls
Expose lod controls
4 years ago
chcurran 794c22c02e merge latest
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
4 years ago
santorac 60d137c5b6
Merge pull request #2746 from aws-lumberyard-dev/Atom/santorac/OptionalSceneApiMaterialConversion3
Made Model Material Conversion Optional

Added a new registry setting that disables automatic conversion of materials from model files like FBX.

By default, processing of model files (like FBX) automatically convert the included materials to Atom materials, using StandardPBR. This adds a job dependency on StandardPBR.materialtype, which propagates to any related azsl files as well. Thus any change to azsl code will cause all model files in the project to rebuild.

Some game teams have no interest in using the auto-converted materials; they always use a Material Component to apply material overrides for every mesh. This new setting allows teams to disable material auto-conversion for the entire project, thus removing the job dependency on StandardPBR.materialtype. Instead, every mesh will be assigned the same default material. Any change to azsl code will cause that one default material to rebuild, but this will not trigger any models to rebuild.

Details:
- Added /O3DE/SceneAPI/MaterialConverter registry settings for configuring the scene material converter. It includes an enable flag, and a default material to use when conversion is disabled.
- Added SceneBuilderDependencyRequests::AddFingerprintInfo which allows SceneAPI components to modify the scene builder analysis fingerprint. We use this to reprocess scene files when the material converter settings change.
- Updated SceneAPI's material asset builder to skip the StandardPBR dependency when material conversion is disabled.
- Added some code to MaterialComponentController to handle an edge case that may when disabling material conversion on an existing project, and assigned materials disappear.

Testing:
- Changing the registry setting does trigger a rebuild of the fbx files.
- When material conversion is disabled, changing an azsl file does not cause fbx files to rebuild, but the shader still reloads as expected.
- Made a test level using multiple models with multiple meshes, made various adjustments to the material slots for each mesh, and tried switching the material conversion registry setting from true to false. (Details below)
- Merged this change to a customer's fork and tested on their existing content.

Details about my test level:
- Made a new test level AtomTest project
- Added two entities, both using multi-mat_mesh-groups_1m_cubes.fbx
- Added a material component to both entities
  - Entity 1 material assignments
    - Blue_Zaxis: left as-is
    - Green_Yaxis: exported the material
    - Red_Xaxis: exported the material, and changed the material instance color to pink
    - StingrayPBS1: exported the material, scaled the UVs in the exported material source, and changed the material instance color to green.
    - With_Texture: selected an existing brick material, changed the material instance color to red.
  - Entity 2 material assignments
    - Default Material: set to an existing brick material
    - Blue_Zaxis: manually assigned built-in material that was converted from fbx
    - Green_Yaxis: manually assigned built-in material that was converted from fbx, and changed the material instance color to orange
4 years ago
michabr 89cc27fdef
Fix input priority conflict with LyShine and ImGuiPass (#3329)
* Fix input priority conflict with LyShine and ImGuiPass

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

* Add GetPriorityDebugUI() input listener priority

Signed-off-by: abrmich <abrmich@amazon.com>
4 years ago
Esteban Papp 804d833bb9 Gems/Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
santorac 6b23e07af4 Changed MaterialConverterBus GetMaterialTypePath() to return a string instead of char*
Minor code cleanup.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Esteban Papp b96b99363c Merge branch 'development' into cmake/linux_fix_warn_unused
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp c8c29b1aff
Enable warning MSVC 4296: 'operator': expression is always false 4 years ago
moudgils b2b6886338
Fixes asserts related to buffer allocation using null rhi (#3367)
Fixes GPU crashes when releasing Indirect draw and query related dx12 objects
Fixes imgui profiler related to viewing buffer allocations

Signed-off-by: moudgils <moudgils@amazon.com>
4 years ago
Kyle Birnbaum 2b1f4c2fc0
Merge branch 'development' into ExposeLodControls 4 years ago
Kyle B b53a085700 Merge branch 'development' into ExposeLodControls 4 years ago
Esteban Papp b3023242d0 Merge branch 'development' into cmake/win_fix_warn_4296
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
moudgils aa68122002
Atom starter game ios fixes (#3297)
* Various fixes for AtomStarterGame on ios
 - Use low end pipeline on ioos by default for BoootStrapComponent
 - Track the need to bind null heap within Argument buffers
 - Only bind the null heap if its needed
 - Track its usage for Vertex/Fragment stages
 - Increase null dummy buffer to 1K to address GPU crash oon thee first frame

Signed-off-by: moudgils <moudgils@amazon.com>
4 years ago
Esteban Papp a35464ca08 more fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Kyle B e410eecd93 fixed mesh feature processor abstract interface
Signed-off-by: Kyle B <kylebirnbaum@gmail.com>
4 years ago
Esteban Papp cf6c7c4d8d some unused fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp 62a0041245 enable warning 4296: 'operator': expression is always false
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Guthrie Adams aa642bd566
Merge pull request #3156 from aws-lumberyard-dev/Atom/guthadam/material_component_api_script_canvas_support
AtomTools: better script canvas support for material component
4 years ago
Esteban Papp 61f7fe5dc5 Merge branch 'development' into cmake/AddressSanitizer
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp 68b04fa6c1 Merge branch 'development' into cmake/AddressSanitizer
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Legacy/CryCommon/LegacyAllocator.h
4 years ago
santorac 079e018e8e Merge remote-tracking branch 'upstream/development' into Atom/santorac/OptionalSceneApiMaterialConversion3 4 years ago
Esteban Papp 2521ad2301 Merge branch 'development' into cmake/SPEC-2513_w4244
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Gems/Atom/RHI/DX12/Code/Source/RHI/Device.cpp
4 years ago
jiaweig 6766d10d1b
ATOM-13883 [RHI][Core] - Moving RHI init settings to the new settings registry system (#3086)
* Moved PlatformLimits to setreg. Removed Device PostInit. Some clean up.

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

* Move setreg loading the PlatformLimitsDescriptor super class.

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

* Apply same implementation for fake device used in unit tests

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

* Add implementation for Null renderer. Swap order for register RHI interface in initialization.

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

* Move back setreg from PlatfromLimitsDescriptor to Device, due to Linux dependency issue.

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

* Changed the function to take in RHI backend name

Signed-off-by: jiaweig <jiaweig@amazon.com>
4 years ago
Esteban Papp d0238a5977 More fixes after merge
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp f8e99cd7dd Merge branch 'development' into cmake/SPEC-2513_w4244
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Editor/CryEditDoc.cpp
#	Code/Framework/AzToolsFramework/AzToolsFramework/Input/QtEventToAzInputManager.cpp
#	Gems/Atom/Feature/Common/Code/Source/PostProcessing/BlendColorGradingLutsPass.cpp
#	Gems/PhysXDebug/Code/Source/SystemComponent.cpp
4 years ago
Jeremy Ong a5f072f7a9 Remove statistics profiler
Signed-off-by: Jeremy Ong <jcong@amazon.com>
4 years ago
Jeremy Ong df9b4d4a2f Deprecate profiler categories based on global enum
(to be supplanted by registered budgets in the future)

Signed-off-by: Jeremy Ong <jcong@amazon.com>
4 years ago
Ken Pruiksma 90845313fb
Overhaul of LookModification (#3282)
* Fixed log2 shaper equations. Added bspline sampling for lut. Added options for custom log2 or linear lut with custom exposure ranges.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Added support for PQ shaper. Added shader option & cvar for lut sampling quality. Fixed issues in the blend lut shader that were causing considerable quality loss. No longer always changing to the log2 1000 nit shaper when blending luts - if the source luts all use the same shaper, keep using that shaper in the blended lut.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Fixed an integer -> float

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Minor PR reveiw updates

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
4 years ago
AMZN-tpeng e15ae750a2
[ATOm][RHI][Vulkan][Android] - Reorganize float2 data members to floa… (#2718)
* [ATOm][RHI][Vulkan][Android] - Reorganize float2 data members to float to avoid Android Mali GPUdriver crashes

Signed-off-by: Peng <tonypeng@amazon.com>

* [ATOM][RHI][Vulkan][Android] - Added reason comment for modifying float2 in the shader

Signed-off-by: Peng <tonypeng@amazon.com>
4 years ago
chcurran 1d1cea34dd Undo artifacts for JsonUtils sojourn into AzToolsFramework
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
4 years ago
Esteban Papp dd80a3ebae Linux and non-unity build fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Kyle B c515ead27e attempt to fixed mock errors
Signed-off-by: Kyle B <kylebirnbaum@gmail.com>
4 years ago
chcurran de9e991ccc merge development
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
4 years ago
chcurran 88121f3bb4 move JsonUtils to AzCore
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
4 years ago
Esteban Papp 036114a5a7 Merge branch 'development' into cmake/SPEC-2513_w4244
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Framework/AzToolsFramework/AzToolsFramework/Input/QtEventToAzInputManager.cpp
4 years ago
Jacob Hilliard e865ad5d23
Profiler: implement loading from saved captures (#3026)
* Profiler: implement loading from saved capture
Adds functionality for finding a saved capture on disk and then
deserializing it using rapidjson's built-in buffered stream reader. This
does require use of raw file pointers since saved captures can be
hundreds of megabytes.
Actually showing the data in the visualizer is TODO.
* Profiler: use heap buffer over stack buffer
* Profiler: move deserialization logic to ImGuiCpuProfiler

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>
4 years ago
galibzon 4cac875589
[ATOM-15058] Remove Automatic Entry Point Detection (#3150)
.shader files must declare at least  one entry function.

Signed-off-by: garrieta <garrieta@amazon.com>
4 years ago
Kyle B 01ad7c5e4e fixed namespace issue with the mocks
Signed-off-by: Kyle B <kylebirnbaum@gmail.com>
4 years ago
Esteban Papp e6b5342c07 Gems/Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
pappeste dcab2751de Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
pappeste 58f8b563d0 fix them all
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Esteban Papp 90cad016de Gems/Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
pappeste 38fd7f0013 fixing Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Guthrie Adams 7da5b032e7 updated test scripts
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
4 years ago
chcurran 5044204839 Move JsonUtils.h for support of SC serialization
Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
4 years ago