API reference
API reference
Select your platform
No SDKs available
No versions available

UOculusXRPassthroughLayerBase Class

Extends UStereoLayerShape
Represents a layer used for passthrough.
The Passthrough API enables you to show the user's real environment in your mixed reality experiences. It offers several options to customize the appearance of passthrough, such as adjusting opacity, highlight salient edges in the image, or control the color reproduction. For passthrough to be visible, it must be enabled in the Meta XR Plugin via the UOculusXRHMDRuntimeSettings::bInsightPassthroughEnabled property.

Protected Fields

ColorArray : TArray< FLinearColor >
Signature
TArray<FLinearColor> UOculusXRPassthroughLayerBase::ColorArray
NeutralColorArray : TArray< FLinearColor >
Signature
TArray<FLinearColor> UOculusXRPassthroughLayerBase::NeutralColorArray

Fields

bEnableColorMap : bool
Enables or disables the color mapping for this layer
Signature
bool UOculusXRPassthroughLayerBase::bEnableColorMap
bEnableEdgeColor : bool
Enables or disables edge rendering. Use this flag to toggle the edge rendering but retain the previously selected color (including alpha) in the UI when it is disabled.
Signature
bool UOculusXRPassthroughLayerBase::bEnableEdgeColor
Brightness : float
Contains brightness setting for color mapping. Ranges from -1 (minimum) to 1 (maximum). This property only has an effect if ColorMapType is set to ColorMapType_ColorAdjustment, ColorMapType_Grayscale or ColorMapType_GrayscaleToColor.
Signature
float UOculusXRPassthroughLayerBase::Brightness
bUseColorMapCurve : bool
Controls whether to use a color map curve or a gradient. Use it together with ColorMapCurve property, or set it with EnableColorMapCurve().
Signature
bool UOculusXRPassthroughLayerBase::bUseColorMapCurve
ColorLUTSource : UOculusXRPassthroughColorLut *
Color LUT properties. If only ColorLUTSource is provided it will be blended with passthrough layer using following formula: Result = ColorLUTSource * LutWeight + Passthrough * ( 1 - LutWeight )
Signature
UOculusXRPassthroughColorLut* UOculusXRPassthroughLayerBase::ColorLUTSource
ColorLUTTarget : UOculusXRPassthroughColorLut *
Color LUT properties. If both ColorLUTSource and ColorLUTTarget are provided they will be blended using following formula: Result = ColorLUTsSource * ( 1 - LutWeight ) + ColorLUTsTarget * LutWeight
Signature
UOculusXRPassthroughColorLut* UOculusXRPassthroughLayerBase::ColorLUTTarget
ColorMapCurve : UCurveLinearColor *
Contains color mapping gradient which is used to convert grayscale passthrough to color. This property only has an effect if ColorMapType is set to ColorMapType_GrayscaleToColor.
Signature
UCurveLinearColor* UOculusXRPassthroughLayerBase::ColorMapCurve
ColorMapType : TEnumAsByte< enum EOculusXRColorMapType >
Represents the color mapping technique applied to this layer. Prefer setting it with SetColorMapType() method
Signature
TEnumAsByte<enum EOculusXRColorMapType> UOculusXRPassthroughLayerBase::ColorMapType
ColorOffset : FLinearColor
Contains the color value that will be added to the pixel color values during compositing. Default is black = (0,0,0,0). This property only has an effect if ColorMapType is set to ColorMapType_GrayscaleToColor.
Signature
FLinearColor UOculusXRPassthroughLayerBase::ColorOffset
ColorScale : FLinearColor
Contains the color value that will be multiplied to the pixel color values during compositing. Default is white = (1,1,1,1). This property only has an effect if ColorMapType is set to ColorMapType_GrayscaleToColor.
Signature
FLinearColor UOculusXRPassthroughLayerBase::ColorScale
Contrast : float
Contains contrast setting for color mapping. Ranges from -1 (minimum) to 1 (maximum). This property only has an effect if ColorMapType is set to ColorMapType_ColorAdjustment, ColorMapType_Grayscale or ColorMapType_GrayscaleToColor.
Signature
float UOculusXRPassthroughLayerBase::Contrast
EdgeColor : FLinearColor
Color for the edge rendering.
Signature
FLinearColor UOculusXRPassthroughLayerBase::EdgeColor
LayerOrder : TEnumAsByte< enum EOculusXRPassthroughLayerOrder >
Specifies whether passthrough should appear on top of (when LayerOrder is PassthroughLayerOrder_Overlay) or beneath (when LayerOrder is PassthroughLayerOrder_Underlay) the virtual content. The default is Underlay. Overlay is deprecated.
Signature
TEnumAsByte<enum EOculusXRPassthroughLayerOrder> UOculusXRPassthroughLayerBase::LayerOrder
LutWeight : float
Controls how ColorMapType_ColorLut color mapping technique is applied to passthrough. If the value is 0, then the appearance of Passthrough is unchanged. If it is 1, the colors are fully taken from the LUT. Values between 0 and 1 lead to a linear interpolation between the original color and the LUT color. If two LUTs are provided LutWeight is used to blend them. This value can be animated to create smooth transitions.
Signature
float UOculusXRPassthroughLayerBase::LutWeight
Posterize : float
Contains posterize setting for grayscale and grayscale to color mappings. Ranges from 0 to 1, where 0 = no posterization (no effect), 1 = reduce to two colors.
Signature
float UOculusXRPassthroughLayerBase::Posterize
Saturation : float
Contains saturation for color adjustment mapping. Ranges from -1 (minimum) to 1 (maximum).
Signature
float UOculusXRPassthroughLayerBase::Saturation
TextureOpacityFactor : float
Defines the passthrough opacity. It can be used to blend between passthrough and VR when LayerOrder is set to Overlay, or to dim passthrough when LayerOrder is set to Underlay.
Signature
float UOculusXRPassthroughLayerBase::TextureOpacityFactor

