CARLA
Loading...
Searching...
No Matches
Classes | Namespaces | Macros | Enumerations | Functions | Variables
CameraModelUtil.cpp File Reference
#include "CameraModelUtil.h"
#include <util/ue-header-guard-begin.h>
#include "Engine/TextureRenderTargetCube.h"
#include "Engine/TextureRenderTarget2D.h"
#include "GlobalShader.h"
#include "ShaderParameterUtils.h"
#include "PipelineStateCache.h"
#include "RHIStaticStates.h"
#include "RenderGraphBuilder.h"
#include "RenderGraphUtils.h"
#include <util/ue-header-guard-end.h>
#include <cmath>

Go to the source code of this file.

Classes

struct  FToPerspectiveShaderBase< ECameraModel >
 
struct  FToPerspectiveShaderBase< ECameraModel::KannalaBrandt >
 
struct  FWideAngleLensShaderBase< ECameraModel >
 
struct  FWideAngleLensShaderBase< ECameraModel::KannalaBrandt >
 
struct  FWideAngleLensShaderBase< ECameraModel::LUT1D >
 

Namespaces

namespace  CameraModelUtil
 
namespace  CameraModelUtil::BrownConrady
 
namespace  CameraModelUtil::FTheta
 
namespace  CameraModelUtil::KannalaBrandt
 
namespace  CameraModelUtil::LUT1D
 

Macros

#define DECLARE_PERSPECTIVE_SHADER(NAME, CAMERA_MODEL)
 
#define DECLARE_WIDE_ANGLE_LENS_SHADER(NAME, CAMERA_MODEL)
 

Enumerations

enum  WideAngleLensShaderFlags : uint32 { WAL_SHADER_FLAGS_EQUIRECTANGULAR = 1U << 0 , WAL_SHADER_FLAGS_FOV_MASK = 1U << 1 }
 

Functions

template<typename FShaderType >
static void ApplyDistortion (FRDGBuilder &GraphBuilder, FRDGTextureRef Destination, FRDGTextureRef CubeTextures[6], FRHISamplerState *Sampler, FIntPoint Size, const CameraModelUtil::FDistortCubemapToImageOptions &Options, FVector4f CameraParams)
 
static void ApplyDistortionKannalaBrandt (FRDGBuilder &GraphBuilder, FRDGTextureRef Destination, FRDGTextureRef CubeTextures[6], FRHISamplerState *Sampler, FIntPoint Size, const CameraModelUtil::FDistortCubemapToImageOptions &Options, FVector4f CameraParams)
 
static void ApplyDistortionLUT1D (FRDGBuilder &GraphBuilder, FRDGTextureRef Destination, FRDGTextureRef CubeTextures[6], FRHISamplerState *Sampler, FIntPoint Size, const CameraModelUtil::FDistortCubemapToImageOptions &Options, FVector4f CameraParams)
 
float CameraModelUtil::ComputeAngle (ECameraModel CameraModel, float Distance, TArrayView< const float > Coefficients)
 
float CameraModelUtil::KannalaBrandt::ComputeCameraPolynomial (float Theta, TArrayView< const float > Coefficients)
 
float CameraModelUtil::KannalaBrandt::ComputeCameraPolynomialDerivative (float Theta, TArrayView< const float > Coefficients)
 
float CameraModelUtil::ComputeDistance (ECameraModel CameraModel, float Angle, int32 ImageHeight, TArrayView< const float > Coefficients)
 
FVector2f CameraModelUtil::ComputeLensImagePoint (const FLensModelDescriptor &Descriptor, FVector Direction, ELensColorChannel Channel)
 
FVector CameraModelUtil::ComputeLensRayDirection (const FLensModelDescriptor &Descriptor, FVector2f ImagePoint, ELensColorChannel Channel)
 
