Class HDAdditionalCameraData
Inheritance
HDAdditionalCameraData
Syntax
public class HDAdditionalCameraData : MonoBehaviour, IFrameSettingsHistoryContainer, IDebugData, IVersionable<HDAdditionalCameraData.Version>
Fields
allowDynamicResolution
Declaration
public bool allowDynamicResolution
Field Value
antialiasing
Declaration
public HDAdditionalCameraData.AntialiasingMode antialiasing
Field Value
backgroundColorHDR
Declaration
public Color backgroundColorHDR
Field Value
clearColorMode
Declaration
public HDAdditionalCameraData.ClearColorMode clearColorMode
Field Value
clearDepth
Declaration
Field Value
customRenderingSettings
Declaration
public bool customRenderingSettings
Field Value
defaultFrameSettings
Declaration
public FrameSettingsRenderType defaultFrameSettings
Field Value
dithering
Declaration
Field Value
flipYMode
Declaration
public HDAdditionalCameraData.FlipYMode flipYMode
Field Value
fullscreenPassthrough
Declaration
public bool fullscreenPassthrough
Field Value
hasPersistentHistory
Enable to retain history buffers even if the camera is disabled.
Declaration
public bool hasPersistentHistory
Field Value
invertFaceCulling
Declaration
public bool invertFaceCulling
Field Value
nonObliqueProjectionGetter
Declaration
public HDAdditionalCameraData.NonObliqueProjectionGetter nonObliqueProjectionGetter
Field Value
physicalParameters
Declaration
public HDPhysicalCamera physicalParameters
Field Value
probeLayerMask
Declaration
public LayerMask probeLayerMask
Field Value
Type |
Description |
LayerMask |
|
renderingPathCustomFrameSettingsOverrideMask
Declaration
public FrameSettingsOverrideMask renderingPathCustomFrameSettingsOverrideMask
Field Value
SMAAQuality
Declaration
public HDAdditionalCameraData.SMAAQualityLevel SMAAQuality
Field Value
stopNaNs
Declaration
Field Value
taaSharpenStrength
Declaration
public float taaSharpenStrength
Field Value
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
hasCustomRender
Declaration
public bool hasCustomRender { get; }
Property Value
isDebugRegistred
Declaration
public bool isDebugRegistred { get; }
Property Value
isEditorCameraPreview
Declaration
public bool isEditorCameraPreview { get; set; }
Property Value
renderingPathCustomFrameSettings
Declaration
public FrameSettings renderingPathCustomFrameSettings { get; }
Property Value
Methods
CopyTo(HDAdditionalCameraData)
Declaration
public void CopyTo(HDAdditionalCameraData data)
Parameters
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
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
SetAOVRequests(AOVRequestDataCollection)
Declaration
public void SetAOVRequests(AOVRequestDataCollection aovRequests)
Parameters
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
requestGraphicsBuffer
Declaration
public event HDAdditionalCameraData.RequestAccessDelegate requestGraphicsBuffer
Event Type
Explicit Interface Implementations
IVersionable<HDAdditionalCameraData.Version>.version
Declaration
HDAdditionalCameraData.Version IVersionable<HDAdditionalCameraData.Version>.version { get; set; }
Returns
Implements