UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MediaShaders Namespace Reference

Enumerations

enum class  EToneMapMethod : uint8 { None = 0 , Hable = 1 , SimpleReinhard = 2 , MAX }
 

Functions

FMatrix CombineColorTransformAndOffset (const FMatrix &InMatrix, const FVector &InYUVOffset)
 

Variables

const FMatrix YuvToRgbRec601Unscaled
 
const FMatrix YuvToRgbRec601Scaled
 
const FMatrix YuvToRgbRec709Unscaled
 
const FMatrix YuvToRgbRec709Scaled
 
const FMatrix YuvToRgbRec2020Unscaled
 
const FMatrix YuvToRgbRec2020Scaled
 
const FMatrix YuvToSrgbPs4
 
const FMatrix RgbToYuvRec709Scaled
 
const FMatrix RgbToYuvRec2020Scaled
 
const FVector YUVOffset8bits = FVector(0.06274509803921568627f, 0.5019607843137254902f, 0.5019607843137254902f)
 
const FVector YUVOffsetNoScale8bits = FVector(0.0f, 0.5019607843137254902f, 0.5019607843137254902f)
 
const FVector YUVOffset10bits = FVector(0.06256109481915933529f, 0.50048875855327468231f, 0.50048875855327468231f)
 
const FVector YUVOffsetNoScale10bits = FVector(0.0f, 0.50048875855327468231f, 0.50048875855327468231f)
 
const FVector YUVOffset16bits = FVector(4096.0f / 65535.0f, 32768.0f / 65535.0f, 32768.0f / 65535.0f)
 
const FVector YUVOffsetNoScale16bits = FVector(0.0f, 32768.0f / 65535.0f, 32768.0f / 65535.0f)
 
const FVector YUVOffsetFloat = FVector(1.0f / 16.0f, 0.5f, 0.5f)
 
const FVector YUVOffsetNoScaleFloat = FVector(0.0f, 0.5f, 0.5f)
 

Enumeration Type Documentation

◆ EToneMapMethod

Enumerator
None 
Hable 
SimpleReinhard 
MAX 

Function Documentation

◆ CombineColorTransformAndOffset()

RENDERCORE_API FMatrix MediaShaders::CombineColorTransformAndOffset ( const FMatrix InMatrix,
const FVector InYUVOffset 
)

Setup YUV Offset in matrix

Combine color transform matrix with yuv offset in a single matrix

Variable Documentation

◆ RgbToYuvRec2020Scaled

RENDERCORE_API const FMatrix MediaShaders::RgbToYuvRec2020Scaled
Initial value:
FPlane( 0.225613123257483f, 0.582280696718123f, 0.0509297094389877f, 0.000000f),
FPlane(-0.122655750438889f, -0.316559935835522f, 0.439215686274411f, 0.000000f),
FPlane( 0.439215686274411f, -0.403889154894806f, -0.0353265313796045f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)
UE::Math::TPlane< double > FPlane
Definition MathFwd.h:52
UE::Math::TMatrix< double > FMatrix
Definition MathFwd.h:51

Color transform from RGB to YUV (in Rec. 2020 color space, including inversion of range scaling)

◆ RgbToYuvRec709Scaled

RENDERCORE_API const FMatrix MediaShaders::RgbToYuvRec709Scaled
Initial value:
FPlane( 0.18261938151317932966f, 0.61420368882407283539f, 0.062000459074512487279f, 0.000000f),
FPlane(-0.10066136381366230790f, -0.33855432246084737891f, 0.439215686274509797830f, 0.000000f),
FPlane( 0.43921568627450979783f, -0.39894445418228852152f, -0.040271232092221290189f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)

Color transform from RGB to YUV (in Rec. 709 color space, including inversion of range scaling)

◆ YUVOffset10bits

RENDERCORE_API const FVector MediaShaders::YUVOffset10bits = FVector(0.06256109481915933529f, 0.50048875855327468231f, 0.50048875855327468231f)

YUV Offset for 10 bit conversion (Computed as 64/1023, 512/1023, 512/1023)

◆ YUVOffset16bits

RENDERCORE_API const FVector MediaShaders::YUVOffset16bits = FVector(4096.0f / 65535.0f, 32768.0f / 65535.0f, 32768.0f / 65535.0f)

YUV Offset for 16 bit conversion (Computed as 4096/65535, 32768/65535, 32768/65535)

◆ YUVOffset8bits

RENDERCORE_API const FVector MediaShaders::YUVOffset8bits = FVector(0.06274509803921568627f, 0.5019607843137254902f, 0.5019607843137254902f)

YUV Offset for 8 bit conversion (Computed as 16/255, 128/255, 128/255)

◆ YUVOffsetFloat

RENDERCORE_API const FVector MediaShaders::YUVOffsetFloat = FVector(1.0f / 16.0f, 0.5f, 0.5f)

YUV Offset for float conversion (Computed as 1/16, 1/2, 1/2)

