11#include <util/ue-header-guard-begin.h>
12#include "Materials/Material.h"
13#include "Materials/MaterialInstanceDynamic.h"
14#include <util/ue-header-guard-end.h>
17 Super(ObjectInitializer)
29 UMaterial* Material = Cast<UMaterial>(FSoftObjectPath(Path).TryLoad());
30 if (Material !=
nullptr)
35 UE_LOG(LogCarla, Error,
36 TEXT(
"AShaderBasedSensor_WideAngleLens::AddPostProcessingMaterial: failed to load material '%s'"),
51 AddShader({ UMaterialInstanceDynamic::Create(MaterialFound,
this), 1.0 });
54 for (
auto SceneCapture : SceneCaptures)
56 for (
const auto& Shader :
Shaders)
59 SceneCapture->PostProcessSettings.AddBlendable(Shader.PostProcessMaterial, Shader.Weight);
70 Shaders[ParameterValue.ShaderIndex].PostProcessMaterial->SetScalarParameterValue(
71 ParameterValue.ParameterName,
72 ParameterValue.Value);
79 Super::Set(Description);
85 const FName& ParameterName,
void EnablePostProcessingEffects(bool Enable=true)
void Set(const FActorDescription &ActorDescription) override
TArray< FSensorShader > Shaders
TArray< FShaderFloatParameterValue > FloatShaderParams
TArray< TObjectPtr< UMaterial > > MaterialsFound
AShaderBasedSensor_WideAngleLens(const FObjectInitializer &ObjectInitializer)
bool AddPostProcessingMaterial(const FString &Path)
void SetUpSceneCaptureComponents(TArrayView< USceneCaptureComponent2D_CARLA * > SceneCaptures) override
void SetFloatShaderParameter(uint8_t ShaderIndex, const FName &ParameterName, float Value)
void AddShader(const FSensorShader &Shader)
Add a post-processing shader.
static void SetCamera(const FActorDescription &Description, ASceneCaptureSensor *Camera)
A description of a Carla Actor with all its variation.