Navigation
API > API/Plugins > API/Plugins/MovieRenderPipelineCore
This class is responsible for blending a together a single Equirectangular Image from a series of individual renders, and can blend multiple samples in a threadsafe way. For each incoming sample the pixel data should contain information about panoramic pane (orientation, index, etc.), and one all samples have been called BlendSample_AnyThread, it is safe for the owner of this instance to fetch the image data, which returns a copy of the output image. You can then call Initialize() on it to reset the output image without reallocating memory, which allows for reusing a given output blender for multiple frames.
This implementation works by allocating memory for each incoming sample that is the size of the data once blended. Depending on where in the projection it is, different samples will take up different parts of the output image (with different resolutions) so the pool stores available buffers by resolution. Once a pool is either found or allocated for the sample, the incoming data is read from. Instead of taking each sample in the incoming data and figuring out where it would go in the output image, we instead work backwards, and calculate from each output pixel in the range that the sample would affect, sample the source image with filtering.
Once the blending into the temporary buffer is complete, a lock on the output array is taken and the data is added to the output, and the buffer is returned to the pool.
| Name | FMoviePipelinePanoramicBlenderBase |
| Type | class |
| Header File | /Engine/Plugins/MovieScene/MovieRenderPipeline/Source/MovieRenderPipelineCore/Public/MoviePipelinePanoramicBlenderBase.h |
| Include Path | #include "MoviePipelinePanoramicBlenderBase.h" |
Syntax
class FMoviePipelinePanoramicBlenderBase
Structs
| Name | Remarks |
|---|---|
| FPoolEntry |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| TaskConcurrencyLimiter | TUniquePtr< UE::Tasks::FTaskConcurrencyLimiter > | MoviePipelinePanoramicBlenderBase.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| OutputEquirectangularMap | TArray64< FLinearColor > | MoviePipelinePanoramicBlenderBase.h | ||
| OutputEquirectangularMapSize | FIntPoint | MoviePipelinePanoramicBlenderBase.h | ||
| OutputMapAccessMutex | FCriticalSection | MoviePipelinePanoramicBlenderBase.h | ||
| PoolAccessMutex | FCriticalSection | MoviePipelinePanoramicBlenderBase.h | ||
| TempBufferPool | TArray64< TUniquePtr< FPoolEntry > > | MoviePipelinePanoramicBlenderBase.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void BlendSample_AnyThread
(
TUniquePtr< FImagePixelData >&& InData, |
MoviePipelinePanoramicBlenderBase.h | ||
void FetchFinalPixelDataHalfFloat
(
TArray64< FFloat16Color >& OutPixelData |
MoviePipelinePanoramicBlenderBase.h | ||
void FetchFinalPixelDataLinearColor
(
TArray64< FLinearColor >& OutPixelData |
MoviePipelinePanoramicBlenderBase.h | ||
void Initialize
(
const FIntPoint InOutputResolution |
MoviePipelinePanoramicBlenderBase.h |