Merge pull request #6626 from aws-lumberyard-dev/terrain/mbalfour/terrain_system_benchmarks
Terrain/mbalfour/terrain system benchmarks
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ConstantGradientComponent.h"
|
||||
#include <GradientSignal/Components/ConstantGradientComponent.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "DitherGradientComponent.h"
|
||||
#include <GradientSignal/Components/DitherGradientComponent.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "GradientSurfaceDataComponent.h"
|
||||
#include <GradientSignal/Components/GradientSurfaceDataComponent.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "GradientTransformComponent.h"
|
||||
#include <GradientSignal/Components/GradientTransformComponent.h>
|
||||
#include <AzCore/Math/Vector2.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ImageGradientComponent.h"
|
||||
#include <GradientSignal/Components/ImageGradientComponent.h>
|
||||
#include <AzCore/Asset/AssetManager.h>
|
||||
#include <AzCore/Asset/AssetSerializer.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "InvertGradientComponent.h"
|
||||
#include <GradientSignal/Components/InvertGradientComponent.h>
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "LevelsGradientComponent.h"
|
||||
#include <GradientSignal/Components/LevelsGradientComponent.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "MixedGradientComponent.h"
|
||||
#include <GradientSignal/Components/MixedGradientComponent.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "PerlinGradientComponent.h"
|
||||
#include <GradientSignal/Components/PerlinGradientComponent.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/Jobs/Job.h>
|
||||
#include <AzCore/Jobs/JobFunction.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "PosterizeGradientComponent.h"
|
||||
#include <GradientSignal/Components/PosterizeGradientComponent.h>
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "RandomGradientComponent.h"
|
||||
#include <GradientSignal/Components/RandomGradientComponent.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ReferenceGradientComponent.h"
|
||||
#include <GradientSignal/Components/ReferenceGradientComponent.h>
|
||||
#include <AzCore/Debug/Profiler.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ShapeAreaFalloffGradientComponent.h"
|
||||
#include <GradientSignal/Components/ShapeAreaFalloffGradientComponent.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "SmoothStepGradientComponent.h"
|
||||
#include <GradientSignal/Components/SmoothStepGradientComponent.h>
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "SurfaceAltitudeGradientComponent.h"
|
||||
#include <GradientSignal/Components/SurfaceAltitudeGradientComponent.h>
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "SurfaceMaskGradientComponent.h"
|
||||
#include <GradientSignal/Components/SurfaceMaskGradientComponent.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
#include <AzCore/Serialization/SerializeContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "SurfaceSlopeGradientComponent.h"
|
||||
#include <GradientSignal/Components/SurfaceSlopeGradientComponent.h>
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "ThresholdGradientComponent.h"
|
||||
#include <GradientSignal/Components/ThresholdGradientComponent.h>
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <AzCore/RTTI/BehaviorContext.h>
|
||||
#include <AzCore/Serialization/EditContext.h>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/ConstantGradientComponent.h>
|
||||
#include <GradientSignal/Components/ConstantGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/DitherGradientComponent.h>
|
||||
#include <GradientSignal/Components/DitherGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Components/GradientSurfaceDataComponent.h>
|
||||
#include <GradientSignal/Components/GradientSurfaceDataComponent.h>
|
||||
#include <AzFramework/Entity/EntityDebugDisplayBus.h>
|
||||
#include <LmbrCentral/Component/EditorWrappedComponentBase.h>
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Components/GradientTransformComponent.h>
|
||||
#include <GradientSignal/Components/GradientTransformComponent.h>
|
||||
#include <LmbrCentral/Component/EditorWrappedComponentBase.h>
|
||||
|
||||
namespace GradientSignal
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/ImageGradientComponent.h>
|
||||
#include <GradientSignal/Components/ImageGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/InvertGradientComponent.h>
|
||||
#include <GradientSignal/Components/InvertGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/LevelsGradientComponent.h>
|
||||
#include <GradientSignal/Components/LevelsGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/MixedGradientComponent.h>
|
||||
#include <GradientSignal/Components/MixedGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#include <AzCore/Module/Module.h>
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/PerlinGradientComponent.h>
|
||||
#include <GradientSignal/Components/PerlinGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/PosterizeGradientComponent.h>
|
||||
#include <GradientSignal/Components/PosterizeGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <GradientSignal/Editor/EditorGradientTypeIds.h>
|
||||
#include <AzToolsFramework/ToolsComponents/EditorVisibilityBus.h>
|
||||
#include <Components/RandomGradientComponent.h>
|
||||
#include <GradientSignal/Components/RandomGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/ReferenceGradientComponent.h>
|
||||
#include <GradientSignal/Components/ReferenceGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/ShapeAreaFalloffGradientComponent.h>
|
||||
#include <GradientSignal/Components/ShapeAreaFalloffGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/SmoothStepGradientComponent.h>
|
||||
#include <GradientSignal/Components/SmoothStepGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/SurfaceAltitudeGradientComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceAltitudeGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/SurfaceMaskGradientComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceMaskGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/SurfaceSlopeGradientComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceSlopeGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <GradientSignal/Editor/EditorGradientComponentBase.h>
|
||||
#include <Components/ThresholdGradientComponent.h>
|
||||
#include <GradientSignal/Components/ThresholdGradientComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -9,24 +9,24 @@
|
||||
|
||||
#include <GradientSignalModule.h>
|
||||
#include <GradientSignalSystemComponent.h>
|
||||
#include <Components/SmoothStepGradientComponent.h>
|
||||
#include <Components/SurfaceAltitudeGradientComponent.h>
|
||||
#include <Components/SurfaceSlopeGradientComponent.h>
|
||||
#include <Components/MixedGradientComponent.h>
|
||||
#include <Components/ImageGradientComponent.h>
|
||||
#include <Components/ConstantGradientComponent.h>
|
||||
#include <Components/ThresholdGradientComponent.h>
|
||||
#include <Components/LevelsGradientComponent.h>
|
||||
#include <Components/ReferenceGradientComponent.h>
|
||||
#include <Components/InvertGradientComponent.h>
|
||||
#include <Components/DitherGradientComponent.h>
|
||||
#include <Components/PosterizeGradientComponent.h>
|
||||
#include <Components/ShapeAreaFalloffGradientComponent.h>
|
||||
#include <Components/PerlinGradientComponent.h>
|
||||
#include <Components/RandomGradientComponent.h>
|
||||
#include <Components/GradientTransformComponent.h>
|
||||
#include <Components/SurfaceMaskGradientComponent.h>
|
||||
#include <Components/GradientSurfaceDataComponent.h>
|
||||
#include <GradientSignal/Components/SmoothStepGradientComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceAltitudeGradientComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceSlopeGradientComponent.h>
|
||||
#include <GradientSignal/Components/MixedGradientComponent.h>
|
||||
#include <GradientSignal/Components/ImageGradientComponent.h>
|
||||
#include <GradientSignal/Components/ConstantGradientComponent.h>
|
||||
#include <GradientSignal/Components/ThresholdGradientComponent.h>
|
||||
#include <GradientSignal/Components/LevelsGradientComponent.h>
|
||||
#include <GradientSignal/Components/ReferenceGradientComponent.h>
|
||||
#include <GradientSignal/Components/InvertGradientComponent.h>
|
||||
#include <GradientSignal/Components/DitherGradientComponent.h>
|
||||
#include <GradientSignal/Components/PosterizeGradientComponent.h>
|
||||
#include <GradientSignal/Components/ShapeAreaFalloffGradientComponent.h>
|
||||
#include <GradientSignal/Components/PerlinGradientComponent.h>
|
||||
#include <GradientSignal/Components/RandomGradientComponent.h>
|
||||
#include <GradientSignal/Components/GradientTransformComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceMaskGradientComponent.h>
|
||||
#include <GradientSignal/Components/GradientSurfaceDataComponent.h>
|
||||
|
||||
namespace GradientSignal
|
||||
{
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
#include <AzCore/UnitTest/TestTypes.h>
|
||||
#include <AzFramework/Asset/AssetCatalogBus.h>
|
||||
|
||||
#include <Source/Components/ImageGradientComponent.h>
|
||||
#include <Source/Components/PerlinGradientComponent.h>
|
||||
#include <Source/Components/RandomGradientComponent.h>
|
||||
#include <Source/Components/GradientTransformComponent.h>
|
||||
#include <GradientSignal/Components/ImageGradientComponent.h>
|
||||
#include <GradientSignal/Components/PerlinGradientComponent.h>
|
||||
#include <GradientSignal/Components/RandomGradientComponent.h>
|
||||
#include <GradientSignal/Components/GradientTransformComponent.h>
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
#include <AzCore/Math/Vector2.h>
|
||||
#include <AzFramework/Asset/AssetCatalogBus.h>
|
||||
|
||||
#include <Source/Components/ImageGradientComponent.h>
|
||||
#include <Source/Components/GradientTransformComponent.h>
|
||||
#include <GradientSignal/Components/ImageGradientComponent.h>
|
||||
#include <GradientSignal/Components/GradientTransformComponent.h>
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <Tests/GradientSignalTestFixtures.h>
|
||||
|
||||
#include <Source/Components/MixedGradientComponent.h>
|
||||
#include <Source/Components/ReferenceGradientComponent.h>
|
||||
#include <Source/Components/ShapeAreaFalloffGradientComponent.h>
|
||||
#include <Source/Components/SurfaceAltitudeGradientComponent.h>
|
||||
#include <Source/Components/SurfaceMaskGradientComponent.h>
|
||||
#include <Source/Components/SurfaceSlopeGradientComponent.h>
|
||||
#include <Source/Components/RandomGradientComponent.h>
|
||||
#include <Source/Components/ConstantGradientComponent.h>
|
||||
#include <Source/Components/DitherGradientComponent.h>
|
||||
#include <Components/ImageGradientComponent.h>
|
||||
#include <GradientSignal/Components/MixedGradientComponent.h>
|
||||
#include <GradientSignal/Components/ReferenceGradientComponent.h>
|
||||
#include <GradientSignal/Components/ShapeAreaFalloffGradientComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceAltitudeGradientComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceMaskGradientComponent.h>
|
||||
#include <GradientSignal/Components/SurfaceSlopeGradientComponent.h>
|
||||
#include <GradientSignal/Components/RandomGradientComponent.h>
|
||||
#include <GradientSignal/Components/ConstantGradientComponent.h>
|
||||
#include <GradientSignal/Components/DitherGradientComponent.h>
|
||||
#include <GradientSignal/Components/ImageGradientComponent.h>
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
#include <AzTest/AzTest.h>
|
||||
|
||||
#include <Source/Components/ConstantGradientComponent.h>
|
||||
#include <Source/Components/DitherGradientComponent.h>
|
||||
#include <Source/Components/InvertGradientComponent.h>
|
||||
#include <GradientSignal/Components/ConstantGradientComponent.h>
|
||||
#include <GradientSignal/Components/DitherGradientComponent.h>
|
||||
#include <GradientSignal/Components/InvertGradientComponent.h>
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
#include <AzCore/Math/MathUtils.h>
|
||||
#include <Tests/GradientSignalTestFixtures.h>
|
||||
|
||||
#include <Source/Components/ConstantGradientComponent.h>
|
||||
#include <Source/Components/GradientSurfaceDataComponent.h>
|
||||
#include <GradientSignal/Components/ConstantGradientComponent.h>
|
||||
#include <GradientSignal/Components/GradientSurfaceDataComponent.h>
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
#include <GradientSignal/PerlinImprovedNoise.h>
|
||||
#include <GradientSignal/Ebuses/GradientRequestBus.h>
|
||||
#include <Source/Components/PerlinGradientComponent.h>
|
||||
#include <Source/Components/RandomGradientComponent.h>
|
||||
#include <Source/Components/LevelsGradientComponent.h>
|
||||
#include <Source/Components/PosterizeGradientComponent.h>
|
||||
#include <Source/Components/SmoothStepGradientComponent.h>
|
||||
#include <Source/Components/ThresholdGradientComponent.h>
|
||||
#include <Source/Components/GradientTransformComponent.h>
|
||||
#include <GradientSignal/Components/PerlinGradientComponent.h>
|
||||
#include <GradientSignal/Components/RandomGradientComponent.h>
|
||||
#include <GradientSignal/Components/LevelsGradientComponent.h>
|
||||
#include <GradientSignal/Components/PosterizeGradientComponent.h>
|
||||
#include <GradientSignal/Components/SmoothStepGradientComponent.h>
|
||||
#include <GradientSignal/Components/ThresholdGradientComponent.h>
|
||||
#include <GradientSignal/Components/GradientTransformComponent.h>
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <AzCore/Math/Vector2.h>
|
||||
#include <AZTestShared/Math/MathTestHelpers.h>
|
||||
|
||||
#include <Source/Components/GradientTransformComponent.h>
|
||||
#include <GradientSignal/Components/GradientTransformComponent.h>
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
|
||||
@@ -15,6 +15,24 @@ set(FILES
|
||||
Include/GradientSignal/PerlinImprovedNoise.h
|
||||
Include/GradientSignal/Util.h
|
||||
Include/GradientSignal/GradientImageConversion.h
|
||||
Include/GradientSignal/Components/ConstantGradientComponent.h
|
||||
Include/GradientSignal/Components/DitherGradientComponent.h
|
||||
Include/GradientSignal/Components/GradientSurfaceDataComponent.h
|
||||
Include/GradientSignal/Components/GradientTransformComponent.h
|
||||
Include/GradientSignal/Components/ImageGradientComponent.h
|
||||
Include/GradientSignal/Components/InvertGradientComponent.h
|
||||
Include/GradientSignal/Components/LevelsGradientComponent.h
|
||||
Include/GradientSignal/Components/MixedGradientComponent.h
|
||||
Include/GradientSignal/Components/PerlinGradientComponent.h
|
||||
Include/GradientSignal/Components/PosterizeGradientComponent.h
|
||||
Include/GradientSignal/Components/RandomGradientComponent.h
|
||||
Include/GradientSignal/Components/ReferenceGradientComponent.h
|
||||
Include/GradientSignal/Components/ShapeAreaFalloffGradientComponent.h
|
||||
Include/GradientSignal/Components/SmoothStepGradientComponent.h
|
||||
Include/GradientSignal/Components/SurfaceAltitudeGradientComponent.h
|
||||
Include/GradientSignal/Components/SurfaceMaskGradientComponent.h
|
||||
Include/GradientSignal/Components/SurfaceSlopeGradientComponent.h
|
||||
Include/GradientSignal/Components/ThresholdGradientComponent.h
|
||||
Include/GradientSignal/Ebuses/GradientTransformRequestBus.h
|
||||
Include/GradientSignal/Ebuses/GradientRequestBus.h
|
||||
Include/GradientSignal/Ebuses/GradientPreviewRequestBus.h
|
||||
@@ -40,41 +58,23 @@ set(FILES
|
||||
Include/GradientSignal/Ebuses/GradientSurfaceDataRequestBus.h
|
||||
Include/GradientSignal/Ebuses/SmoothStepRequestBus.h
|
||||
Source/Components/ConstantGradientComponent.cpp
|
||||
Source/Components/ConstantGradientComponent.h
|
||||
Source/Components/DitherGradientComponent.cpp
|
||||
Source/Components/DitherGradientComponent.h
|
||||
Source/Components/GradientSurfaceDataComponent.cpp
|
||||
Source/Components/GradientSurfaceDataComponent.h
|
||||
Source/Components/GradientTransformComponent.cpp
|
||||
Source/Components/GradientTransformComponent.h
|
||||
Source/Components/ImageGradientComponent.cpp
|
||||
Source/Components/ImageGradientComponent.h
|
||||
Source/Components/InvertGradientComponent.cpp
|
||||
Source/Components/InvertGradientComponent.h
|
||||
Source/Components/LevelsGradientComponent.cpp
|
||||
Source/Components/LevelsGradientComponent.h
|
||||
Source/Components/MixedGradientComponent.cpp
|
||||
Source/Components/MixedGradientComponent.h
|
||||
Source/Components/PerlinGradientComponent.cpp
|
||||
Source/Components/PerlinGradientComponent.h
|
||||
Source/Components/PosterizeGradientComponent.cpp
|
||||
Source/Components/PosterizeGradientComponent.h
|
||||
Source/Components/RandomGradientComponent.cpp
|
||||
Source/Components/RandomGradientComponent.h
|
||||
Source/Components/ReferenceGradientComponent.cpp
|
||||
Source/Components/ReferenceGradientComponent.h
|
||||
Source/Components/ShapeAreaFalloffGradientComponent.cpp
|
||||
Source/Components/ShapeAreaFalloffGradientComponent.h
|
||||
Source/Components/SmoothStepGradientComponent.cpp
|
||||
Source/Components/SmoothStepGradientComponent.h
|
||||
Source/Components/SurfaceAltitudeGradientComponent.cpp
|
||||
Source/Components/SurfaceAltitudeGradientComponent.h
|
||||
Source/Components/SurfaceMaskGradientComponent.cpp
|
||||
Source/Components/SurfaceMaskGradientComponent.h
|
||||
Source/Components/SurfaceSlopeGradientComponent.cpp
|
||||
Source/Components/SurfaceSlopeGradientComponent.h
|
||||
Source/Components/ThresholdGradientComponent.cpp
|
||||
Source/Components/ThresholdGradientComponent.h
|
||||
Source/GradientSampler.cpp
|
||||
Source/GradientSignalSystemComponent.cpp
|
||||
Source/GradientSignalSystemComponent.h
|
||||
|
||||
@@ -119,6 +119,11 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
|
||||
NAME Gem::Terrain.Tests
|
||||
)
|
||||
|
||||
ly_add_googlebenchmark(
|
||||
NAME Gem::Terrain.Benchmarks
|
||||
TARGET Gem::Terrain.Tests
|
||||
)
|
||||
|
||||
# If we are a host platform we want to add tools test like editor tests here
|
||||
if(PAL_TRAIT_BUILD_HOST_TOOLS)
|
||||
# We support Terrain.Editor.Tests on this platform, add Terrain.Editor.Tests target which depends on Terrain.Editor
|
||||
|
||||
@@ -32,6 +32,13 @@ namespace Terrain
|
||||
AZ_RTTI(TerrainSurfaceGradientMapping, "{473AD2CE-F22A-45A9-803F-2192F3D9F2BF}");
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
TerrainSurfaceGradientMapping() = default;
|
||||
TerrainSurfaceGradientMapping(const AZ::EntityId& entityId, const SurfaceData::SurfaceTag& surfaceTag)
|
||||
: m_gradientEntityId(entityId)
|
||||
, m_surfaceTag(surfaceTag)
|
||||
{
|
||||
}
|
||||
|
||||
AZ::EntityId m_gradientEntityId;
|
||||
SurfaceData::SurfaceTag m_surfaceTag;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,421 @@
|
||||
/*
|
||||
* Copyright (c) Contributors to the Open 3D Engine Project.
|
||||
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0 OR MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef HAVE_BENCHMARK
|
||||
|
||||
#include <AzCore/Component/ComponentApplication.h>
|
||||
#include <AzCore/Component/Entity.h>
|
||||
#include <AzCore/Component/TransformBus.h>
|
||||
#include <AzCore/Memory/PoolAllocator.h>
|
||||
#include <AzCore/UnitTest/TestTypes.h>
|
||||
#include <AzFramework/Components/TransformComponent.h>
|
||||
#include <AzFramework/Terrain/TerrainDataRequestBus.h>
|
||||
#include <AzTest/AzTest.h>
|
||||
|
||||
#include <GradientSignal/Components/RandomGradientComponent.h>
|
||||
#include <GradientSignal/Components/GradientTransformComponent.h>
|
||||
#include <GradientSignal/Ebuses/GradientRequestBus.h>
|
||||
|
||||
#include <SurfaceData/SurfaceDataTypes.h>
|
||||
|
||||
#include <LmbrCentral/Shape/ShapeComponentBus.h>
|
||||
#include <MockAxisAlignedBoxShapeComponent.h>
|
||||
|
||||
#include <TerrainSystem/TerrainSystem.h>
|
||||
#include <Components/TerrainLayerSpawnerComponent.h>
|
||||
#include <Components/TerrainHeightGradientListComponent.h>
|
||||
#include <Components/TerrainSurfaceGradientListComponent.h>
|
||||
|
||||
#include <benchmark/benchmark.h>
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
using ::testing::NiceMock;
|
||||
using ::testing::Return;
|
||||
|
||||
class TerrainSystemBenchmarkFixture
|
||||
: public UnitTest::AllocatorsBenchmarkFixture
|
||||
, public UnitTest::TraceBusRedirector
|
||||
{
|
||||
public:
|
||||
void SetUp(const benchmark::State& state) override
|
||||
{
|
||||
InternalSetUp(state);
|
||||
}
|
||||
void SetUp(benchmark::State& state) override
|
||||
{
|
||||
InternalSetUp(state);
|
||||
}
|
||||
|
||||
void TearDown(const benchmark::State& state) override
|
||||
{
|
||||
InternalTearDown(state);
|
||||
}
|
||||
void TearDown(benchmark::State& state) override
|
||||
{
|
||||
InternalTearDown(state);
|
||||
}
|
||||
|
||||
void InternalSetUp(const benchmark::State& state)
|
||||
{
|
||||
AZ::Debug::TraceMessageBus::Handler::BusConnect();
|
||||
UnitTest::AllocatorsBenchmarkFixture::SetUp(state);
|
||||
|
||||
m_app = AZStd::make_unique<AZ::ComponentApplication>();
|
||||
ASSERT_TRUE(m_app != nullptr);
|
||||
|
||||
AZ::ComponentApplication::Descriptor componentAppDesc;
|
||||
|
||||
AZ::Entity* systemEntity = m_app->Create(componentAppDesc);
|
||||
ASSERT_TRUE(systemEntity != nullptr);
|
||||
m_app->AddEntity(systemEntity);
|
||||
|
||||
AZ::AllocatorInstance<AZ::ThreadPoolAllocator>::Create();
|
||||
}
|
||||
|
||||
void InternalTearDown(const benchmark::State& state)
|
||||
{
|
||||
AZ::AllocatorInstance<AZ::ThreadPoolAllocator>::Destroy();
|
||||
|
||||
m_app->Destroy();
|
||||
m_app.reset();
|
||||
|
||||
UnitTest::AllocatorsBenchmarkFixture::TearDown(state);
|
||||
AZ::Debug::TraceMessageBus::Handler::BusDisconnect();
|
||||
}
|
||||
|
||||
AZStd::unique_ptr<AZ::Entity> CreateEntity()
|
||||
{
|
||||
return AZStd::make_unique<AZ::Entity>();
|
||||
}
|
||||
|
||||
void ActivateEntity(AZ::Entity* entity)
|
||||
{
|
||||
entity->Init();
|
||||
entity->Activate();
|
||||
}
|
||||
|
||||
template<typename Component, typename Configuration>
|
||||
Component* CreateComponent(AZ::Entity* entity, const Configuration& config)
|
||||
{
|
||||
m_app->RegisterComponentDescriptor(Component::CreateDescriptor());
|
||||
return entity->CreateComponent<Component>(config);
|
||||
}
|
||||
|
||||
template<typename Component>
|
||||
Component* CreateComponent(AZ::Entity* entity)
|
||||
{
|
||||
m_app->RegisterComponentDescriptor(Component::CreateDescriptor());
|
||||
return entity->CreateComponent<Component>();
|
||||
}
|
||||
|
||||
// Create a terrain system with reasonable defaults for testing, but with the ability to override the defaults
|
||||
// on a test-by-test basis.
|
||||
AZStd::unique_ptr<Terrain::TerrainSystem> CreateAndActivateTerrainSystem(
|
||||
AZ::Vector2 queryResolution = AZ::Vector2(1.0f),
|
||||
AZ::Aabb worldBounds = AZ::Aabb::CreateFromMinMax(AZ::Vector3(-128.0f), AZ::Vector3(128.0f)))
|
||||
{
|
||||
// Create the terrain system and give it one tick to fully initialize itself.
|
||||
auto terrainSystem = AZStd::make_unique<Terrain::TerrainSystem>();
|
||||
terrainSystem->SetTerrainAabb(worldBounds);
|
||||
terrainSystem->SetTerrainHeightQueryResolution(queryResolution);
|
||||
terrainSystem->Activate();
|
||||
AZ::TickBus::Broadcast(&AZ::TickBus::Events::OnTick, 0.f, AZ::ScriptTimePoint{});
|
||||
return terrainSystem;
|
||||
}
|
||||
|
||||
// Create a mock shape bus listener that will listen to the given EntityId for shape requests and returns the following:
|
||||
// - GetEncompassingAabb - returns the given Aabb
|
||||
// - GetTransformAndLocalBounds - returns the center of the Aabb as the transform, and the size of the Aabb as the local bounds
|
||||
// - IsPointInside - true if the point is in the Aabb, false if not
|
||||
AZStd::unique_ptr<NiceMock<UnitTest::MockShapeComponentRequests>> CreateMockShape(
|
||||
const AZ::Aabb& spawnerBox, const AZ::EntityId& shapeEntityId)
|
||||
{
|
||||
AZStd::unique_ptr<NiceMock<UnitTest::MockShapeComponentRequests>> mockShape =
|
||||
AZStd::make_unique<NiceMock<UnitTest::MockShapeComponentRequests>>(shapeEntityId);
|
||||
|
||||
ON_CALL(*mockShape, GetEncompassingAabb).WillByDefault(Return(spawnerBox));
|
||||
ON_CALL(*mockShape, GetTransformAndLocalBounds)
|
||||
.WillByDefault(
|
||||
[spawnerBox](AZ::Transform& transform, AZ::Aabb& bounds)
|
||||
{
|
||||
transform = AZ::Transform::CreateTranslation(spawnerBox.GetCenter());
|
||||
bounds = spawnerBox.GetTranslated(-spawnerBox.GetCenter());
|
||||
});
|
||||
ON_CALL(*mockShape, IsPointInside)
|
||||
.WillByDefault(
|
||||
[spawnerBox](const AZ::Vector3& point) -> bool
|
||||
{
|
||||
return spawnerBox.Contains(point);
|
||||
});
|
||||
|
||||
return mockShape;
|
||||
}
|
||||
|
||||
// Create an entity with a Random Gradient on it that can be used for gradient queries.
|
||||
AZStd::unique_ptr<AZ::Entity> CreateTestRandomGradientEntity(const AZ::Aabb& spawnerBox, uint32_t randomSeed)
|
||||
{
|
||||
// Create the base entity
|
||||
AZStd::unique_ptr<AZ::Entity> testGradientEntity = CreateEntity();
|
||||
|
||||
// Add a mock AABB Shape so that the shape requirement is fulfilled.
|
||||
CreateComponent<UnitTest::MockAxisAlignedBoxShapeComponent>(testGradientEntity.get());
|
||||
|
||||
// Create the Random Gradient Component with some default parameters.
|
||||
GradientSignal::RandomGradientConfig config;
|
||||
config.m_randomSeed = randomSeed;
|
||||
CreateComponent<GradientSignal::RandomGradientComponent>(testGradientEntity.get(), config);
|
||||
|
||||
// Create the Gradient Transform Component with some default parameters.
|
||||
GradientSignal::GradientTransformConfig gradientTransformConfig;
|
||||
gradientTransformConfig.m_wrappingType = GradientSignal::WrappingType::None;
|
||||
CreateComponent<GradientSignal::GradientTransformComponent>(testGradientEntity.get(), gradientTransformConfig);
|
||||
|
||||
// Set the transform to match the given spawnerBox
|
||||
auto transform = CreateComponent<AzFramework::TransformComponent>(testGradientEntity.get());
|
||||
transform->SetLocalTM(AZ::Transform::CreateTranslation(spawnerBox.GetCenter()));
|
||||
transform->SetWorldTM(AZ::Transform::CreateTranslation(spawnerBox.GetCenter()));
|
||||
|
||||
return testGradientEntity;
|
||||
}
|
||||
|
||||
AZStd::unique_ptr<AZ::Entity> CreateTestLayerSpawnerEntity(
|
||||
const AZ::Aabb& spawnerBox, const AZ::EntityId& heightGradientEntityId,
|
||||
const Terrain::TerrainSurfaceGradientListConfig& surfaceConfig)
|
||||
{
|
||||
// Create the base entity
|
||||
AZStd::unique_ptr<AZ::Entity> testLayerSpawnerEntity = CreateEntity();
|
||||
|
||||
// Add a mock AABB Shape so that the shape requirement is fulfilled.
|
||||
CreateComponent<UnitTest::MockAxisAlignedBoxShapeComponent>(testLayerSpawnerEntity.get());
|
||||
|
||||
// Add a Terrain Layer Spawner
|
||||
CreateComponent<Terrain::TerrainLayerSpawnerComponent>(testLayerSpawnerEntity.get());
|
||||
|
||||
// Add a Terrain Height Gradient List with one entry pointing to the given gradient entity
|
||||
Terrain::TerrainHeightGradientListConfig heightConfig;
|
||||
heightConfig.m_gradientEntities.emplace_back(heightGradientEntityId);
|
||||
CreateComponent<Terrain::TerrainHeightGradientListComponent>(testLayerSpawnerEntity.get(), heightConfig);
|
||||
|
||||
// Add a Terrain Surface Gradient List with however many entries we were given
|
||||
CreateComponent<Terrain::TerrainSurfaceGradientListComponent>(testLayerSpawnerEntity.get(), surfaceConfig);
|
||||
|
||||
// Set the transform to match the given spawnerBox
|
||||
auto transform = CreateComponent<AzFramework::TransformComponent>(testLayerSpawnerEntity.get());
|
||||
transform->SetLocalTM(AZ::Transform::CreateTranslation(spawnerBox.GetCenter()));
|
||||
transform->SetWorldTM(AZ::Transform::CreateTranslation(spawnerBox.GetCenter()));
|
||||
|
||||
return testLayerSpawnerEntity;
|
||||
}
|
||||
|
||||
void RunTerrainApiBenchmark(
|
||||
benchmark::State& state,
|
||||
AZStd::function<void(
|
||||
const AZ::Vector2& queryResolution,
|
||||
const AZ::Aabb& worldBounds,
|
||||
AzFramework::Terrain::TerrainDataRequests::Sampler sampler)> ApiCaller)
|
||||
{
|
||||
// Get the ranges for querying from our benchmark parameters
|
||||
float boundsRange = aznumeric_cast<float>(state.range(0));
|
||||
uint32_t numSurfaces = aznumeric_cast<uint32_t>(state.range(1));
|
||||
AzFramework::Terrain::TerrainDataRequests::Sampler sampler =
|
||||
static_cast<AzFramework::Terrain::TerrainDataRequests::Sampler>(state.range(2));
|
||||
|
||||
// Set up our world bounds and query resolution
|
||||
AZ::Aabb worldBounds = AZ::Aabb::CreateFromMinMax(AZ::Vector3(-boundsRange / 2.0f), AZ::Vector3(boundsRange / 2.0f));
|
||||
AZ::Vector2 queryResolution = AZ::Vector2(1.0f);
|
||||
|
||||
// Create a Random Gradient to use as our height provider
|
||||
const uint32_t heightRandomSeed = 12345;
|
||||
auto heightGradientEntity = CreateTestRandomGradientEntity(worldBounds, heightRandomSeed);
|
||||
auto heightGradientShapeRequests = CreateMockShape(worldBounds, heightGradientEntity->GetId());
|
||||
ActivateEntity(heightGradientEntity.get());
|
||||
|
||||
|
||||
// Create a set of Random Gradients to use as our surface providers
|
||||
Terrain::TerrainSurfaceGradientListConfig surfaceConfig;
|
||||
AZStd::vector<AZStd::unique_ptr<AZ::Entity>> surfaceGradientEntities;
|
||||
AZStd::vector<AZStd::unique_ptr<NiceMock<UnitTest::MockShapeComponentRequests>>> surfaceGradientShapeRequests;
|
||||
for (uint32_t surfaces = 0; surfaces < numSurfaces; surfaces++)
|
||||
{
|
||||
const uint32_t surfaceRandomSeed = 23456 + surfaces;
|
||||
auto surfaceGradientEntity = CreateTestRandomGradientEntity(worldBounds, surfaceRandomSeed);
|
||||
auto shapeRequests = CreateMockShape(worldBounds, surfaceGradientEntity->GetId());
|
||||
ActivateEntity(surfaceGradientEntity.get());
|
||||
|
||||
// Give each gradient a new surface tag
|
||||
surfaceConfig.m_gradientSurfaceMappings.emplace_back(
|
||||
surfaceGradientEntity->GetId(), SurfaceData::SurfaceTag(AZStd::string::format("test%u", surfaces)));
|
||||
|
||||
surfaceGradientEntities.emplace_back(AZStd::move(surfaceGradientEntity));
|
||||
surfaceGradientShapeRequests.emplace_back(AZStd::move(shapeRequests));
|
||||
}
|
||||
|
||||
// Create a single Terrain Layer Spawner that covers the entire terrain world bounds
|
||||
// (Do this *after* creating and activating the height and surface gradients)
|
||||
auto testLayerSpawnerEntity = CreateTestLayerSpawnerEntity(worldBounds, heightGradientEntity->GetId(), surfaceConfig);
|
||||
auto spawnerShapeRequests = CreateMockShape(worldBounds, testLayerSpawnerEntity->GetId());
|
||||
ActivateEntity(testLayerSpawnerEntity.get());
|
||||
|
||||
// Create the terrain system (do this after creating the terrain layer entity to ensure that we don't need any data refreshes)
|
||||
auto terrainSystem = CreateAndActivateTerrainSystem(queryResolution, worldBounds);
|
||||
|
||||
// Call the terrain API we're testing for every height and width in our ranges.
|
||||
for (auto stateIterator : state)
|
||||
{
|
||||
ApiCaller(queryResolution, worldBounds, sampler);
|
||||
}
|
||||
|
||||
testLayerSpawnerEntity.reset();
|
||||
spawnerShapeRequests.reset();
|
||||
|
||||
heightGradientEntity.reset();
|
||||
heightGradientShapeRequests.reset();
|
||||
|
||||
surfaceGradientEntities.clear();
|
||||
surfaceGradientShapeRequests.clear();
|
||||
}
|
||||
|
||||
protected:
|
||||
AZStd::unique_ptr<AZ::ComponentApplication> m_app;
|
||||
};
|
||||
|
||||
|
||||
BENCHMARK_DEFINE_F(TerrainSystemBenchmarkFixture, BM_GetHeight)(benchmark::State& state)
|
||||
{
|
||||
// Run the benchmark
|
||||
RunTerrainApiBenchmark(
|
||||
state,
|
||||
[]([[maybe_unused]] const AZ::Vector2& queryResolution, const AZ::Aabb& worldBounds,
|
||||
AzFramework::Terrain::TerrainDataRequests::Sampler sampler)
|
||||
{
|
||||
float worldMinZ = worldBounds.GetMin().GetZ();
|
||||
|
||||
for (float y = worldBounds.GetMin().GetY(); y < worldBounds.GetMax().GetY(); y += 1.0f)
|
||||
{
|
||||
for (float x = worldBounds.GetMin().GetX(); x < worldBounds.GetMax().GetX(); x += 1.0f)
|
||||
{
|
||||
float terrainHeight = worldMinZ;
|
||||
bool terrainExists = false;
|
||||
AzFramework::Terrain::TerrainDataRequestBus::BroadcastResult(
|
||||
terrainHeight, &AzFramework::Terrain::TerrainDataRequests::GetHeightFromFloats, x, y, sampler, &terrainExists);
|
||||
benchmark::DoNotOptimize(terrainHeight);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
BENCHMARK_REGISTER_F(TerrainSystemBenchmarkFixture, BM_GetHeight)
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::BILINEAR) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::BILINEAR) })
|
||||
->Args({ 4096, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::BILINEAR) })
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::CLAMP) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::CLAMP) })
|
||||
->Args({ 4096, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::CLAMP) })
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 4096, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Unit(::benchmark::kMillisecond);
|
||||
|
||||
BENCHMARK_DEFINE_F(TerrainSystemBenchmarkFixture, BM_GetNormal)(benchmark::State& state)
|
||||
{
|
||||
// Run the benchmark
|
||||
RunTerrainApiBenchmark(
|
||||
state,
|
||||
[]([[maybe_unused]] const AZ::Vector2& queryResolution, const AZ::Aabb& worldBounds,
|
||||
AzFramework::Terrain::TerrainDataRequests::Sampler sampler)
|
||||
{
|
||||
for (float y = worldBounds.GetMin().GetY(); y < worldBounds.GetMax().GetY(); y += 1.0f)
|
||||
{
|
||||
for (float x = worldBounds.GetMin().GetX(); x < worldBounds.GetMax().GetX(); x += 1.0f)
|
||||
{
|
||||
AZ::Vector3 terrainNormal;
|
||||
bool terrainExists = false;
|
||||
AzFramework::Terrain::TerrainDataRequestBus::BroadcastResult(
|
||||
terrainNormal, &AzFramework::Terrain::TerrainDataRequests::GetNormalFromFloats, x, y, sampler, &terrainExists);
|
||||
benchmark::DoNotOptimize(terrainNormal);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
BENCHMARK_REGISTER_F(TerrainSystemBenchmarkFixture, BM_GetNormal)
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::BILINEAR) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::BILINEAR) })
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::CLAMP) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::CLAMP) })
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Unit(::benchmark::kMillisecond);
|
||||
|
||||
BENCHMARK_DEFINE_F(TerrainSystemBenchmarkFixture, BM_GetSurfaceWeights)(benchmark::State& state)
|
||||
{
|
||||
// Run the benchmark
|
||||
RunTerrainApiBenchmark(
|
||||
state,
|
||||
[]([[maybe_unused]] const AZ::Vector2& queryResolution, const AZ::Aabb& worldBounds,
|
||||
AzFramework::Terrain::TerrainDataRequests::Sampler sampler)
|
||||
{
|
||||
AzFramework::SurfaceData::SurfaceTagWeightList surfaceWeights;
|
||||
for (float y = worldBounds.GetMin().GetY(); y < worldBounds.GetMax().GetY(); y += 1.0f)
|
||||
{
|
||||
for (float x = worldBounds.GetMin().GetX(); x < worldBounds.GetMax().GetX(); x += 1.0f)
|
||||
{
|
||||
bool terrainExists = false;
|
||||
AzFramework::Terrain::TerrainDataRequestBus::Broadcast(
|
||||
&AzFramework::Terrain::TerrainDataRequests::GetSurfaceWeightsFromFloats, x, y, surfaceWeights, sampler,
|
||||
&terrainExists);
|
||||
benchmark::DoNotOptimize(surfaceWeights);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
BENCHMARK_REGISTER_F(TerrainSystemBenchmarkFixture, BM_GetSurfaceWeights)
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 1024, 2, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 2048, 2, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 1024, 4, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 2048, 4, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Unit(::benchmark::kMillisecond);
|
||||
|
||||
BENCHMARK_DEFINE_F(TerrainSystemBenchmarkFixture, BM_GetSurfacePoints)(benchmark::State& state)
|
||||
{
|
||||
// Run the benchmark
|
||||
RunTerrainApiBenchmark(
|
||||
state,
|
||||
[]([[maybe_unused]] const AZ::Vector2& queryResolution, const AZ::Aabb& worldBounds,
|
||||
AzFramework::Terrain::TerrainDataRequests::Sampler sampler)
|
||||
{
|
||||
AzFramework::SurfaceData::SurfacePoint surfacePoint;
|
||||
for (float y = worldBounds.GetMin().GetY(); y < worldBounds.GetMax().GetY(); y += 1.0f)
|
||||
{
|
||||
for (float x = worldBounds.GetMin().GetX(); x < worldBounds.GetMax().GetX(); x += 1.0f)
|
||||
{
|
||||
bool terrainExists = false;
|
||||
AzFramework::Terrain::TerrainDataRequestBus::Broadcast(
|
||||
&AzFramework::Terrain::TerrainDataRequests::GetSurfacePointFromFloats, x, y, surfacePoint, sampler,
|
||||
&terrainExists);
|
||||
benchmark::DoNotOptimize(surfacePoint);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
BENCHMARK_REGISTER_F(TerrainSystemBenchmarkFixture, BM_GetSurfacePoints)
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::BILINEAR) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::BILINEAR) })
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::CLAMP) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::CLAMP) })
|
||||
->Args({ 1024, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Args({ 2048, 1, static_cast<int>(AzFramework::Terrain::TerrainDataRequests::Sampler::EXACT) })
|
||||
->Unit(::benchmark::kMillisecond);
|
||||
#endif
|
||||
|
||||
}
|
||||
@@ -16,4 +16,5 @@ set(FILES
|
||||
Tests/TerrainHeightGradientListTests.cpp
|
||||
Tests/TerrainMacroMaterialTests.cpp
|
||||
Tests/TerrainSurfaceGradientListTests.cpp
|
||||
Tests/TerrainSystemBenchmarks.cpp
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user