template<typename FShaderType >
static auto CreateDistortionParameters (FRDGBuilder &GraphBuilder, FRDGTextureRef Destination, FRDGTextureRef CubeTextures[6], FRHISamplerState *Sampler, const CameraModelUtil::FDistortCubemapToImageOptions &Options, FVector4f CameraParams)
 
 DECLARE_PERSPECTIVE_SHADER (FToPerspectiveShader_Custom, ECameraModel::KannalaBrandt)
 
 DECLARE_PERSPECTIVE_SHADER (FToPerspectiveShader_Equidistance, ECameraModel::Equidistant)
 
 DECLARE_PERSPECTIVE_SHADER (FToPerspectiveShader_Equisolid, ECameraModel::Equisolid)
 
 DECLARE_PERSPECTIVE_SHADER (FToPerspectiveShader_Orthogonal, ECameraModel::Orthographic)
 
 DECLARE_PERSPECTIVE_SHADER (FToPerspectiveShader_Perspective, ECameraModel::Perspective)
 
 DECLARE_PERSPECTIVE_SHADER (FToPerspectiveShader_Stereographic, ECameraModel::Stereographic)
 
 DECLARE_WIDE_ANGLE_LENS_SHADER (FWideAngleLensShader_Custom, ECameraModel::KannalaBrandt)
 
 DECLARE_WIDE_ANGLE_LENS_SHADER (FWideAngleLensShader_Equidistance, ECameraModel::Equidistant)
 
 DECLARE_WIDE_ANGLE_LENS_SHADER (FWideAngleLensShader_Equisolid, ECameraModel::Equisolid)
 
 DECLARE_WIDE_ANGLE_LENS_SHADER (FWideAngleLensShader_LUT1D, ECameraModel::LUT1D)
 
 DECLARE_WIDE_ANGLE_LENS_SHADER (FWideAngleLensShader_Orthogonal, ECameraModel::Orthographic)
 
 DECLARE_WIDE_ANGLE_LENS_SHADER (FWideAngleLensShader_Perspective, ECameraModel::Perspective)
 
 DECLARE_WIDE_ANGLE_LENS_SHADER (FWideAngleLensShader_Stereographic, ECameraModel::Stereographic)
 
template<typename FShaderType >
static void DispatchDistortion (FRDGBuilder &GraphBuilder, typename FShaderType::FParameters *Parameters, FIntPoint Size)
 
FVector2f CameraModelUtil::BrownConrady::Distort (float Xn, float Yn, TArrayView< const float > Coefficients)
 
void CameraModelUtil::DistortCubemapToImage (FRDGBuilder &GraphBuilder, FRDGTexture *Destination, FRDGTexture **CubeTextures, FRHISamplerState *Sampler, const FDistortCubemapToImageOptions &Options)
 
void CameraModelUtil::DistortCubemapToImage (FRDGBuilder &GraphBuilder, UTextureRenderTarget2D *Destination, UTextureRenderTarget2D **CubeRenderTargets, FRHISamplerState *Sampler, const FDistortCubemapToImageOptions &Options)
 
static void CameraModelUtil::BrownConrady::EvalWithJacobian (float Xn, float Yn, TArrayView< const float > C, float &OutXd, float &OutYd, float OutJ[4])
 
