Description

UI rendering in PIE and UIrenderer rendering in MRQ produce different output results. This is because when dealing with fades in the UI, the rendering results should not be different. 

 

Workaround:

MovieRenderPipelineDataTypes.h

					float SourceAlpha = Src.A / 255.f;
					FColor Out;
#define BLEND_TEST 1
#if BLEND_TEST
					FLinearColor SrcL(Src);
					FLinearColor DstL(Dst);

					FLinearColor OutL;
					OutL.A = FMath::Clamp(SrcL.A + (DstL.A * (1.f - SourceAlpha)), 0.f, 1.f);
					OutL.R = FMath::Clamp(SrcL.R + (DstL.R * (1.f - SourceAlpha)), 0.f, 1.f);
					OutL.G = FMath::Clamp(SrcL.G + (DstL.G * (1.f - SourceAlpha)), 0.f, 1.f);
					OutL.B = FMath::Clamp(SrcL.B + (DstL.B * (1.f - SourceAlpha)), 0.f, 1.f);

					Out = OutL.ToFColor(true);
#else
					Out.A = FMath::Clamp(Src.A + FMath::RoundToInt(Dst.A * (1.f - SourceAlpha)), 0, 255);
					Out.R = FMath::Clamp(Src.R + FMath::RoundToInt(Dst.R * (1.f - SourceAlpha)), 0, 255);
					Out.G = FMath::Clamp(Src.G + FMath::RoundToInt(Dst.G * (1.f - SourceAlpha)), 0, 255);
					Out.B = FMath::Clamp(Src.B + FMath::RoundToInt(Dst.B * (1.f - SourceAlpha)), 0, 255);
#endif
					Dst = Out;
Steps to Reproduce
  1. Open the attached sample project
  2. Play in editor, capture the screen at this time (Output_PIE.png)
  3. Open the level sequence asset "SEQ"
  4. Select "Render Movie Options" in the sequencer
  5. Select "Settings" and add "UIRenderer" settings
  6. Select "Render(Remote)" to start rendering
  7. Check the output image (Output_MRQSshoot.jpeg) after MRQ playback is finished

Result:

The two renderings are different, with the MQRshot being slightly whiter

Expected:

The two renderings are identical

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-201823 in the post.

0
Login to Vote

Backlogged
ComponentUE - Anim - Sequencer - MRQ
Affects Versions5.3
CreatedDec 5, 2023
UpdatedFeb 8, 2024