Protected Member Functions

GenerateColorArray ( bInUseColorMapCurve , InColorMapCurve )
Signature
TArray< FLinearColor > UOculusXRPassthroughLayerBase::GenerateColorArray(bool bInUseColorMapCurve, const UCurveLinearColor *InColorMapCurve)
Parameters
bInUseColorMapCurve: bool
InColorMapCurve: const UCurveLinearColor *
Returns
TArray< FLinearColor >
GenerateColorArrayFromColorCurve ( InColorMapCurve )
Signature
TArray< FLinearColor > UOculusXRPassthroughLayerBase::GenerateColorArrayFromColorCurve(const UCurveLinearColor *InColorMapCurve) const
Parameters
InColorMapCurve: const UCurveLinearColor *
Returns
TArray< FLinearColor >
GenerateColorLutDescription ( InLutWeight , InLutSource , InLutTarget )
Signature
FColorLutDesc UOculusXRPassthroughLayerBase::GenerateColorLutDescription(float InLutWeight, UOculusXRPassthroughColorLut *InLutSource, UOculusXRPassthroughColorLut *InLutTarget)
Parameters
InLutWeight: float
GetColorArray ( bInUseColorMapCurve , InColorMapCurve )
Signature
TArray< FLinearColor > UOculusXRPassthroughLayerBase::GetColorArray(bool bInUseColorMapCurve, const UCurveLinearColor *InColorMapCurve)
Parameters
bInUseColorMapCurve: bool
InColorMapCurve: const UCurveLinearColor *
Returns
TArray< FLinearColor >
GetOrGenerateNeutralColorArray ()
Signature
TArray< FLinearColor > UOculusXRPassthroughLayerBase::GetOrGenerateNeutralColorArray()
Returns
TArray< FLinearColor >
MarkStereoLayerDirty ()
Signature
void UOculusXRPassthroughLayerBase::MarkStereoLayerDirty()
Returns
void

Member Functions