◆ YUVOffsetNoScale10bits

RENDERCORE_API const FVector MediaShaders::YUVOffsetNoScale10bits = FVector(0.0f, 0.50048875855327468231f, 0.50048875855327468231f)

YUV Offset for 10 bit conversion (Computed as 0/1023, 512/1023, 512/1023)

◆ YUVOffsetNoScale16bits

RENDERCORE_API const FVector MediaShaders::YUVOffsetNoScale16bits = FVector(0.0f, 32768.0f / 65535.0f, 32768.0f / 65535.0f)

YUV Offset for 16 bit conversion (Computed as 0/65535, 32768/65535, 32768/65535)

◆ YUVOffsetNoScale8bits

RENDERCORE_API const FVector MediaShaders::YUVOffsetNoScale8bits = FVector(0.0f, 0.5019607843137254902f, 0.5019607843137254902f)

YUV Offset for 8 bit conversion (Computed as 0/255, 128/255, 128/255)

◆ YUVOffsetNoScaleFloat

RENDERCORE_API const FVector MediaShaders::YUVOffsetNoScaleFloat = FVector(0.0f, 0.5f, 0.5f)

YUV Offset for float conversion (Computed as 0, 1/2, 1/2)

◆ YuvToRgbRec2020Scaled

RENDERCORE_API const FMatrix MediaShaders::YuvToRgbRec2020Scaled
Initial value:
FPlane(1.16438356164f, 0.000000000000f, 1.678673624439f, 0.000000f),
FPlane(1.16438356164f, -0.187331717494f, -0.650426506450f, 0.000000f),
FPlane(1.16438356164f, 2.141768413395f, 0.000000000000f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)

Color transform from YUV Video Range to Rec2020 Full Range.

◆ YuvToRgbRec2020Unscaled

RENDERCORE_API const FMatrix MediaShaders::YuvToRgbRec2020Unscaled
Initial value:
FPlane(1.000000f, 0.000000000000f, 1.474599575977f, 0.000000f),
FPlane(1.000000f, -0.164558057720f, -0.571355048803f, 0.000000f),
FPlane(1.000000f, 1.881396567060f, 0.000000000000f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)

Color transform from YUV to Rec2020 without range scaling.

◆ YuvToRgbRec601Scaled

RENDERCORE_API const FMatrix MediaShaders::YuvToRgbRec601Scaled
Initial value:
FPlane(1.16438356164f, 0.000000000000f, 1.596026785714f, 0.000000f),
FPlane(1.16438356164f, -0.391762290095f, -0.812967647238f, 0.000000f),
FPlane(1.16438356164f, 2.017232142857f, 0.000000000000f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)

Color transform from YUV Video Range to Rec601 Full Range.

◆ YuvToRgbRec601Unscaled

RENDERCORE_API const FMatrix MediaShaders::YuvToRgbRec601Unscaled
Initial value:
FPlane(1.000000f, 0.00000000000f, 1.4020000000f, 0.000000f),
FPlane(1.000000f, -0.34414362862f, -0.7141362862f, 0.000000f),
FPlane(1.000000f, 1.77200000000f, 0.0000000000f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)

YUV to RGB matrices for Rec601, Rec709, and Rec2020. Each are provided with a Scaled and Unscaled version.

The scaling is according to SMPTE EG36, resulting in (255/219.0, 255/224.0, 255/224.0) being multiplied by the Unscaled matrix.

Color transform from YUV to Rec601 without range scaling.

◆ YuvToRgbRec709Scaled

RENDERCORE_API const FMatrix MediaShaders::YuvToRgbRec709Scaled
Initial value:
FPlane(1.16438356164f, 0.000000000000f, 1.792652263418f, 0.000000f),
FPlane(1.16438356164f, -0.213237021569f, -0.533004040142f, 0.000000f),
FPlane(1.16438356164f, 2.112419281991f, 0.000000000000f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)

Color transform from YUV Video Range to Rec709 Full Range.

◆ YuvToRgbRec709Unscaled

RENDERCORE_API const FMatrix MediaShaders::YuvToRgbRec709Unscaled
Initial value:
FPlane(1.000000f, 0.000000000000f, 1.574721988260f, 0.000000f),
FPlane(1.000000f, -0.187314089535f, -0.468207470556f, 0.000000f),
FPlane(1.000000f, 1.855615369279f, 0.000000000000f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)

Color transform from YUV to Rec709 without range scaling.

◆ YuvToSrgbPs4

RENDERCORE_API const FMatrix MediaShaders::YuvToSrgbPs4
Initial value:
FPlane(1.164400f, 0.000000f, 1.792700f, 0.000000f),
FPlane(1.164400f, -0.213300f, -0.532900f, 0.000000f),
FPlane(1.164400f, 2.112400f, 0.000000f, 0.000000f),
FPlane(0.000000f, 0.000000f, 0.000000f, 0.000000f)
)

Color transform from YUV to sRGB (using rounded values from PS4 AvPlayer codec).