Class ARCameraBackground
Add this component to a Camera
to copy the color camera's texture onto the background.
If you are using the Universal Render Pipeline (version 7.0.0 or later), you must also add the ARBackgroundRendererFeature to the list of render features for the scriptable renderer.
Inherited Members
Namespace: UnityEngine.XR.ARFoundation
Syntax
[DisallowMultipleComponent]
[RequireComponent(typeof(Camera))]
[RequireComponent(typeof(ARCameraManager))]
public class ARCameraBackground : MonoBehaviour
Remarks
To add the ARBackgroundRendererFeature to the list of render features for the scriptable renderer:
- In Project Settings > Graphics, select the render pipeline asset
(
UniversalRenderPipelineAsset
) that is in the Scriptable Render Pipeline Settings field. - In the render pipeline asset's Inspector window, make sure that the Render Type is set to Custom.
- In render pipeline asset's Inspector window, select the Render Type > Data
asset which would be of type
ForwardRendererData
. - In forward renderer data's Inspector window, ensure the Render Features list contains a ARBackgroundRendererFeature.
To customize background rendering with the legacy render pipeline, you can override the
legacyCameraEvents property and the
ConfigureLegacyCommandBuffer(CommandBuffer) method to modify the given
CommandBuffer
with rendering commands and to inject the given CommandBuffer
into the Camera's
rendering.
To customize background rendering with a scriptable render pipeline, create a
ScriptableRendererFeature
with the background rendering commands, and insert the
ScriptableRendererFeature
into the list of render features for the scriptable renderer.
Fields
OnCameraRenderingModeChanged
A delegate for capturing when the currentRenderingMode has changed. Use to change make any changes to the parameters of the ARCameraBackground (IE. changing custom materials out) before configuring the command buffer for background rendering.
Declaration
public static Action<XRCameraBackgroundRenderingMode> OnCameraRenderingModeChanged
Field Value
Type | Description |
---|---|
Action<XRCameraBackgroundRenderingMode> |
Properties
backgroundRenderingEnabled
Whether background rendering is enabled.
Declaration
public bool backgroundRenderingEnabled { get; }
Property Value
Type | Description |
---|---|
Boolean |
|
camera
The camera to which the projection matrix is set on each frame event.
Declaration
protected Camera camera { get; }
Property Value
Type | Description |
---|---|
Camera | The camera to which the projection matrix is set on each frame event. |
cameraManager
The camera manager from which frame information is pulled.
Declaration
protected ARCameraManager cameraManager { get; }
Property Value
Type | Description |
---|---|
ARCameraManager | The camera manager from which frame information is pulled. |
currentRenderingMode
The current (xref: UnityEngine.XR.ARSubsystems.XRCameraBackgroundRenderingMode). Determines which render order to use.
Declaration
public XRCameraBackgroundRenderingMode currentRenderingMode { get; }
Property Value
Type | Description |
---|---|
XRCameraBackgroundRenderingMode |
customMaterial
A custom material for rendering the background.
Declaration
public Material customMaterial { get; set; }
Property Value
Type | Description |
---|---|
Material | A custom material for rendering the background. |
legacyCameraEvents
The list of CameraEvents to add to the CommandBuffer. By default, it will select either UnityEngine.XR.ARFoundation.ARCameraBackground.s_DefaultBeforeOpaqueCameraEvents or UnityEngine.XR.ARFoundation.ARCameraBackground.s_DefaultAfterOpaqueCameraEvents depending on the value of currentRenderingMode.
In the case where Before Opaques rendering has been selected it will return:
BeforeForwardOpaque and BeforeGBuffer}.
In the case where After Opaques rendering has been selected it will return:
AfterForwardOpaque and AfterGBuffer}.
Override to use different camera events.
Declaration
protected virtual IEnumerable<CameraEvent> legacyCameraEvents { get; }
Property Value
Type | Description |
---|---|
IEnumerable<CameraEvent> |
material
The current Material
used for background rendering.
Declaration
public Material material { get; }
Property Value
Type | Description |
---|---|
Material |
occlusionManager
The occlusion manager, which might not exist, from which occlusion information is pulled.
Declaration
protected AROcclusionManager occlusionManager { get; }
Property Value
Type | Description |
---|---|
AROcclusionManager |
shouldInvertCulling
Whether culling should be inverted. Used during command buffer configuration, see CommandBuffer.SetInvertCulling.
Declaration
protected bool shouldInvertCulling { get; }
Property Value
Type | Description |
---|---|
Boolean |
See Also
useCustomMaterial
Whether to use the custom material for rendering the background.
Declaration
public bool useCustomMaterial { get; set; }
Property Value
Type | Description |
---|---|
Boolean |
|
Methods
ConfigureLegacyCommandBuffer(CommandBuffer)
Configures the commandBuffer
by first clearing it,
and then adding necessary render commands.
Declaration
protected virtual void ConfigureLegacyCommandBuffer(CommandBuffer commandBuffer)
Parameters
Type | Name | Description |
---|---|---|
CommandBuffer | commandBuffer | The command buffer to configure. |