FRHISamplerState * CameraModelUtil::GetSampler (ESamplerFilter Filter)
 
 IMPLEMENT_SHADER_TYPE (, FToPerspectiveShader_Custom, TEXT("/Plugin/Carla/ToPerspective.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FToPerspectiveShader_Equidistance, TEXT("/Plugin/Carla/ToPerspective.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FToPerspectiveShader_Equisolid, TEXT("/Plugin/Carla/ToPerspective.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FToPerspectiveShader_Orthogonal, TEXT("/Plugin/Carla/ToPerspective.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FToPerspectiveShader_Perspective, TEXT("/Plugin/Carla/ToPerspective.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FToPerspectiveShader_Stereographic, TEXT("/Plugin/Carla/ToPerspective.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FWideAngleLensShader_Custom, TEXT("/Plugin/Carla/WideAngleLens.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FWideAngleLensShader_Equidistance, TEXT("/Plugin/Carla/WideAngleLens.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FWideAngleLensShader_Equisolid, TEXT("/Plugin/Carla/WideAngleLens.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FWideAngleLensShader_LUT1D, TEXT("/Plugin/Carla/WideAngleLens.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FWideAngleLensShader_Orthogonal, TEXT("/Plugin/Carla/WideAngleLens.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FWideAngleLensShader_Perspective, TEXT("/Plugin/Carla/WideAngleLens.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_SHADER_TYPE (, FWideAngleLensShader_Stereographic, TEXT("/Plugin/Carla/WideAngleLens.usf"), TEXT("MainCS"), SF_Compute)
 
FVector CameraModelUtil::LensDirToUE (FVector LensDir)
 
float CameraModelUtil::FTheta::Polynomial (float Distance, TArrayView< const float > Coefficients)
 
static float CameraModelUtil::RadialForward (ECameraModel Model, float Theta, TArrayView< const float > Coeffs, TArrayView< const float > LUT, float ThetaMax)
 
static float CameraModelUtil::RadialInverse (ECameraModel Model, float Distance, TArrayView< const float > Coeffs, TArrayView< const float > LUT, float ThetaMax)
 
float CameraModelUtil::LUT1D::SampleForward (float Theta, TArrayView< const float > Samples, float ThetaMax)
 
float CameraModelUtil::LUT1D::SampleInverse (float Distance, TArrayView< const float > Samples, float ThetaMax)
 
static float CameraModelUtil::SelectCAScale (const FLensModelDescriptor &Descriptor, ELensColorChannel Channel)
 
float CameraModelUtil::FTheta::SolveRadius (float Theta, TArrayView< const float > Coefficients, int32 Iterations)
 
template<typename FShaderType >
static void ToPerspective (FRDGBuilder &GraphBuilder, FRDGTextureRef Destination, FRDGTextureRef Source, FRHISamplerState *Sampler, float YFOVAngle, float DestinationFocalDistance, float SourceFocalDistance, FIntPoint Size)
 
static void ToPerspective (FRDGBuilder &GraphBuilder, FRDGTextureRef Destination, FRDGTextureRef Source, FRHISamplerState *Sampler, float YFOVAngle, float DestinationFocalDistance, float SourceFocalDistance, FIntPoint Size, TArrayView< const float > KannalaBrandtCoefficients)
 
FVector CameraModelUtil::UEDirToLens (FVector UEDir)
 
FVector2f CameraModelUtil::BrownConrady::Undistort (float Xd, float Yd, TArrayView< const float > Coefficients, int32 Iterations)
 

Variables

static constexpr std::pair< const TCHAR *, uint32 > CommonShaderDefinitions []
 
static const auto KannalaBrandtSolverIterations = 32U
 
static const auto SubgroupSize = 32U
 
static const auto WorkPerInvocation = static_cast<uint32>(64U / sizeof(FVector4f))
 

Macro Definition Documentation

◆ DECLARE_PERSPECTIVE_SHADER

#define DECLARE_PERSPECTIVE_SHADER (   NAME,
  CAMERA_MODEL 
)
Value:
class NAME : \
public FToPerspectiveShaderBase<CAMERA_MODEL>, \
public FGlobalShader \
{ \
public: \
\
DECLARE_GLOBAL_SHADER(NAME); \
SHADER_USE_PARAMETER_STRUCT(NAME, FGlobalShader); \
\
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) \
{ \
return true; \
} \
\
static void ModifyCompilationEnvironment( \
const FGlobalShaderPermutationParameters& Parameters, \
FShaderCompilerEnvironment& OutEnvironment) \
{ \
for (auto Definition : CommonShaderDefinitions) \
OutEnvironment.SetDefine(Definition.first, Definition.second); \
OutEnvironment.SetDefine(TEXT("CAMERA_TYPE"), static_cast<uint32>(CAMERA_MODEL)); \
FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment); \
} \
}
static constexpr std::pair< const TCHAR *, uint32 > CommonShaderDefinitions[]
long long first
Definition LaneGraph.cpp:34

Definition at line 180 of file CameraModelUtil.cpp.

◆ DECLARE_WIDE_ANGLE_LENS_SHADER

#define DECLARE_WIDE_ANGLE_LENS_SHADER (   NAME,
  CAMERA_MODEL 
)
Value:
class NAME : \
public FWideAngleLensShaderBase<CAMERA_MODEL>, \
public FGlobalShader \
{ \
public: \
\
DECLARE_GLOBAL_SHADER(NAME); \
SHADER_USE_PARAMETER_STRUCT(NAME, FGlobalShader); \
\
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) \
{ \
return true; \
} \
\
static void ModifyCompilationEnvironment( \
const FGlobalShaderPermutationParameters& Parameters, \
FShaderCompilerEnvironment& OutEnvironment) \
{ \
for (auto Definition : CommonShaderDefinitions) \
OutEnvironment.SetDefine(Definition.first, Definition.second); \
OutEnvironment.SetDefine(TEXT("CAMERA_TYPE"), static_cast<uint32>(CAMERA_MODEL)); \
FGlobalShader::ModifyCompilationEnvironment(Parameters, OutEnvironment); \
} \
}

Definition at line 152 of file CameraModelUtil.cpp.

Enumeration Type Documentation

◆ WideAngleLensShaderFlags

enum WideAngleLensShaderFlags : uint32
Enumerator
WAL_SHADER_FLAGS_EQUIRECTANGULAR 
WAL_SHADER_FLAGS_FOV_MASK 

Definition at line 24 of file CameraModelUtil.cpp.

Function Documentation

◆ ApplyDistortion()

template<typename FShaderType >
static void ApplyDistortion ( FRDGBuilder &  GraphBuilder,
FRDGTextureRef  Destination,
FRDGTextureRef  CubeTextures[6],
FRHISamplerState *  Sampler,
FIntPoint  Size,
const CameraModelUtil::FDistortCubemapToImageOptions &  Options,
FVector4f  CameraParams 
)
static

Definition at line 280 of file CameraModelUtil.cpp.

◆ ApplyDistortionKannalaBrandt()

static void ApplyDistortionKannalaBrandt ( FRDGBuilder &  GraphBuilder,
FRDGTextureRef  Destination,
FRDGTextureRef  CubeTextures[6],
FRHISamplerState *  Sampler,
FIntPoint  Size,
const CameraModelUtil::FDistortCubemapToImageOptions &  Options,
FVector4f  CameraParams 
)
static

◆ ApplyDistortionLUT1D()

static void ApplyDistortionLUT1D ( FRDGBuilder &  GraphBuilder,
FRDGTextureRef  Destination,
FRDGTextureRef  CubeTextures[6],
FRHISamplerState *  Sampler,
FIntPoint  Size,
const CameraModelUtil::FDistortCubemapToImageOptions &  Options,
FVector4f  CameraParams 
)
static

◆ CreateDistortionParameters()

template<typename FShaderType >
static auto CreateDistortionParameters ( FRDGBuilder &  GraphBuilder,
FRDGTextureRef  Destination,
FRDGTextureRef  CubeTextures[6],
FRHISamplerState *  Sampler,
const CameraModelUtil::FDistortCubemapToImageOptions &  Options,
FVector4f  CameraParams 
)
static

◆ DECLARE_PERSPECTIVE_SHADER() [1/6]

DECLARE_PERSPECTIVE_SHADER ( FToPerspectiveShader_Custom  ,
ECameraModel::KannalaBrandt   
)

◆ DECLARE_PERSPECTIVE_SHADER() [2/6]

DECLARE_PERSPECTIVE_SHADER ( FToPerspectiveShader_Equidistance  ,
ECameraModel::Equidistant   
)

◆ DECLARE_PERSPECTIVE_SHADER() [3/6]

DECLARE_PERSPECTIVE_SHADER ( FToPerspectiveShader_Equisolid  ,
ECameraModel::Equisolid   
)

◆ DECLARE_PERSPECTIVE_SHADER() [4/6]

DECLARE_PERSPECTIVE_SHADER ( FToPerspectiveShader_Orthogonal  ,
ECameraModel::Orthographic   
)

◆ DECLARE_PERSPECTIVE_SHADER() [5/6]

DECLARE_PERSPECTIVE_SHADER ( FToPerspectiveShader_Perspective  ,
ECameraModel::Perspective   
)

◆ DECLARE_PERSPECTIVE_SHADER() [6/6]

DECLARE_PERSPECTIVE_SHADER ( FToPerspectiveShader_Stereographic  ,
ECameraModel::Stereographic   
)

◆ DECLARE_WIDE_ANGLE_LENS_SHADER() [1/7]

DECLARE_WIDE_ANGLE_LENS_SHADER ( FWideAngleLensShader_Custom  ,
ECameraModel::KannalaBrandt   
)

◆ DECLARE_WIDE_ANGLE_LENS_SHADER() [2/7]

DECLARE_WIDE_ANGLE_LENS_SHADER ( FWideAngleLensShader_Equidistance  ,
ECameraModel::Equidistant   
)

◆ DECLARE_WIDE_ANGLE_LENS_SHADER() [3/7]

DECLARE_WIDE_ANGLE_LENS_SHADER ( FWideAngleLensShader_Equisolid  ,
ECameraModel::Equisolid   
)

◆ DECLARE_WIDE_ANGLE_LENS_SHADER() [4/7]

DECLARE_WIDE_ANGLE_LENS_SHADER ( FWideAngleLensShader_LUT1D  ,
ECameraModel::LUT1D   
)

◆ DECLARE_WIDE_ANGLE_LENS_SHADER() [5/7]

DECLARE_WIDE_ANGLE_LENS_SHADER ( FWideAngleLensShader_Orthogonal  ,
ECameraModel::Orthographic   
)

◆ DECLARE_WIDE_ANGLE_LENS_SHADER() [6/7]

DECLARE_WIDE_ANGLE_LENS_SHADER ( FWideAngleLensShader_Perspective  ,
ECameraModel::Perspective   
)

◆ DECLARE_WIDE_ANGLE_LENS_SHADER() [7/7]

DECLARE_WIDE_ANGLE_LENS_SHADER ( FWideAngleLensShader_Stereographic  ,
ECameraModel::Stereographic   
)

◆ DispatchDistortion()

template<typename FShaderType >
static void DispatchDistortion ( FRDGBuilder &  GraphBuilder,
typename FShaderType::FParameters *  Parameters,
FIntPoint  Size 
)
static

Definition at line 255 of file CameraModelUtil.cpp.

References SubgroupSize.

◆ IMPLEMENT_SHADER_TYPE() [1/13]

IMPLEMENT_SHADER_TYPE ( FToPerspectiveShader_Custom  ,
TEXT("/Plugin/Carla/ToPerspective.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [2/13]

IMPLEMENT_SHADER_TYPE ( FToPerspectiveShader_Equidistance  ,
TEXT("/Plugin/Carla/ToPerspective.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [3/13]

IMPLEMENT_SHADER_TYPE ( FToPerspectiveShader_Equisolid  ,
TEXT("/Plugin/Carla/ToPerspective.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [4/13]

IMPLEMENT_SHADER_TYPE ( FToPerspectiveShader_Orthogonal  ,
TEXT("/Plugin/Carla/ToPerspective.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [5/13]

IMPLEMENT_SHADER_TYPE ( FToPerspectiveShader_Perspective  ,
TEXT("/Plugin/Carla/ToPerspective.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [6/13]

IMPLEMENT_SHADER_TYPE ( FToPerspectiveShader_Stereographic  ,
TEXT("/Plugin/Carla/ToPerspective.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [7/13]

IMPLEMENT_SHADER_TYPE ( FWideAngleLensShader_Custom  ,
TEXT("/Plugin/Carla/WideAngleLens.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [8/13]

IMPLEMENT_SHADER_TYPE ( FWideAngleLensShader_Equidistance  ,
TEXT("/Plugin/Carla/WideAngleLens.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [9/13]

IMPLEMENT_SHADER_TYPE ( FWideAngleLensShader_Equisolid  ,
TEXT("/Plugin/Carla/WideAngleLens.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [10/13]

IMPLEMENT_SHADER_TYPE ( FWideAngleLensShader_LUT1D  ,
TEXT("/Plugin/Carla/WideAngleLens.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [11/13]

IMPLEMENT_SHADER_TYPE ( FWideAngleLensShader_Orthogonal  ,
TEXT("/Plugin/Carla/WideAngleLens.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [12/13]

IMPLEMENT_SHADER_TYPE ( FWideAngleLensShader_Perspective  ,
TEXT("/Plugin/Carla/WideAngleLens.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_SHADER_TYPE() [13/13]

IMPLEMENT_SHADER_TYPE ( FWideAngleLensShader_Stereographic  ,
TEXT("/Plugin/Carla/WideAngleLens.usf")  ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ ToPerspective() [1/2]

template<typename FShaderType >
static void ToPerspective ( FRDGBuilder &  GraphBuilder,
FRDGTextureRef  Destination,
FRDGTextureRef  Source,
FRHISamplerState *  Sampler,
float  YFOVAngle,
float  DestinationFocalDistance,
float  SourceFocalDistance,
FIntPoint  Size 
)
static

Definition at line 361 of file CameraModelUtil.cpp.

References SubgroupSize, and WorkPerInvocation.

Referenced by CameraModelUtil::DistortCubemapToImage().

◆ ToPerspective() [2/2]

static void ToPerspective ( FRDGBuilder &  GraphBuilder,
FRDGTextureRef  Destination,
FRDGTextureRef  Source,
FRHISamplerState *  Sampler,
float  YFOVAngle,
float  DestinationFocalDistance,
float  SourceFocalDistance,
FIntPoint  Size,
TArrayView< const float >  KannalaBrandtCoefficients 
)
static

Definition at line 396 of file CameraModelUtil.cpp.

References SubgroupSize, and WorkPerInvocation.

Variable Documentation

◆ CommonShaderDefinitions

constexpr std::pair<const TCHAR*, uint32> CommonShaderDefinitions[]
staticconstexpr
Initial value:
=
{
std::make_pair(TEXT("THREAD_GROUP_SIZE_X"), SubgroupSize),
std::make_pair(TEXT("THREAD_GROUP_SIZE_Y"), 1U),
std::make_pair(TEXT("THREAD_GROUP_SIZE_Z"), 1U),
std::make_pair(TEXT("WORK_PER_INVOCATION"), WorkPerInvocation),
std::make_pair(TEXT("KANNALA_BRANDT_SOLVER_ITERATIONS"), KannalaBrandtSolverIterations),
}
static const auto KannalaBrandtSolverIterations
static const auto SubgroupSize
static const auto WorkPerInvocation

Definition at line 39 of file CameraModelUtil.cpp.

◆ KannalaBrandtSolverIterations

const auto KannalaBrandtSolverIterations = 32U
static

◆ SubgroupSize

const auto SubgroupSize = 32U
static

Definition at line 32 of file CameraModelUtil.cpp.

Referenced by DispatchDistortion(), ToPerspective(), and ToPerspective().

◆ WorkPerInvocation

const auto WorkPerInvocation = static_cast<uint32>(64U / sizeof(FVector4f))
static

Definition at line 33 of file CameraModelUtil.cpp.

Referenced by ToPerspective(), and ToPerspective().