You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#jira UE-131151 #review @Kevin.Ortegren @Massimo.Tristano (based on PR #8500) #preflight 63c6c7ff02024f93d861359e [CL 23739117 by aidin abedi in ue5-main branch]
44 lines
2.4 KiB
C++
44 lines
2.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Containers/Array.h"
|
|
#include "Math/Color.h"
|
|
|
|
struct FColor;
|
|
|
|
class MATERIALBAKING_API FMaterialBakingHelpers
|
|
{
|
|
public:
|
|
/**
|
|
* Applies a box blur to magenta pixels found in given texture represented by InOutPixels using non-background pixels, this creates a smear across the magenta/filled pixels.
|
|
* @param InOutPixels The image to apply the smear to
|
|
* @param ImageWidth The width of the image in pixels
|
|
* @param ImageHeight The height of the image in pixels
|
|
* @param MaxIterations The max distance in pixels to smear the edges of the texture. When set to -1 this value is the max of the width and height of the buffer
|
|
* @param BackgroundColor The pixel color considered background in the image, and that can be smeared into
|
|
*/
|
|
static void PerformUVBorderSmear(TArray<FColor>& InOutPixels, int32 ImageWidth, int32 ImageHeight, int32 MaxIterations = -1, FColor BackgroundColor = FColor::Magenta);
|
|
|
|
/**
|
|
* Shrinks the array to a single pixel if the entire output is monochrome. Params will be adjusted accordingly when this occurs.
|
|
* It's useful to perform this before the border smear as a single non-magenta pixel value would have led to a monochrome image post-smear anyway,
|
|
* so the actual smearing process can be skipped.
|
|
* @param InOutPixels The image to shrink
|
|
* @param ImageWidth The width of the image in pixels
|
|
* @param ImageHeight The height of the image in pixels
|
|
*/
|
|
static void PerformShrinking(TArray<FColor>& InOutPixels, int32& OnOutImageWidth, int32& InOutImageHeight, FColor BackgroundColor = FColor::Magenta);
|
|
|
|
/**
|
|
* Applies a box blur to magenta pixels found in given texture represented by InOutPixels using non-background pixels, this creates a smear across the magenta/filled pixels.
|
|
* @param InOutPixels The image to apply the smear to
|
|
* @param InOutImageWidth The width of the image in pixels
|
|
* @param InOutImageHeight The height of the image in pixels
|
|
* @param BackgroundColor The pixel color considered background in the image, and that can be smeared into
|
|
*
|
|
* @note This version is allowed to shrink the array to a single pixel if the entire output is monochrome. Params will be adjusted accordingly when this occurs.
|
|
*/
|
|
static void PerformUVBorderSmearAndShrink(TArray<FColor>& InOutPixels, int32& InOutImageWidth, int32& InOutImageHeight, FColor BackgroundColor = FColor::Magenta);
|
|
};
|