BeginDestroy ()
Signature
virtual void UOculusXRPassthroughLayerBase::BeginDestroy()
Returns
void
ClearColorMap ()
Clears any color maps previously applied to this layer and sets ColorMapType to ColorMapType_None value
Signature
void UOculusXRPassthroughLayerBase::ClearColorMap()
Returns
void
ClearLUTsReferences ()
Signature
void UOculusXRPassthroughLayerBase::ClearLUTsReferences()
Returns
void
EnableColorMap ( bInEnableColorMap )
This method allows to enable or disable the color mapping technique which is configured for this passthrough layer.
Signature
void UOculusXRPassthroughLayerBase::EnableColorMap(bool bInEnableColorMap)
Parameters
bInEnableColorMap: bool  Specify true to enable the color mapping, and false to disable it.
Returns
void
EnableColorMapCurve ( bInEnableColorMapCurve )
Enable or disables the color map curve used to convert grayscale passthrough to color. This mehtod only has an effect when the color mapping type is set to ColorMapType_GrayscaleToColor. See bUseColorMapCurve for more details.
Signature
void UOculusXRPassthroughLayerBase::EnableColorMapCurve(bool bInEnableColorMapCurve)
Parameters
bInEnableColorMapCurve: bool  Specify true to apply the color map curve.
Returns
void
EnableEdgeColor ( bInEnableEdgeColor )
This method allows to enable or disable the edge rendering in this passthrough layer. See bEnableEdgeColor for more details.
Signature
void UOculusXRPassthroughLayerBase::EnableEdgeColor(bool bInEnableEdgeColor)
Parameters
bInEnableEdgeColor: bool  Specify true to enable edge rendering.
Returns
void
RemoveColorLut ()
Removes color grading if any is active
Signature
void UOculusXRPassthroughLayerBase::RemoveColorLut()
Returns
void
SetBrightnessContrastSaturation ( InContrast , InBrightness , InSaturation )
This method allows to configure brightness and contrast adjustment for Passthrough images. It fails if ColorMapType is not set to ColorMapType_ColorAdjustment.
Signature
void UOculusXRPassthroughLayerBase::SetBrightnessContrastSaturation(float InContrast=0, float InBrightness=0, float InSaturation=0)
Parameters
InContrast: float  Contast of passthrough. Valid range: [-1, 1]. A value of 0 means that contrast is left unchanged.
InBrightness: float  Brightness of passthrough. Valid range: [-1, 1]. A value of 0 means that brightness is left unchanged.
InSaturation: float  Saturation of passthrough. Valid range: [-1, 1]. A value of 0 means that saturation is left unchanged.
Returns
void
SetColorArray ( InColorArray )
Set color map array directly instead through a color curve. This method only has an affect when ColorMapType is set to ColorMapType_GrayscaleToColor
Signature
void UOculusXRPassthroughLayerBase::SetColorArray(const TArray< FLinearColor > &InColorArray)
Parameters
InColorArray: const TArray< FLinearColor > &
Returns
void
SetColorLUTSource ( InColorLUTSource )
Sets Color LUT source. If ColorMapType is Color LUT, then source will be blended with passthrough using folowing formula: Result = ColorLUTSource * LutWeight + Passthrough * (1 - LutWeight ) If ColorMapType is Interpolated Color LUT, then source will be blended with color LUT target using folowing formula: Result = ColorLUTSource * ( 1 - LutWeight ) + ColorLUTTarget * LutWeight
Signature
void UOculusXRPassthroughLayerBase::SetColorLUTSource(class UOculusXRPassthroughColorLut *InColorLUTSource)
Parameters
InColorLUTSource: class UOculusXRPassthroughColorLut *
Returns
void
SetColorLUTTarget ( InColorLUTTarget )
Sets Color LUT target. If ColorMapType is Interpolated Color LUT, then target will be blended with passthrough using folowing formula: Result = ColorLUTSource * ( 1 - LutWeight ) + ColorLUTTarget * LutWeight Note: If ColorLUTSource is not specified, Color LUT will be not be applied to the Passthrough layer.
Signature
void UOculusXRPassthroughLayerBase::SetColorLUTTarget(class UOculusXRPassthroughColorLut *InColorLUTTarget)
Parameters
InColorLUTTarget: class UOculusXRPassthroughColorLut *
Returns
void
SetColorLUTWeight ( InWeight )
Sets the color LUT weight. See LutWeight for more details
Signature
void UOculusXRPassthroughLayerBase::SetColorLUTWeight(float InWeight=1.0f)
Parameters
InWeight: float
Returns
void
SetColorMapControls ( InContrast , InBrightness , InPosterize )
Sets the color map controls for grayscale and grayscale to rgb color mappings. The method fails if ColorMapType is not set to ColorMapType_Grayscale or ColorMapType_GrayscaleToColor.
Signature
void UOculusXRPassthroughLayerBase::SetColorMapControls(float InContrast=0, float InBrightness=0, float InPosterize=0)
Parameters
InContrast: float  Contast of passthrough. Valid range: [-1, 1]. A value of 0 means that contrast is left unchanged.
InBrightness: float  Brightness of passthrough. Valid range: [-1, 1]. A value of 0 means that brightness is left unchanged.
InPosterize: float  Posterize of passthrough. Ranges from 0 to 1, where 0 = no posterization (no effect), 1 = reduce to two colors.
Returns
void
SetColorMapCurve ( InColorMapCurve )
Sets the color curve that will be added to the color map in grayscale modes --> will be converted into a gradient
Signature
void UOculusXRPassthroughLayerBase::SetColorMapCurve(UCurveLinearColor *InColorMapCurve)
Parameters
InColorMapCurve: UCurveLinearColor *
Returns
void
SetColorMapType ( InColorMapType )
Sets the color mapping technique applied to the passthrough texture if bEnableColorMap is set to true
Signature
void UOculusXRPassthroughLayerBase::SetColorMapType(EOculusXRColorMapType InColorMapType)
Parameters
InColorMapType: EOculusXRColorMapType
Returns
void
SetColorScaleAndOffset ( InColorScale , InColorOffset )
This method allows to configure the color scale and offset values applied to passthrough pixels. The method only has an effect if ColorMapType is set to ColorMapType_GrayscaleToColor.
Signature
void UOculusXRPassthroughLayerBase::SetColorScaleAndOffset(FLinearColor InColorScale=FLinearColor::White, FLinearColor InColorOffset=FLinearColor::Black)
Parameters
InColorScale: FLinearColor  Color value that will be multiplied to the pixel color values during compositing. Default is {1,1,1,1}
InColorOffset: FLinearColor  Color value that will be added to the pixel color values during compositing. Default is {0,0,0,0}.
Returns
void
SetEdgeRenderingColor ( InEdgeColor )
This method controls the color of the edges when edge rendering is enabled. See EdgeColor for more details.
Signature
void UOculusXRPassthroughLayerBase::SetEdgeRenderingColor(FLinearColor InEdgeColor)
Parameters
InEdgeColor: FLinearColor  Edge rendering color.
Returns
void
SetLayerPlacement ( InLayerOrder )
Specifies whether passthrough should appear on top of (PassthroughLayerOrder_Overlay) or beneath (PassthroughLayerOrder_Underlay) the virtual content. The default is Underlay. Overlay is deprecated. See LayerOrder property for more details
Signature
void UOculusXRPassthroughLayerBase::SetLayerPlacement(EOculusXRPassthroughLayerOrder InLayerOrder)
Parameters
Returns
void
SetTextureOpacity ( InOpacity )
This method changes the passthrough texture opacity. See TextureOpacityFactor for more details.
Signature
void UOculusXRPassthroughLayerBase::SetTextureOpacity(float InOpacity)
Parameters
InOpacity: float  New value of the passthrough texture opacity.
Returns
void