Class HDAdditionalCameraData | High Definition RP | 7.1.8
docs.unity3d.com
    Show / Hide Table of Contents

    Class HDAdditionalCameraData

    Inheritance
    Object
    HDAdditionalCameraData
    Namespace: UnityEngine.Rendering.HighDefinition
    Syntax
    public class HDAdditionalCameraData : MonoBehaviour, IFrameSettingsHistoryContainer, IDebugData, IVersionable<HDAdditionalCameraData.Version>

    Fields

    allowDynamicResolution

    Declaration
    public bool allowDynamicResolution
    Field Value
    Type Description
    Boolean

    antialiasing

    Declaration
    public HDAdditionalCameraData.AntialiasingMode antialiasing
    Field Value
    Type Description
    HDAdditionalCameraData.AntialiasingMode

    backgroundColorHDR

    Declaration
    public Color backgroundColorHDR
    Field Value
    Type Description
    Color

    clearColorMode

    Declaration
    public HDAdditionalCameraData.ClearColorMode clearColorMode
    Field Value
    Type Description
    HDAdditionalCameraData.ClearColorMode

    clearDepth

    Declaration
    public bool clearDepth
    Field Value
    Type Description
    Boolean

    customRenderingSettings

    Declaration
    public bool customRenderingSettings
    Field Value
    Type Description
    Boolean

    defaultFrameSettings

    Declaration
    public FrameSettingsRenderType defaultFrameSettings
    Field Value
    Type Description
    FrameSettingsRenderType

    dithering

    Declaration
    public bool dithering
    Field Value
    Type Description
    Boolean

    flipYMode

    Declaration
    public HDAdditionalCameraData.FlipYMode flipYMode
    Field Value
    Type Description
    HDAdditionalCameraData.FlipYMode

    fullscreenPassthrough

    Declaration
    public bool fullscreenPassthrough
    Field Value
    Type Description
    Boolean

    hasPersistentHistory

    Enable to retain history buffers even if the camera is disabled.

    Declaration
    public bool hasPersistentHistory
    Field Value
    Type Description
    Boolean

    invertFaceCulling

    Declaration
    public bool invertFaceCulling
    Field Value
    Type Description
    Boolean

    nonObliqueProjectionGetter

    Declaration
    public HDAdditionalCameraData.NonObliqueProjectionGetter nonObliqueProjectionGetter
    Field Value
    Type Description
    HDAdditionalCameraData.NonObliqueProjectionGetter

    physicalParameters

    Declaration
    public HDPhysicalCamera physicalParameters
    Field Value
    Type Description
    HDPhysicalCamera

    probeLayerMask

    Declaration
    public LayerMask probeLayerMask
    Field Value
    Type Description
    LayerMask

    renderingPathCustomFrameSettingsOverrideMask

    Declaration
    public FrameSettingsOverrideMask renderingPathCustomFrameSettingsOverrideMask
    Field Value
    Type Description
    FrameSettingsOverrideMask

    SMAAQuality

    Declaration
    public HDAdditionalCameraData.SMAAQualityLevel SMAAQuality
    Field Value
    Type Description
    HDAdditionalCameraData.SMAAQualityLevel

    stopNaNs

    Declaration
    public bool stopNaNs
    Field Value
    Type Description
    Boolean

    taaSharpenStrength

    Declaration
    public float taaSharpenStrength
    Field Value
    Type Description
    Single

    volumeAnchorOverride

    Declaration
    public Transform volumeAnchorOverride
    Field Value
    Type Description
    Transform

    volumeLayerMask

    Declaration
    public LayerMask volumeLayerMask
    Field Value
    Type Description
    LayerMask

    Properties

    aovRequests

    Use this property to get the aov requests.

    It is never null.

    Declaration
    public IEnumerable<AOVRequestData> aovRequests { get; }
    Property Value
    Type Description
    IEnumerable<AOVRequestData>

    hasCustomRender

    Declaration
    public bool hasCustomRender { get; }
    Property Value
    Type Description
    Boolean

    isDebugRegistred

    Declaration
    public bool isDebugRegistred { get; }
    Property Value
    Type Description
    Boolean

    isEditorCameraPreview

    Declaration
    public bool isEditorCameraPreview { get; set; }
    Property Value
    Type Description
    Boolean

    renderingPathCustomFrameSettings

    Declaration
    public FrameSettings renderingPathCustomFrameSettings { get; }
    Property Value
    Type Description
    FrameSettings

    Methods

    CopyTo(HDAdditionalCameraData)

    Declaration
    public void CopyTo(HDAdditionalCameraData data)
    Parameters
    Type Name Description
    HDAdditionalCameraData data

    ExecuteCustomRender(ScriptableRenderContext, HDCamera)

    Declaration
    public void ExecuteCustomRender(ScriptableRenderContext renderContext, HDCamera hdCamera)
    Parameters
    Type Name Description
    ScriptableRenderContext renderContext
    HDCamera hdCamera

    GetGraphicsBuffer(HDAdditionalCameraData.BufferAccessType)

    Declaration
    public RTHandle GetGraphicsBuffer(HDAdditionalCameraData.BufferAccessType type)
    Parameters
    Type Name Description
    HDAdditionalCameraData.BufferAccessType type
    Returns
    Type Description
    RTHandle

    GetNonObliqueProjection(Camera)

    Declaration
    public Matrix4x4 GetNonObliqueProjection(Camera camera)
    Parameters
    Type Name Description
    Camera camera
    Returns
    Type Description
    Matrix4x4

    InitDefaultHDAdditionalCameraData(HDAdditionalCameraData)

    Declaration
    public static void InitDefaultHDAdditionalCameraData(HDAdditionalCameraData cameraData)
    Parameters
    Type Name Description
    HDAdditionalCameraData cameraData

    SetAOVRequests(AOVRequestDataCollection)

    Set AOV requests to use.

    Declaration
    public void SetAOVRequests(AOVRequestDataCollection aovRequests)
    Parameters
    Type Name Description
    AOVRequestDataCollection aovRequests

    Describes the requests to execute.

    Examples
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.Rendering;
    using UnityEngine.Rendering.HighDefinition;
    using UnityEngine.Rendering.HighDefinition.Attributes;
    
    [ExecuteAlways]
    [RequireComponent(typeof(Camera))]
    [RequireComponent(typeof(HDAdditionalCameraData))]
    public class SetupAOVCallbacks : MonoBehaviour
    {
        private static RTHandle m_ColorRT;
    
        [SerializeField] private Texture m_Target;
        [SerializeField] private DebugFullScreen m_DebugFullScreen;
        [SerializeField] private DebugLightFilterMode m_DebugLightFilter;
        [SerializeField] private MaterialSharedProperty m_MaterialSharedProperty;
        [SerializeField] private LightingProperty m_LightingProperty;
        [SerializeField] private AOVBuffers m_BuffersToCopy;
        [SerializeField] private List<GameObject> m_IncludedLights;
    
    
        void OnEnable()
        {
            var aovRequest = new AOVRequest(AOVRequest.NewDefault())
                .SetLightFilter(m_DebugLightFilter);
            if (m_DebugFullScreen != DebugFullScreen.None)
                aovRequest = aovRequest.SetFullscreenOutput(m_DebugFullScreen);
            if (m_MaterialSharedProperty != MaterialSharedProperty.None)
                aovRequest = aovRequest.SetFullscreenOutput(m_MaterialSharedProperty);
            if (m_LightingProperty != LightingProperty.None)
                aovRequest = aovRequest.SetFullscreenOutput(m_LightingProperty);
    
            var add = GetComponent<HDAdditionalCameraData>();
            add.SetAOVRequests(
                new AOVRequestBuilder()
                    .Add(
                        aovRequest,
                        bufferId => m_ColorRT ?? (m_ColorRT = RTHandles.Alloc(512, 512)),
                        m_IncludedLights.Count > 0 ? m_IncludedLights : null,
                        new []{ m_BuffersToCopy },
                        (cmd, textures, properties) =>
                        {
                            if (m_Target != null)
                                cmd.Blit(textures[0], m_Target);
                        })
                    .Build()
            );
        }
    
        private void OnGUI()
        {
            GUI.DrawTexture(new Rect(10, 10, 512, 256), m_Target);
        }
    
        void OnDisable()
        {
            var add = GetComponent<HDAdditionalCameraData>();
            add.SetAOVRequests(null);
        }
    
        void OnValidate()
        {
            OnDisable();
            OnEnable();
        }
    }

    Example use case:

    • Export Normals: use MaterialSharedProperty.Normals and AOVBuffers.Color
    • Export Color before post processing: use AOVBuffers.Color
    • Export Color after post processing: use AOVBuffers.Output
    • Export Depth stencil: use AOVBuffers.DepthStencil
    • Export AO: use MaterialSharedProperty.AmbientOcclusion and AOVBuffers.Color

    Events

    customRender

    Declaration
    public event Action<ScriptableRenderContext, HDCamera> customRender
    Event Type
    Type Description
    Action<ScriptableRenderContext, HDCamera>

    requestGraphicsBuffer

    Declaration
    public event HDAdditionalCameraData.RequestAccessDelegate requestGraphicsBuffer
    Event Type
    Type Description
    HDAdditionalCameraData.RequestAccessDelegate

    Explicit Interface Implementations

    IVersionable<HDAdditionalCameraData.Version>.version

    Declaration
    HDAdditionalCameraData.Version IVersionable<HDAdditionalCameraData.Version>.version { get; set; }
    Returns
    Type Description
    HDAdditionalCameraData.Version
    Implements
    IVersionable<TVersion>.version
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023