Class XRPass
XRPass holds the render target information and a list of XRView. XRView contains the parameters required to render (projection and view matrices, viewport, etc) When a pass has 2 views or more, single-pass will be active if the platform supports it. To avoid allocating every frame, XRView is a struct and XRPass is pooled.
Inherited Members
Namespace: UnityEngine.Experimental.Rendering
Assembly: Unity.RenderPipelines.Core.Runtime.dll
Syntax
public class XRPass
Constructors
Name | Description |
---|---|
XRPass() | Parameterless constructor. Note: in order to avoid GC, the render pipeline should use XRPass.Create instead of this method. |
Properties
Name | Description |
---|---|
copyDepth | If true, the render pipeline is expected to output a valid depth buffer to the renderTarget. |
cullingParams | Parameters used for culling. |
cullingPassId | Index used for culling. It can be shared between multiple passes. |
enabled | Returns true if the pass contains at least one view. |
foveatedRenderingInfo | Native pointer from the XR plugin to be consumed by ConfigureFoveatedRendering. |
hasValidOcclusionMesh | Returns true if the pass was setup with expected mesh and material. |
hdrDisplayOutputColorGamut | |
hdrDisplayOutputInformation | |
isHDRDisplayOutputActive | |
multipassId | Index of the pass inside the frame. |
renderTarget | Destination render target. |
renderTargetDesc | Destination render target descriptor. |
singlePassEnabled | If true, the render pipeline is expected to use single-pass techniques to save CPU time. |
supportsFoveatedRendering | Returns true if the pass can use foveated rendering commands. |
viewCount | Returns the number of views inside this pass. |
Methods
Name | Description |
---|---|
ApplyXRViewCenterOffset(Vector2) | Take a point that is center-relative (0.5, 0.5) and modify it to be placed relative to the view's center instead, respecting the asymmetric FOV (if it is used) |
CreateDefault(XRPassCreateInfo) | Default allocator method for XRPass. |
GetOcclusionMesh(int) | Returns the occlusion mesh for a given view. |
GetProjMatrix(int) | Returns the projection matrix for a given view. |
GetTextureArraySlice(int) | Returns the destination slice index (for texture array) for a given view. |
GetViewMatrix(int) | Returns the view matrix for a given view. |
GetViewport(int) | Returns the viewport for a given view. |
InitBase(XRPassCreateInfo) | Initialize the base class fields. |
Release() | Default release method. Can be overridden by render pipelines. |
RenderOcclusionMesh(RasterCommandBuffer) | |
RenderOcclusionMesh(CommandBuffer) | Generate commands to render the occlusion mesh for this pass. In single-pass mode : the meshes for all views are combined into one mesh, where the corresponding view index is encoded into each vertex. The keyword "XR_OCCLUSION_MESH_COMBINED" is also enabled when rendering the combined mesh. |
StartSinglePass(RasterCommandBuffer) | |
StartSinglePass(CommandBuffer) | Queue up render commands to enable single-pass techniques. Note: depending on the platform and settings, either single-pass instancing or the multiview extension will be used. |
StopSinglePass(RasterCommandBuffer) | Queue up render commands to disable single-pass techniques. |
StopSinglePass(CommandBuffer) | Queue up render commands to disable single-pass techniques. |