* 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>
* Removed "chatty" profile markers.
These three markers were making terrain refreshes take ~200% longer in profile builds.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Terrain surface data wasn't updating its AABB correctly.
The code was making an invalid assumption that changes to the world bounds would result in an invalid dirtyRegion. It actually gets a valid region encapsulating the old and new bounds. The fix is an additional check to see if the terrain bounds changed.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Addressed previous PR feedback that terrainSystem ought to be a local variable in each test.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Added buffer for material properties of detail mateirals, storing them in a multi-indexed data vector. Updated shader with relevant struct and buffer, but the buffer will need to be moved out of the mateiral SRG to work.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Added buffer for material properties of detail mateirals, storing them in a multi-indexed data vector. Updated shader with relevant struct and buffer, but the buffer will need to be moved out of the mateiral SRG to work.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Added buffer for material properties of detail mateirals, storing them in a multi-indexed data vector. Updated shader with relevant struct and buffer, but the buffer will need to be moved out of the mateiral SRG to work.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* - Moved settings related to the detail material to a partial view srg owned by the terrain gem.
- Added support for base color in detail materials.
- Hooked up basic base color rendering of detail materials.
- Corrected the way the material data was stored.
- Added ref counting for detail materials so they can be released when no longer used.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Added buffer for material properties of detail mateirals, storing them in a multi-indexed data vector. Updated shader with relevant struct and buffer, but the buffer will need to be moved out of the mateiral SRG to work.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* - Moved settings related to the detail material to a partial view srg owned by the terrain gem.
- Added support for base color in detail materials.
- Hooked up basic base color rendering of detail materials.
- Corrected the way the material data was stored.
- Added ref counting for detail materials so they can be released when no longer used.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Detail materials now put textures into bindless array that's accessed in the shader. Shader now pulls all the detail materal information for a single mateiral but does no blending.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Correcting rebase merge problem.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fix detail roughness fade out with distance.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Adding tests for new MultiIndexedDataVector functions
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Updates to move bindless array to separate SRG
- Exposed BindSrg() in renderpass so it's possible to add additional SRGs to a pass
- Created a TerrainSrg for use by the terrain forward shader
- Moved the bindless array out of the partial view SRG to the TerrainSrg
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Moved more properties out of the view srg to the terrain srg.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Spelling fixes
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fixing bug where the roughness min/max value were inverted. Also fixed bug where bad data would show for areas where there was no macro material.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Updates from PR review
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fixing case issues and updating function name due to a recent fix.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
Use Ground Plane non functional
Added functionality to the "Use Ground Plane" toggle. Now, when it's enabled, the Terrain Layer Spawner will always provide valid terrain data at the minimum height of the spawner box, even if no Terrain Height Gradient List exists. If it's disabled, it won't provide any terrain data unless the Terrain Height Gradient List exists.
The "Use Ground Plane" toggle is now functional. When disabled, the terrain layer spawner will say "terrain exists = false" for any point in its bounds unless there's also a Terrain Height Gradient List component with a valid entry. When enabled, it will always say "terrain exists = true", and it will return the min height of the spawner box as the ground plane if there's no valid Terrain Height Gradient List height provider.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
If a terrain layer spawner went outside the world bounds, the debug wireframe wouldn't update correctly because the heights were outside the wireframe sector AABBs. Adjusted the logic to account for this.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
Using the Altitude Gradient as an input to the Height Gradient List can cause infinite recursion since it is both setting and fetching the same height value. Added guards to warn if this occurs and gracefully handles the situation.
Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
* Minor fixes for macro materials
- When macro image views are no longer used, they will explicitely be set to nullptr
- limiting for loop in shader to the number of macro materials total so it doesn't read unitialized memory
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Removing parts of the terrain shader no longer used.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
* Fixing normalization in shaders, adding default valus for all structs used in SRGs.
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>