You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#lockdown Nick.Penwarden #rb none ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3487931 by Adric.Worley Add Negative test filter Filter out tests that test negative cases and are expected to fail #jira UE-45641 #tests ran affected tests in editor, confirmed UI changes Change 3491768 by Adric.Worley Add FieldOfView to Screenshot FTest options #tests used in WIP test map Change 3492809 by Nick.Darnell Automation - Fixing some delay screenshot code in the Screenshot Functional Test Actor. Change 3493557 by Adric.Worley Add automated postprocessing test map #jira QAENG-1153 Change 3494836 by Adric.Worley Fix CurvePlayTest timing out Time-out tolerances were set too tightly. Extended preparation time limit to 7 seconds. #tests PIE Change 3494962 by Adric.Worley Fix CurveStopTest failure Added OnTestPrepare event for FTests using LevelBP for logic. Removed CurveStopTest dependency on CurveStartTest. Updated ground truth screenshot. #tests PIE Change 3495166 by Adric.Worley Fix empty engine version content warnings #tests none Change 3495412 by Adric.Worley Add Shield asset from ContentExamples project Change 3495747 by Adric.Worley Automate static light tests #jira QAENG-1154 Change 3495914 by Adric.Worley Adding HDR environment asset Change 3496341 by Adric.Worley Fix NotifyTest timing failures Rewrote tests to use blueprint events to verify notifications instead of fragile screenshots. #tests UFE Change 3496613 by Adric.Worley Add TranslucencyLightingModes test map Automates test cases from QAGame's TM-TranslucencyLightingModes. Also resave shield assets to fix empty engine version warnings. #jira QAENG-1191 #tests UFE Change 3496703 by Adric.Worley Fix occasional ClothBallTest failures Extend screenshot delay to let cloth to fully settle. Consolidated screenshot delay values and removed redundant Delays. #jira UE-46066 #tests UFE, 20+ iterations Change 3498413 by Adric.Worley Fix occasional CurveTest failures Merged tests and set to use specific anim positions instead of relying on fragile test timing. #tests UFE Change 3498976 by Adric.Worley Add automated ShaderModels test map Change 3499079 by Adric.Worley Delete unused test and related assets #tests UFE Change 3500869 by Adric.Worley Add horizontal scrollbar to automation results view #tests UFE [CL 3511418 by Nick Darnell in Main branch]
197 lines
5.6 KiB
C++
197 lines
5.6 KiB
C++
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/ObjectMacros.h"
|
|
#include "AutomationScreenshotOptions.generated.h"
|
|
|
|
UENUM(BlueprintType)
|
|
enum class EComparisonTolerance : uint8
|
|
{
|
|
Zero,
|
|
Low,
|
|
Medium,
|
|
High,
|
|
Custom
|
|
};
|
|
|
|
USTRUCT(BlueprintType)
|
|
struct FComparisonToleranceAmount
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
|
|
FComparisonToleranceAmount()
|
|
: Red(0)
|
|
, Green(0)
|
|
, Blue(0)
|
|
, Alpha(0)
|
|
, MinBrightness(0)
|
|
, MaxBrightness(255)
|
|
{
|
|
}
|
|
|
|
FComparisonToleranceAmount(uint8 R, uint8 G, uint8 B, uint8 A, uint8 InMinBrightness, uint8 InMaxBrightness)
|
|
: Red(R)
|
|
, Green(G)
|
|
, Blue(B)
|
|
, Alpha(A)
|
|
, MinBrightness(InMinBrightness)
|
|
, MaxBrightness(InMaxBrightness)
|
|
{
|
|
}
|
|
|
|
public:
|
|
UPROPERTY(EditAnywhere, Category="Tolerance")
|
|
uint8 Red;
|
|
|
|
UPROPERTY(EditAnywhere, Category="Tolerance")
|
|
uint8 Green;
|
|
|
|
UPROPERTY(EditAnywhere, Category="Tolerance")
|
|
uint8 Blue;
|
|
|
|
UPROPERTY(EditAnywhere, Category="Tolerance")
|
|
uint8 Alpha;
|
|
|
|
UPROPERTY(EditAnywhere, Category="Tolerance")
|
|
uint8 MinBrightness;
|
|
|
|
UPROPERTY(EditAnywhere, Category="Tolerance")
|
|
uint8 MaxBrightness;
|
|
};
|
|
|
|
|
|
USTRUCT(BlueprintType)
|
|
struct FAutomationScreenshotOptions
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
FAutomationScreenshotOptions()
|
|
: Resolution(ForceInit)
|
|
, Delay(0.2f)
|
|
, bDisableNoisyRenderingFeatures(true)
|
|
, VisualizeBuffer(NAME_None)
|
|
, Tolerance(EComparisonTolerance::Zero)
|
|
, ToleranceAmount()
|
|
, MaximumLocalError(0.10f)
|
|
, MaximumGlobalError(0.02f)
|
|
, bIgnoreAntiAliasing(true)
|
|
, bIgnoreColors(false)
|
|
{
|
|
}
|
|
|
|
FAutomationScreenshotOptions(EComparisonTolerance InTolerance)
|
|
: Resolution(ForceInit)
|
|
, Delay(0.2f)
|
|
, bDisableNoisyRenderingFeatures(true)
|
|
, VisualizeBuffer(NAME_None)
|
|
, Tolerance(InTolerance)
|
|
, ToleranceAmount()
|
|
, MaximumLocalError(0.10f)
|
|
, MaximumGlobalError(0.02f)
|
|
, bIgnoreAntiAliasing(true)
|
|
, bIgnoreColors(false)
|
|
{
|
|
SetToleranceAmounts(InTolerance);
|
|
}
|
|
|
|
/**
|
|
* The desired resolution of the screenshot, if none is provided, it will use the default for the
|
|
* platform setup in the automation settings.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Screenshot")
|
|
FVector2D Resolution;
|
|
|
|
/**
|
|
* The delay before we take the screenshot.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Screenshot")
|
|
float Delay;
|
|
|
|
/**
|
|
* Disables Anti-Aliasing, Motion Blur, Screen Space Reflections, Eye Adaptation and Contact Shadows,
|
|
* because those features contribute a lot to the noise in the final rendered image. If you're explicitly
|
|
* looking for changes
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Screenshot")
|
|
bool bDisableNoisyRenderingFeatures;
|
|
|
|
/**
|
|
* Allows you to screenshot a buffer other than the default final lit scene image. Useful if you're
|
|
* trying to build a test for a specific GBuffer, that may be harder to tell if errors are introduced
|
|
* in it.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Screenshot")
|
|
FName VisualizeBuffer;
|
|
|
|
/**
|
|
* These are quick defaults for tolerance levels, we default to low, because generally there's some
|
|
* constant variability in every pixel's color introduced by TxAA.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Comparison")
|
|
EComparisonTolerance Tolerance;
|
|
|
|
/**
|
|
* For each channel and brightness levels you can control a region where the colors are found to be
|
|
* essentially the same. Generally this is necessary as modern rendering techniques tend to introduce
|
|
* noise constantly to hide aliasing.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Comparison")
|
|
FComparisonToleranceAmount ToleranceAmount;
|
|
|
|
/**
|
|
* After you've accounted for color tolerance changes, you now need to control for local acceptable error.
|
|
* Which depending on how pixels were colored on triangle edges may be a few percent of the image being
|
|
* outside the tolerance levels. Unlike the MaximumGlobalError, the MaximumLocalError works by focusing
|
|
* on a smaller subset of the image. These chunks will have be compared to the local error, in an attempt
|
|
* to locate hot spots of change that are important, that would be ignored by the global error.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Comparison", meta=( ClampMin = 0, ClampMax = 1, UIMin = 0, UIMax = 1 ))
|
|
float MaximumLocalError;
|
|
|
|
/**
|
|
* After you've accounted for color tolerance changes, you now need to control for total acceptable error.
|
|
* Which depending on how pixels were colored on triangle edges may be a few percent of the image being
|
|
* outside the tolerance levels.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Comparison", meta=( ClampMin = 0, ClampMax = 1, UIMin = 0, UIMax = 1 ))
|
|
float MaximumGlobalError;
|
|
|
|
/**
|
|
* If this is true, we search neighboring pixels looking for the expected pixel as what may have happened, is
|
|
* that the pixel shifted a little.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Comparison")
|
|
bool bIgnoreAntiAliasing;
|
|
|
|
/**
|
|
* If this is true, all we compare is luminance of the scene.
|
|
*/
|
|
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Comparison", AdvancedDisplay)
|
|
bool bIgnoreColors;
|
|
|
|
public:
|
|
void SetToleranceAmounts(EComparisonTolerance InTolerance)
|
|
{
|
|
switch ( InTolerance )
|
|
{
|
|
case EComparisonTolerance::Zero:
|
|
ToleranceAmount = FComparisonToleranceAmount(0, 0, 0, 0, 0, 255);
|
|
break;
|
|
case EComparisonTolerance::Low:
|
|
ToleranceAmount = FComparisonToleranceAmount(16, 16, 16, 16, 16, 240);
|
|
break;
|
|
case EComparisonTolerance::Medium:
|
|
ToleranceAmount = FComparisonToleranceAmount(24, 24, 24, 24, 24, 220);
|
|
break;
|
|
case EComparisonTolerance::High:
|
|
ToleranceAmount = FComparisonToleranceAmount(32, 32, 32, 32, 64, 96);
|
|
break;
|
|
}
|
|
}
|
|
};
|