UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FScreenTransform Struct Reference

#include <ScreenPass.h>

Public Types

enum class  ETextureBasis { ScreenPosition , ViewportUV , TexelPosition , TextureUV }
 

Public Member Functions

 FScreenTransform ()
 
 FScreenTransform (const FVector2f &InScale, const FVector2f &InBias)
 

Static Public Member Functions

static FScreenTransform Invert (const FScreenTransform &AToB)
 
static FScreenTransform ChangeRectFromTo (FVector2f SourceOffset, FVector2f SourceExtent, FVector2f DestinationOffset, FVector2f DestinationExtent)
 
static FScreenTransform ChangeRectFromTo (const FIntRect &SrcViewport, const FIntRect &DestViewport)
 
static FScreenTransform ChangeTextureBasisFromTo (const FIntPoint &TextureExtent, const FIntRect &TextureViewport, ETextureBasis SrcBasis, ETextureBasis DestBasis)
 
static FScreenTransform ChangeTextureBasisFromTo (const FScreenPassTextureViewport &TextureViewport, ETextureBasis SrcBasis, ETextureBasis DestBasis)
 
static FScreenTransform ChangeTextureBasisFromTo (const FScreenPassTexture &Texture, ETextureBasis SrcBasis, ETextureBasis DestBasis)
 
static FScreenTransform ChangeTextureUVCoordinateFromTo (const FScreenPassTextureViewport &SrcViewport, const FScreenPassTextureViewport &DestViewport)
 
static FScreenTransform SvPositionToViewportUV (const FIntRect &SrcViewport)
 
static FScreenTransform DispatchThreadIdToViewportUV (const FIntRect &SrcViewport)
 

Public Attributes

FVector2f Scale
 
FVector2f Bias
 

Static Public Attributes

static RENDERER_API const FScreenTransform Identity
 
static RENDERER_API const FScreenTransform ScreenPosToViewportUV
 
static RENDERER_API const FScreenTransform ViewportUVToScreenPos
 

Detailed Description

Generic affine 2D texture coordinate transformation x * S + B.

Construct: FVector2f PointInA = ...; FVector2f PointInB = PointInA * Scale0 + Bias0;

FScreenTransform AToB(Scale0, Bias0); FVector2f PointInB = PointInA * AToB;

Associativity: FVector2f PointInA = ...; FScreenTransform AToB = ...; FScreenTransform BToC = ...; FVector2f PointInC = (PointInA * AToB) * BToC;

FScreenTransform AToC = AToB * BToC; FVector2f PointInC = PointInA * AToC;

Explicit construction by factorization: FVector2f PointInA = ...; FVector2f PointInB = PointInA * Scale0 + Bias0; FVector2f PointInC = PointInB * Scale1 + Bias1;

FScreenTransform AToC = (FScreenTransform::Identity * Scale0 + Bias0) * Scale1 + Bias1; FVector2f PointInC = PointInA * AToC;

Shader code: include "/Engine/Private/ScreenPass.ush"

FScreenTransform AToC; // shader parameter in global scope

{ float2 PointInA = ...; float2 PointInC = ApplyScreenTransform(PointInA, AToC); }

Member Enumeration Documentation

◆ ETextureBasis

Different texture coordinate basis.

Enumerator
ScreenPosition 
ViewportUV 
TexelPosition 
TextureUV 

Constructor & Destructor Documentation

◆ FScreenTransform() [1/2]

FScreenTransform::FScreenTransform ( )
inline

◆ FScreenTransform() [2/2]

FScreenTransform::FScreenTransform ( const FVector2f InScale,
const FVector2f InBias 
)
inline

Member Function Documentation

◆ ChangeRectFromTo() [1/2]

FScreenTransform FScreenTransform::ChangeRectFromTo ( const FIntRect SrcViewport,
const FIntRect DestViewport 
)
inlinestatic

◆ ChangeRectFromTo() [2/2]

FScreenTransform FScreenTransform::ChangeRectFromTo ( FVector2f  SourceOffset,
FVector2f  SourceExtent,
FVector2f  DestinationOffset,
FVector2f  DestinationExtent 
)
inlinestatic

Change of coordinate to map from a rectangle to another.

◆ ChangeTextureBasisFromTo() [1/3]

FScreenTransform FScreenTransform::ChangeTextureBasisFromTo ( const FIntPoint TextureExtent,
const FIntRect TextureViewport,
FScreenTransform::ETextureBasis  SrcBasis,
FScreenTransform::ETextureBasis  DestBasis 
)
inlinestatic

Change of basis for texture coordinate.

◆ ChangeTextureBasisFromTo() [2/3]

static FScreenTransform FScreenTransform::ChangeTextureBasisFromTo ( const FScreenPassTexture Texture,
ETextureBasis  SrcBasis,
ETextureBasis  DestBasis 
)
inlinestatic

◆ ChangeTextureBasisFromTo() [3/3]

static FScreenTransform FScreenTransform::ChangeTextureBasisFromTo ( const FScreenPassTextureViewport TextureViewport,
ETextureBasis  SrcBasis,
ETextureBasis  DestBasis 
)
inlinestatic

◆ ChangeTextureUVCoordinateFromTo()

FScreenTransform FScreenTransform::ChangeTextureUVCoordinateFromTo ( const FScreenPassTextureViewport SrcViewport,
const FScreenPassTextureViewport DestViewport 
)
static

Change TextureUV coordinate from one texture to another, taking into account change in texture extent too.

◆ DispatchThreadIdToViewportUV()

FScreenTransform FScreenTransform::DispatchThreadIdToViewportUV ( const FIntRect SrcViewport)
static

◆ Invert()

FScreenTransform FScreenTransform::Invert ( const FScreenTransform AToB)
inlinestatic

Invert a transformation AToB to BToA.

◆ SvPositionToViewportUV()

FScreenTransform FScreenTransform::SvPositionToViewportUV ( const FIntRect SrcViewport)
static

Member Data Documentation

◆ Bias

FVector2f FScreenTransform::Bias

◆ Identity

RENDERER_API const FScreenTransform FScreenTransform::Identity
static

◆ Scale

FVector2f FScreenTransform::Scale

◆ ScreenPosToViewportUV

RENDERER_API const FScreenTransform FScreenTransform::ScreenPosToViewportUV
static

◆ ViewportUVToScreenPos

RENDERER_API const FScreenTransform FScreenTransform::ViewportUVToScreenPos
static

The documentation for this struct was generated from the following files: