Files
UnrealEngine/Engine/Source/Editor/PixelInspector/Private/PixelInspectorView.cpp
2025-05-18 13:04:45 +08:00

94 lines
2.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "PixelInspectorView.h"
#include "Containers/Array.h"
#include "PixelInspectorResult.h"
UPixelInspectorView::UPixelInspectorView(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
for (int i = 0; i < FinalColorContextGridSize*FinalColorContextGridSize; ++i)
{
FinalColorContext[i] = FLinearColor::Green;
}
FinalColor = FLinearColor::Green;
PreExposure = 1.f;
SceneColorBeforePostProcessing = FLinearColor::Green;
SceneColorBeforeTonemap = FLinearColor::Black;
LuminanceBeforeTonemap = 0.0f;
Normal = FVector(0.0f);
PerObjectGBufferData = 0.0f;
Metallic = 0.0f;
Specular = 0.0f;
Roughness = 0.0f;
MaterialShadingModel = EMaterialShadingModel::MSM_DefaultLit;
SelectiveOutputMask = 0;
BaseColor = FLinearColor::Black;
IndirectIrradiance = 0.0f;
AmbientOcclusion = 0.0f;
//Custom Data
SubSurfaceColor = FLinearColor::Black;
SubsurfaceProfile = FVector(0.0f);
Opacity = 0.0f;
ClearCoat = 0.0f;
ClearCoatRoughness = 0.0f;
WorldNormal = FVector(0.0f);
BackLit = 0.0f;
Cloth = 0.0f;
EyeTangent = FVector(0.0f);
IrisMask = 0.0f;
IrisDistance = 0.0f;
}
void UPixelInspectorView::SetFromResult(PixelInspector::PixelInspectorResult &Result)
{
FinalColor = FLinearColor::Green;
//Take the center of the array, TODO display the context
for (int i = 0; i < FinalColorContextGridSize*FinalColorContextGridSize; ++i)
{
if (Result.FinalColor.Num() > i)
{
FinalColorContext[i] = Result.FinalColor[i];
if (i == FMath::FloorToInt((FinalColorContextGridSize*FinalColorContextGridSize)/2.0f))
{
FinalColor = Result.FinalColor[i];
}
}
else
{
FinalColorContext[i] = FLinearColor::Green;
}
}
PreExposure = Result.PreExposure;
SceneColorBeforePostProcessing = Result.SceneColorBeforePostProcessing;
SceneColorBeforeTonemap = Result.SceneColorBeforeTonemap;
LuminanceBeforeTonemap = Result.LuminanceBeforeTonemap;
Normal = Result.Normal;
PerObjectGBufferData = Result.PerObjectGBufferData;
Metallic = Result.Metallic;
Specular = Result.Specular;
Roughness = Result.Roughness;
MaterialShadingModel = Result.ShadingModel;
SelectiveOutputMask = Result.SelectiveOutputMask;
BaseColor = Result.BaseColor;
IndirectIrradiance = Result.IndirectIrradiance;
AmbientOcclusion = Result.AmbientOcclusion;
//Custom Data
SubSurfaceColor = Result.SubSurfaceColor;
SubsurfaceProfile = Result.SubsurfaceProfile;
Opacity = Result.Opacity;
ClearCoat = Result.ClearCoat;
ClearCoatRoughness = Result.ClearCoatRoughness;
WorldNormal = Result.WorldNormal;
BackLit = Result.BackLit;
Cloth = Result.Cloth;
EyeTangent = Result.EyeTangent;
IrisMask = Result.IrisMask;
IrisDistance = Result.IrisDistance;
}