Remove override gamma from weather settings
This commit is contained in:
parent
0a072c7838
commit
afdbf78816
|
@ -7,6 +7,7 @@
|
|||
#include "Engine/PlayerStartPIE.h"
|
||||
#include "EngineUtils.h"
|
||||
#include "GameFramework/PlayerStart.h"
|
||||
#include "SceneViewport.h"
|
||||
|
||||
#include "CarlaGameInstance.h"
|
||||
#include "CarlaGameState.h"
|
||||
|
@ -203,6 +204,19 @@ void ACarlaGameModeBase::RegisterPlayer(AController &NewPlayer)
|
|||
AttachCaptureCamerasToPlayer();
|
||||
}
|
||||
|
||||
static float GetPlayerDisplayGamma(const APlayerCameraManager *PlayerCameraManager)
|
||||
{
|
||||
if (PlayerCameraManager == nullptr) {
|
||||
return 0.0f;
|
||||
}
|
||||
UGameViewportClient* ViewportClient = PlayerCameraManager->PCOwner->GetLocalPlayer()->ViewportClient;
|
||||
if (ViewportClient == nullptr) {
|
||||
return 0.0f;
|
||||
}
|
||||
FSceneViewport* SceneViewport = ViewportClient->GetGameViewport();
|
||||
return SceneViewport ? SceneViewport->GetDisplayGamma() : 0.0f;
|
||||
}
|
||||
|
||||
void ACarlaGameModeBase::AttachCaptureCamerasToPlayer()
|
||||
{
|
||||
if (PlayerController == nullptr) {
|
||||
|
@ -215,8 +229,11 @@ void ACarlaGameModeBase::AttachCaptureCamerasToPlayer()
|
|||
if ((Weather != nullptr) && (Weather->bOverrideCameraPostProcessParameters)) {
|
||||
OverridePostProcessParameters = &Weather->CameraPostProcessParameters;
|
||||
}
|
||||
|
||||
const float TargetGamma = GetPlayerDisplayGamma(PlayerController->PlayerCameraManager);
|
||||
|
||||
for (const auto &Item : Settings.CameraDescriptions) {
|
||||
PlayerController->AddSceneCaptureCamera(Item.Value, OverridePostProcessParameters);
|
||||
PlayerController->AddSceneCaptureCamera(Item.Value, OverridePostProcessParameters, TargetGamma);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -110,7 +110,8 @@ void ACarlaVehicleController::Tick(float DeltaTime)
|
|||
|
||||
void ACarlaVehicleController::AddSceneCaptureCamera(
|
||||
const FCameraDescription &Description,
|
||||
const FCameraPostProcessParameters *OverridePostProcessParameters)
|
||||
const FCameraPostProcessParameters *OverridePostProcessParameters,
|
||||
const float TargetGamma)
|
||||
{
|
||||
auto Camera = GetWorld()->SpawnActor<ASceneCaptureCamera>(Description.Position, Description.Rotation);
|
||||
if (OverridePostProcessParameters != nullptr) {
|
||||
|
@ -118,6 +119,7 @@ void ACarlaVehicleController::AddSceneCaptureCamera(
|
|||
} else {
|
||||
Camera->Set(Description);
|
||||
}
|
||||
Camera->SetTargetGamma(TargetGamma);
|
||||
Camera->AttachToActor(GetPawn(), FAttachmentTransformRules::KeepRelativeTransform);
|
||||
Camera->SetOwner(GetPawn());
|
||||
AddTickPrerequisiteActor(Camera);
|
||||
|
|
|
@ -79,7 +79,8 @@ public:
|
|||
|
||||
void AddSceneCaptureCamera(
|
||||
const FCameraDescription &CameraDescription,
|
||||
const FCameraPostProcessParameters *OverridePostProcessParameters = nullptr);
|
||||
const FCameraPostProcessParameters *OverridePostProcessParameters,
|
||||
float TargetGamma);
|
||||
|
||||
/// @}
|
||||
// ===========================================================================
|
||||
|
|
|
@ -133,12 +133,18 @@ void ASceneCaptureCamera::SetPostProcessEffect(EPostProcessEffect otherPostProce
|
|||
}
|
||||
}
|
||||
|
||||
void ASceneCaptureCamera::SetFOVAngle(float FOVAngle)
|
||||
void ASceneCaptureCamera::SetFOVAngle(const float FOVAngle)
|
||||
{
|
||||
check(CaptureComponent2D != nullptr);
|
||||
CaptureComponent2D->FOVAngle = FOVAngle;
|
||||
}
|
||||
|
||||
void ASceneCaptureCamera::SetTargetGamma(const float TargetGamma)
|
||||
{
|
||||
check(CaptureRenderTarget != nullptr);
|
||||
CaptureRenderTarget->TargetGamma = TargetGamma;
|
||||
}
|
||||
|
||||
void ASceneCaptureCamera::Set(const FCameraDescription &CameraDescription)
|
||||
{
|
||||
SetImageSize(CameraDescription.ImageSizeX, CameraDescription.ImageSizeY);
|
||||
|
|
|
@ -52,6 +52,8 @@ public:
|
|||
|
||||
void SetFOVAngle(float FOVAngle);
|
||||
|
||||
void SetTargetGamma(float TargetGamma);
|
||||
|
||||
void Set(const FCameraDescription &CameraDescription);
|
||||
|
||||
void Set(
|
||||
|
|
|
@ -14,10 +14,6 @@ struct FCameraPostProcessParameters
|
|||
{
|
||||
GENERATED_USTRUCT_BODY()
|
||||
|
||||
/** Will override FTextureRenderTarget2DResource::GetDisplayGamma if > 0. */
|
||||
UPROPERTY(Category = "Camera Parameters", EditAnywhere, BlueprintReadWrite)
|
||||
float TargetGamma = 0.0f;
|
||||
|
||||
/** Luminance computation method */
|
||||
UPROPERTY(Category = "Camera Parameters", EditAnywhere, BlueprintReadWrite)
|
||||
TEnumAsByte<enum EAutoExposureMethod> AutoExposureMethod = AEM_Histogram;
|
||||
|
|
|
@ -86,7 +86,6 @@ void FWeatherDescription::ReadFromConfigFile(const IniFile &ConfigFile, const FS
|
|||
CARLA_LOAD_FROM_INI(Float, WindAngle)
|
||||
// Camera Post-Process Parameters.
|
||||
CARLA_LOAD_FROM_INI(Bool, bOverrideCameraPostProcessParameters)
|
||||
CARLA_LOAD_FROM_INI(Float, CameraPostProcessParameters.TargetGamma)
|
||||
EAutoExposureMethod AutoExposureMethod;
|
||||
LoadAutoExposureMethod(
|
||||
ConfigFile,
|
||||
|
@ -132,7 +131,6 @@ void FWeatherDescription::WriteToConfigFile(IniFile &ConfigFile) const
|
|||
CARLA_WRITE_TO_INI(Float, WindAngle)
|
||||
// Camera Post-Process Parameters.
|
||||
CARLA_WRITE_TO_INI(Bool, bOverrideCameraPostProcessParameters)
|
||||
CARLA_WRITE_TO_INI(Float, CameraPostProcessParameters.TargetGamma)
|
||||
ConfigFile.SetString(
|
||||
*Section,
|
||||
TEXT("CameraPostProcessParameters.AutoExposureMethod"),
|
||||
|
|
Loading…
Reference in New Issue