diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4096_DRS-TAAU-Hardware.unity b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4096_DRS-TAAU-Hardware.unity
new file mode 100644
index 00000000000..4033a0c7578
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4096_DRS-TAAU-Hardware.unity
@@ -0,0 +1,1532 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &54497423
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 54497427}
+ - component: {fileID: 54497426}
+ - component: {fileID: 54497425}
+ - component: {fileID: 54497424}
+ m_Layer: 0
+ m_Name: Sphere (7)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &54497424
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 54497423}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &54497425
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 54497423}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 0f535213bbe21e64b9ed01036e9425c6, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &54497426
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 54497423}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &54497427
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 54497423}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.545, y: 0, z: -8.685}
+ m_LocalScale: {x: 0.70917, y: 0.70917, z: 0.70917}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &223038177
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1132393308280272, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_Name
+ value: HDRP_Test_Camera
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -10
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 20109210616973140, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: m_AllowDynamicResolution
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: m_Version
+ value: 8
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: TAAQuality
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: antialiasing
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: clearColorMode
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: taaAntiFlicker
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: taaSharpenStrength
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: taaHistorySharpening
+ value: 0.377
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: taaAntiHistoryRinging
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: allowDynamicResolution
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: customRenderingSettings
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: allowDeepLearningSuperSampling
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: m_RenderingPathCustomFrameSettings.bitDatas.data1
+ value: 70005819440989
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: renderingPathCustomFrameSettingsOverrideMask.mask.data1
+ value: 655360
+ objectReference: {fileID: 0}
+ - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: waitFrames
+ value: 64
+ objectReference: {fileID: 0}
+ - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: renderPipelineAsset
+ value:
+ objectReference: {fileID: 11400000, guid: 595b7210a76055442ae0f4f98f9f2633,
+ type: 2}
+ - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: ImageComparisonSettings.TargetWidth
+ value: 1920
+ objectReference: {fileID: 0}
+ - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: ImageComparisonSettings.TargetHeight
+ value: 1080
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+--- !u!1 &256746375
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 256746379}
+ - component: {fileID: 256746378}
+ - component: {fileID: 256746377}
+ - component: {fileID: 256746376}
+ m_Layer: 0
+ m_Name: Sphere (6)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &256746376
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 256746375}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &256746377
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 256746375}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 25fb8e0210182b74cb06398df1696a04, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &256746378
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 256746375}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &256746379
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 256746375}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.78, y: 0.26, z: -7.41}
+ m_LocalScale: {x: 0.20514722, y: 0.20514722, z: 0.20514722}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &503710626
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 503710630}
+ - component: {fileID: 503710629}
+ - component: {fileID: 503710628}
+ - component: {fileID: 503710627}
+ m_Layer: 0
+ m_Name: WE
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &503710627
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 503710626}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &503710628
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 503710626}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 0d23b508459f5b7498803b2e21416a05, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &503710629
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 503710626}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &503710630
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 503710626}
+ m_LocalRotation: {x: -0, y: -0.8556675, z: -0, w: 0.517526}
+ m_LocalPosition: {x: 0.826, y: 1.59, z: -5.35}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 11
+ m_LocalEulerAnglesHint: {x: 0, y: -117.667, z: 0}
+--- !u!1 &661411982
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 661411985}
+ - component: {fileID: 661411984}
+ - component: {fileID: 661411983}
+ m_Layer: 0
+ m_Name: Directional Light (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &661411983
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661411982}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Intensity: 0.9696518
+ m_EnableSpotReflector: 1
+ m_LuxAtDistance: 1
+ m_InnerSpotPercent: 0
+ m_SpotIESCutoffPercent: 100
+ m_LightDimmer: 1
+ m_VolumetricDimmer: 1
+ m_LightUnit: 2
+ m_FadeDistance: 10000
+ m_VolumetricFadeDistance: 10000
+ m_AffectDiffuse: 1
+ m_AffectSpecular: 1
+ m_NonLightmappedOnly: 0
+ m_ShapeWidth: 0.5
+ m_ShapeHeight: 0.5
+ m_AspectRatio: 1
+ m_ShapeRadius: 0.025
+ m_SoftnessScale: 1
+ m_UseCustomSpotLightShadowCone: 0
+ m_CustomSpotLightShadowCone: 30
+ m_MaxSmoothness: 0.99
+ m_ApplyRangeAttenuation: 1
+ m_DisplayAreaLightEmissiveMesh: 0
+ m_AreaLightCookie: {fileID: 0}
+ m_IESPoint: {fileID: 0}
+ m_IESSpot: {fileID: 0}
+ m_IncludeForRayTracing: 1
+ m_AreaLightShadowCone: 120
+ m_UseScreenSpaceShadows: 0
+ m_InteractsWithSky: 1
+ m_AngularDiameter: 0.5
+ m_FlareSize: 2
+ m_FlareTint: {r: 1, g: 1, b: 1, a: 1}
+ m_FlareFalloff: 4
+ m_SurfaceTexture: {fileID: 0}
+ m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1}
+ m_Distance: 1.5e+11
+ m_UseRayTracedShadows: 0
+ m_NumRayTracingSamples: 4
+ m_FilterTracedShadow: 1
+ m_FilterSizeTraced: 16
+ m_SunLightConeAngle: 0.5
+ m_LightShadowRadius: 0.5
+ m_SemiTransparentShadow: 0
+ m_ColorShadow: 1
+ m_DistanceBasedFiltering: 0
+ m_EvsmExponent: 15
+ m_EvsmLightLeakBias: 0
+ m_EvsmVarianceBias: 0.00001
+ m_EvsmBlurPasses: 0
+ m_LightlayersMask: 1
+ m_LinkShadowLayers: 1
+ m_ShadowNearPlane: 0.1
+ m_BlockerSampleCount: 24
+ m_FilterSampleCount: 16
+ m_MinFilterSize: 0.1
+ m_KernelSize: 5
+ m_LightAngle: 1
+ m_MaxDepthBias: 0.001
+ m_ShadowResolution:
+ m_Override: 512
+ m_UseOverride: 1
+ m_Level: 0
+ m_ShadowDimmer: 1
+ m_VolumetricShadowDimmer: 1
+ m_ShadowFadeDistance: 10000
+ m_UseContactShadow:
+ m_Override: 0
+ m_UseOverride: 1
+ m_Level: 0
+ m_RayTracedContactShadow: 0
+ m_ShadowTint: {r: 0, g: 0, b: 0, a: 1}
+ m_PenumbraTint: 0
+ m_NormalBias: 0.75
+ m_SlopeBias: 0.5
+ m_ShadowUpdateMode: 0
+ m_AlwaysDrawDynamicShadows: 0
+ m_UpdateShadowOnLightMovement: 0
+ m_CachedShadowTranslationThreshold: 0.01
+ m_CachedShadowAngularThreshold: 0.5
+ m_BarnDoorAngle: 90
+ m_BarnDoorLength: 0.05
+ m_preserveCachedShadow: 0
+ m_OnDemandShadowRenderOnPlacement: 1
+ m_ShadowCascadeRatios:
+ - 0.05
+ - 0.2
+ - 0.3
+ m_ShadowCascadeBorders:
+ - 0.2
+ - 0.2
+ - 0.2
+ - 0.2
+ m_ShadowAlgorithm: 0
+ m_ShadowVariant: 0
+ m_ShadowPrecision: 0
+ useOldInspector: 0
+ useVolumetric: 1
+ featuresFoldout: 1
+ m_AreaLightEmissiveMeshShadowCastingMode: 0
+ m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0
+ m_AreaLightEmissiveMeshLayer: -1
+ m_Version: 11
+ m_ObsoleteShadowResolutionTier: 1
+ m_ObsoleteUseShadowQualitySettings: 0
+ m_ObsoleteCustomShadowResolution: 512
+ m_ObsoleteContactShadows: 0
+ m_PointlightHDType: 0
+ m_SpotLightShape: 0
+ m_AreaLightShape: 0
+--- !u!108 &661411984
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661411982}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.9696518
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 2
+ m_AreaSize: {x: 0.5, y: 0.5}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 1
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &661411985
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661411982}
+ m_LocalRotation: {x: 0.13875811, y: 0.5250831, z: -0.42723507, w: 0.72284454}
+ m_LocalPosition: {x: 0.26, y: 2.95, z: -6.32}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 40.487, y: 57.373, z: -38.353}
+--- !u!1 &1145805900
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1145805903}
+ - component: {fileID: 1145805902}
+ - component: {fileID: 1145805901}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1145805901
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145805900}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Intensity: 0.9696518
+ m_EnableSpotReflector: 1
+ m_LuxAtDistance: 1
+ m_InnerSpotPercent: 0
+ m_SpotIESCutoffPercent: 100
+ m_LightDimmer: 1
+ m_VolumetricDimmer: 1
+ m_LightUnit: 2
+ m_FadeDistance: 10000
+ m_VolumetricFadeDistance: 10000
+ m_AffectDiffuse: 1
+ m_AffectSpecular: 1
+ m_NonLightmappedOnly: 0
+ m_ShapeWidth: 0.5
+ m_ShapeHeight: 0.5
+ m_AspectRatio: 1
+ m_ShapeRadius: 0.025
+ m_SoftnessScale: 1
+ m_UseCustomSpotLightShadowCone: 0
+ m_CustomSpotLightShadowCone: 30
+ m_MaxSmoothness: 0.99
+ m_ApplyRangeAttenuation: 1
+ m_DisplayAreaLightEmissiveMesh: 0
+ m_AreaLightCookie: {fileID: 0}
+ m_IESPoint: {fileID: 0}
+ m_IESSpot: {fileID: 0}
+ m_IncludeForRayTracing: 1
+ m_AreaLightShadowCone: 120
+ m_UseScreenSpaceShadows: 0
+ m_InteractsWithSky: 1
+ m_AngularDiameter: 0.5
+ m_FlareSize: 2
+ m_FlareTint: {r: 1, g: 1, b: 1, a: 1}
+ m_FlareFalloff: 4
+ m_SurfaceTexture: {fileID: 0}
+ m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1}
+ m_Distance: 1.5e+11
+ m_UseRayTracedShadows: 0
+ m_NumRayTracingSamples: 4
+ m_FilterTracedShadow: 1
+ m_FilterSizeTraced: 16
+ m_SunLightConeAngle: 0.5
+ m_LightShadowRadius: 0.5
+ m_SemiTransparentShadow: 0
+ m_ColorShadow: 1
+ m_DistanceBasedFiltering: 0
+ m_EvsmExponent: 15
+ m_EvsmLightLeakBias: 0
+ m_EvsmVarianceBias: 0.00001
+ m_EvsmBlurPasses: 0
+ m_LightlayersMask: 1
+ m_LinkShadowLayers: 1
+ m_ShadowNearPlane: 0.1
+ m_BlockerSampleCount: 24
+ m_FilterSampleCount: 16
+ m_MinFilterSize: 0.1
+ m_KernelSize: 5
+ m_LightAngle: 1
+ m_MaxDepthBias: 0.001
+ m_ShadowResolution:
+ m_Override: 512
+ m_UseOverride: 1
+ m_Level: 0
+ m_ShadowDimmer: 1
+ m_VolumetricShadowDimmer: 1
+ m_ShadowFadeDistance: 10000
+ m_UseContactShadow:
+ m_Override: 0
+ m_UseOverride: 1
+ m_Level: 0
+ m_RayTracedContactShadow: 0
+ m_ShadowTint: {r: 0, g: 0, b: 0, a: 1}
+ m_PenumbraTint: 0
+ m_NormalBias: 0.75
+ m_SlopeBias: 0.5
+ m_ShadowUpdateMode: 0
+ m_AlwaysDrawDynamicShadows: 0
+ m_UpdateShadowOnLightMovement: 0
+ m_CachedShadowTranslationThreshold: 0.01
+ m_CachedShadowAngularThreshold: 0.5
+ m_BarnDoorAngle: 90
+ m_BarnDoorLength: 0.05
+ m_preserveCachedShadow: 0
+ m_OnDemandShadowRenderOnPlacement: 1
+ m_ShadowCascadeRatios:
+ - 0.05
+ - 0.2
+ - 0.3
+ m_ShadowCascadeBorders:
+ - 0.2
+ - 0.2
+ - 0.2
+ - 0.2
+ m_ShadowAlgorithm: 0
+ m_ShadowVariant: 0
+ m_ShadowPrecision: 0
+ useOldInspector: 0
+ useVolumetric: 1
+ featuresFoldout: 1
+ m_AreaLightEmissiveMeshShadowCastingMode: 0
+ m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0
+ m_AreaLightEmissiveMeshLayer: -1
+ m_Version: 11
+ m_ObsoleteShadowResolutionTier: 1
+ m_ObsoleteUseShadowQualitySettings: 0
+ m_ObsoleteCustomShadowResolution: 512
+ m_ObsoleteContactShadows: 0
+ m_PointlightHDType: 0
+ m_SpotLightShape: 0
+ m_AreaLightShape: 0
+--- !u!108 &1145805902
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145805900}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.9696518
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 2
+ m_AreaSize: {x: 0.5, y: 0.5}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 1
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1145805903
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145805900}
+ m_LocalRotation: {x: 0.13875811, y: 0.5250831, z: -0.42723507, w: 0.72284454}
+ m_LocalPosition: {x: 0.26, y: 2.95, z: -6.32}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 40.487, y: 57.373, z: -38.353}
+--- !u!1 &1174766768
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1174766772}
+ - component: {fileID: 1174766771}
+ - component: {fileID: 1174766770}
+ - component: {fileID: 1174766769}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1174766769
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1174766768}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1174766770
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1174766768}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1174766771
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1174766768}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1174766772
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1174766768}
+ m_LocalRotation: {x: 0.03723274, y: 0.23044106, z: -0.23368219, w: 0.94387674}
+ m_LocalPosition: {x: 1.06, y: -0.5408558, z: -7.61}
+ m_LocalScale: {x: 0.08, y: 1.15, z: 0.14751203}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 10
+ m_LocalEulerAnglesHint: {x: 10.252, y: 25.112, z: -25.522}
+--- !u!1 &1261607508
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1261607512}
+ - component: {fileID: 1261607511}
+ - component: {fileID: 1261607510}
+ - component: {fileID: 1261607509}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1261607509
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261607508}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1261607510
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261607508}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1261607511
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261607508}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1261607512
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261607508}
+ m_LocalRotation: {x: 0.09152149, y: 0.21473974, z: 0.000000055850244, w: 0.9723737}
+ m_LocalPosition: {x: 1.06, y: -0.5408558, z: -7.61}
+ m_LocalScale: {x: 0.08, y: 1.15, z: 0.14751203}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 10.252, y: 25.112, z: 2.289}
+--- !u!1 &1356837729
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1356837733}
+ - component: {fileID: 1356837732}
+ - component: {fileID: 1356837731}
+ - component: {fileID: 1356837730}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1356837730
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1356837729}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1356837731
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1356837729}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1356837732
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1356837729}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1356837733
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1356837729}
+ m_LocalRotation: {x: -0.02853702, y: 0.23167865, z: -0.48773798, w: 0.84120286}
+ m_LocalPosition: {x: 1.06, y: -0.5408558, z: -7.61}
+ m_LocalScale: {x: 0.08, y: 1.15, z: 0.14751203}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 10.252, y: 25.112, z: -57.922}
+--- !u!1 &1399711486
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1399711490}
+ - component: {fileID: 1399711489}
+ - component: {fileID: 1399711488}
+ - component: {fileID: 1399711487}
+ m_Layer: 0
+ m_Name: Sphere (6)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &1399711487
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1399711486}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1399711488
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1399711486}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 0f535213bbe21e64b9ed01036e9425c6, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1399711489
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1399711486}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1399711490
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1399711486}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -7.5}
+ m_LocalScale: {x: 0.70917, y: 0.70917, z: 0.70917}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1570772418
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1570772420}
+ - component: {fileID: 1570772419}
+ m_Layer: 0
+ m_Name: GlobalVolume
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1570772419
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1570772418}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ isGlobal: 1
+ priority: 0
+ blendDistance: 0
+ weight: 1
+ sharedProfile: {fileID: 11400000, guid: 4f7d7e6c5fda6c146a2813c17fa7f3ad, type: 2}
+--- !u!4 &1570772420
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1570772418}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 2.9665136, y: -0.4799956, z: -2.8057647}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1703385987
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1703385991}
+ - component: {fileID: 1703385990}
+ - component: {fileID: 1703385989}
+ - component: {fileID: 1703385988}
+ m_Layer: 0
+ m_Name: Sphere (6)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &1703385988
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1703385987}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1703385989
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1703385987}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 92b5df07e8ea39c489360085bff45ecc, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1703385990
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1703385987}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1703385991
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1703385987}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.92, y: -0.11, z: -6.937189}
+ m_LocalScale: {x: 0.5389684, y: 0.5389684, z: 0.5389684}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4096_DRS-TAAU-Hardware.unity.meta b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4096_DRS-TAAU-Hardware.unity.meta
new file mode 100644
index 00000000000..ff9e8767163
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4096_DRS-TAAU-Hardware.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4dee1c4da3598c24f9fdd58a675d6547
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4097_DRS-TAAU-Software.unity b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4097_DRS-TAAU-Software.unity
new file mode 100644
index 00000000000..6fe279c69de
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4097_DRS-TAAU-Software.unity
@@ -0,0 +1,1532 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_OcclusionBakeSettings:
+ smallestOccluder: 5
+ smallestHole: 0.25
+ backfaceThreshold: 100
+ m_SceneGUID: 00000000000000000000000000000000
+ m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 9
+ m_Fog: 0
+ m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: 0.01
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
+ m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+ m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 0
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ accuratePlacement: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1 &54497423
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 54497427}
+ - component: {fileID: 54497426}
+ - component: {fileID: 54497425}
+ - component: {fileID: 54497424}
+ m_Layer: 0
+ m_Name: Sphere (7)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &54497424
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 54497423}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &54497425
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 54497423}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 0f535213bbe21e64b9ed01036e9425c6, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &54497426
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 54497423}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &54497427
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 54497423}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -0.545, y: 0, z: -8.685}
+ m_LocalScale: {x: 0.70917, y: 0.70917, z: 0.70917}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 5
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &223038177
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1132393308280272, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_Name
+ value: HDRP_Test_Camera
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -10
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4209882255362944, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 20109210616973140, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: m_AllowDynamicResolution
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: m_Version
+ value: 8
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: TAAQuality
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: antialiasing
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: clearColorMode
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: taaAntiFlicker
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: taaSharpenStrength
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: taaHistorySharpening
+ value: 0.377
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: taaAntiHistoryRinging
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: allowDynamicResolution
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: customRenderingSettings
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: allowDeepLearningSuperSampling
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: m_RenderingPathCustomFrameSettings.bitDatas.data1
+ value: 70005819440989
+ objectReference: {fileID: 0}
+ - target: {fileID: 114777190906822814, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: renderingPathCustomFrameSettingsOverrideMask.mask.data1
+ value: 655360
+ objectReference: {fileID: 0}
+ - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: waitFrames
+ value: 64
+ objectReference: {fileID: 0}
+ - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: renderPipelineAsset
+ value:
+ objectReference: {fileID: 11400000, guid: 253d374c89bd7ca4bb61beb4c14905e0,
+ type: 2}
+ - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: ImageComparisonSettings.TargetWidth
+ value: 1920
+ objectReference: {fileID: 0}
+ - target: {fileID: 114995348509370400, guid: c07ace9ab142ca9469fa377877c2f1e7,
+ type: 3}
+ propertyPath: ImageComparisonSettings.TargetHeight
+ value: 1080
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: c07ace9ab142ca9469fa377877c2f1e7, type: 3}
+--- !u!1 &256746375
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 256746379}
+ - component: {fileID: 256746378}
+ - component: {fileID: 256746377}
+ - component: {fileID: 256746376}
+ m_Layer: 0
+ m_Name: Sphere (6)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &256746376
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 256746375}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &256746377
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 256746375}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 25fb8e0210182b74cb06398df1696a04, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &256746378
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 256746375}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &256746379
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 256746375}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.78, y: 0.26, z: -7.41}
+ m_LocalScale: {x: 0.20514722, y: 0.20514722, z: 0.20514722}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 6
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &503710626
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 503710630}
+ - component: {fileID: 503710629}
+ - component: {fileID: 503710628}
+ - component: {fileID: 503710627}
+ m_Layer: 0
+ m_Name: WE
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &503710627
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 503710626}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &503710628
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 503710626}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 0d23b508459f5b7498803b2e21416a05, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &503710629
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 503710626}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &503710630
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 503710626}
+ m_LocalRotation: {x: -0, y: -0.8556675, z: -0, w: 0.517526}
+ m_LocalPosition: {x: 0.826, y: 1.59, z: -5.35}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 11
+ m_LocalEulerAnglesHint: {x: 0, y: -117.667, z: 0}
+--- !u!1 &661411982
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 661411985}
+ - component: {fileID: 661411984}
+ - component: {fileID: 661411983}
+ m_Layer: 0
+ m_Name: Directional Light (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &661411983
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661411982}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Intensity: 0.9696518
+ m_EnableSpotReflector: 1
+ m_LuxAtDistance: 1
+ m_InnerSpotPercent: 0
+ m_SpotIESCutoffPercent: 100
+ m_LightDimmer: 1
+ m_VolumetricDimmer: 1
+ m_LightUnit: 2
+ m_FadeDistance: 10000
+ m_VolumetricFadeDistance: 10000
+ m_AffectDiffuse: 1
+ m_AffectSpecular: 1
+ m_NonLightmappedOnly: 0
+ m_ShapeWidth: 0.5
+ m_ShapeHeight: 0.5
+ m_AspectRatio: 1
+ m_ShapeRadius: 0.025
+ m_SoftnessScale: 1
+ m_UseCustomSpotLightShadowCone: 0
+ m_CustomSpotLightShadowCone: 30
+ m_MaxSmoothness: 0.99
+ m_ApplyRangeAttenuation: 1
+ m_DisplayAreaLightEmissiveMesh: 0
+ m_AreaLightCookie: {fileID: 0}
+ m_IESPoint: {fileID: 0}
+ m_IESSpot: {fileID: 0}
+ m_IncludeForRayTracing: 1
+ m_AreaLightShadowCone: 120
+ m_UseScreenSpaceShadows: 0
+ m_InteractsWithSky: 1
+ m_AngularDiameter: 0.5
+ m_FlareSize: 2
+ m_FlareTint: {r: 1, g: 1, b: 1, a: 1}
+ m_FlareFalloff: 4
+ m_SurfaceTexture: {fileID: 0}
+ m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1}
+ m_Distance: 1.5e+11
+ m_UseRayTracedShadows: 0
+ m_NumRayTracingSamples: 4
+ m_FilterTracedShadow: 1
+ m_FilterSizeTraced: 16
+ m_SunLightConeAngle: 0.5
+ m_LightShadowRadius: 0.5
+ m_SemiTransparentShadow: 0
+ m_ColorShadow: 1
+ m_DistanceBasedFiltering: 0
+ m_EvsmExponent: 15
+ m_EvsmLightLeakBias: 0
+ m_EvsmVarianceBias: 0.00001
+ m_EvsmBlurPasses: 0
+ m_LightlayersMask: 1
+ m_LinkShadowLayers: 1
+ m_ShadowNearPlane: 0.1
+ m_BlockerSampleCount: 24
+ m_FilterSampleCount: 16
+ m_MinFilterSize: 0.1
+ m_KernelSize: 5
+ m_LightAngle: 1
+ m_MaxDepthBias: 0.001
+ m_ShadowResolution:
+ m_Override: 512
+ m_UseOverride: 1
+ m_Level: 0
+ m_ShadowDimmer: 1
+ m_VolumetricShadowDimmer: 1
+ m_ShadowFadeDistance: 10000
+ m_UseContactShadow:
+ m_Override: 0
+ m_UseOverride: 1
+ m_Level: 0
+ m_RayTracedContactShadow: 0
+ m_ShadowTint: {r: 0, g: 0, b: 0, a: 1}
+ m_PenumbraTint: 0
+ m_NormalBias: 0.75
+ m_SlopeBias: 0.5
+ m_ShadowUpdateMode: 0
+ m_AlwaysDrawDynamicShadows: 0
+ m_UpdateShadowOnLightMovement: 0
+ m_CachedShadowTranslationThreshold: 0.01
+ m_CachedShadowAngularThreshold: 0.5
+ m_BarnDoorAngle: 90
+ m_BarnDoorLength: 0.05
+ m_preserveCachedShadow: 0
+ m_OnDemandShadowRenderOnPlacement: 1
+ m_ShadowCascadeRatios:
+ - 0.05
+ - 0.2
+ - 0.3
+ m_ShadowCascadeBorders:
+ - 0.2
+ - 0.2
+ - 0.2
+ - 0.2
+ m_ShadowAlgorithm: 0
+ m_ShadowVariant: 0
+ m_ShadowPrecision: 0
+ useOldInspector: 0
+ useVolumetric: 1
+ featuresFoldout: 1
+ m_AreaLightEmissiveMeshShadowCastingMode: 0
+ m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0
+ m_AreaLightEmissiveMeshLayer: -1
+ m_Version: 11
+ m_ObsoleteShadowResolutionTier: 1
+ m_ObsoleteUseShadowQualitySettings: 0
+ m_ObsoleteCustomShadowResolution: 512
+ m_ObsoleteContactShadows: 0
+ m_PointlightHDType: 0
+ m_SpotLightShape: 0
+ m_AreaLightShape: 0
+--- !u!108 &661411984
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661411982}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.9696518
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 2
+ m_AreaSize: {x: 0.5, y: 0.5}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 1
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &661411985
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 661411982}
+ m_LocalRotation: {x: 0.13875811, y: 0.5250831, z: -0.42723507, w: 0.72284454}
+ m_LocalPosition: {x: 0.26, y: 2.95, z: -6.32}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 40.487, y: 57.373, z: -38.353}
+--- !u!1 &1145805900
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1145805903}
+ - component: {fileID: 1145805902}
+ - component: {fileID: 1145805901}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1145805901
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145805900}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Intensity: 0.9696518
+ m_EnableSpotReflector: 1
+ m_LuxAtDistance: 1
+ m_InnerSpotPercent: 0
+ m_SpotIESCutoffPercent: 100
+ m_LightDimmer: 1
+ m_VolumetricDimmer: 1
+ m_LightUnit: 2
+ m_FadeDistance: 10000
+ m_VolumetricFadeDistance: 10000
+ m_AffectDiffuse: 1
+ m_AffectSpecular: 1
+ m_NonLightmappedOnly: 0
+ m_ShapeWidth: 0.5
+ m_ShapeHeight: 0.5
+ m_AspectRatio: 1
+ m_ShapeRadius: 0.025
+ m_SoftnessScale: 1
+ m_UseCustomSpotLightShadowCone: 0
+ m_CustomSpotLightShadowCone: 30
+ m_MaxSmoothness: 0.99
+ m_ApplyRangeAttenuation: 1
+ m_DisplayAreaLightEmissiveMesh: 0
+ m_AreaLightCookie: {fileID: 0}
+ m_IESPoint: {fileID: 0}
+ m_IESSpot: {fileID: 0}
+ m_IncludeForRayTracing: 1
+ m_AreaLightShadowCone: 120
+ m_UseScreenSpaceShadows: 0
+ m_InteractsWithSky: 1
+ m_AngularDiameter: 0.5
+ m_FlareSize: 2
+ m_FlareTint: {r: 1, g: 1, b: 1, a: 1}
+ m_FlareFalloff: 4
+ m_SurfaceTexture: {fileID: 0}
+ m_SurfaceTint: {r: 1, g: 1, b: 1, a: 1}
+ m_Distance: 1.5e+11
+ m_UseRayTracedShadows: 0
+ m_NumRayTracingSamples: 4
+ m_FilterTracedShadow: 1
+ m_FilterSizeTraced: 16
+ m_SunLightConeAngle: 0.5
+ m_LightShadowRadius: 0.5
+ m_SemiTransparentShadow: 0
+ m_ColorShadow: 1
+ m_DistanceBasedFiltering: 0
+ m_EvsmExponent: 15
+ m_EvsmLightLeakBias: 0
+ m_EvsmVarianceBias: 0.00001
+ m_EvsmBlurPasses: 0
+ m_LightlayersMask: 1
+ m_LinkShadowLayers: 1
+ m_ShadowNearPlane: 0.1
+ m_BlockerSampleCount: 24
+ m_FilterSampleCount: 16
+ m_MinFilterSize: 0.1
+ m_KernelSize: 5
+ m_LightAngle: 1
+ m_MaxDepthBias: 0.001
+ m_ShadowResolution:
+ m_Override: 512
+ m_UseOverride: 1
+ m_Level: 0
+ m_ShadowDimmer: 1
+ m_VolumetricShadowDimmer: 1
+ m_ShadowFadeDistance: 10000
+ m_UseContactShadow:
+ m_Override: 0
+ m_UseOverride: 1
+ m_Level: 0
+ m_RayTracedContactShadow: 0
+ m_ShadowTint: {r: 0, g: 0, b: 0, a: 1}
+ m_PenumbraTint: 0
+ m_NormalBias: 0.75
+ m_SlopeBias: 0.5
+ m_ShadowUpdateMode: 0
+ m_AlwaysDrawDynamicShadows: 0
+ m_UpdateShadowOnLightMovement: 0
+ m_CachedShadowTranslationThreshold: 0.01
+ m_CachedShadowAngularThreshold: 0.5
+ m_BarnDoorAngle: 90
+ m_BarnDoorLength: 0.05
+ m_preserveCachedShadow: 0
+ m_OnDemandShadowRenderOnPlacement: 1
+ m_ShadowCascadeRatios:
+ - 0.05
+ - 0.2
+ - 0.3
+ m_ShadowCascadeBorders:
+ - 0.2
+ - 0.2
+ - 0.2
+ - 0.2
+ m_ShadowAlgorithm: 0
+ m_ShadowVariant: 0
+ m_ShadowPrecision: 0
+ useOldInspector: 0
+ useVolumetric: 1
+ featuresFoldout: 1
+ m_AreaLightEmissiveMeshShadowCastingMode: 0
+ m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0
+ m_AreaLightEmissiveMeshLayer: -1
+ m_Version: 11
+ m_ObsoleteShadowResolutionTier: 1
+ m_ObsoleteUseShadowQualitySettings: 0
+ m_ObsoleteCustomShadowResolution: 512
+ m_ObsoleteContactShadows: 0
+ m_PointlightHDType: 0
+ m_SpotLightShape: 0
+ m_AreaLightShape: 0
+--- !u!108 &1145805902
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145805900}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.9696518
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 2
+ m_AreaSize: {x: 0.5, y: 0.5}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 1
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &1145805903
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1145805900}
+ m_LocalRotation: {x: 0.13875811, y: 0.5250831, z: -0.42723507, w: 0.72284454}
+ m_LocalPosition: {x: 0.26, y: 2.95, z: -6.32}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 40.487, y: 57.373, z: -38.353}
+--- !u!1 &1174766768
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1174766772}
+ - component: {fileID: 1174766771}
+ - component: {fileID: 1174766770}
+ - component: {fileID: 1174766769}
+ m_Layer: 0
+ m_Name: Cube (2)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1174766769
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1174766768}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1174766770
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1174766768}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1174766771
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1174766768}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1174766772
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1174766768}
+ m_LocalRotation: {x: 0.03723274, y: 0.23044106, z: -0.23368219, w: 0.94387674}
+ m_LocalPosition: {x: 1.06, y: -0.5408558, z: -7.61}
+ m_LocalScale: {x: 0.08, y: 1.15, z: 0.14751203}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 10
+ m_LocalEulerAnglesHint: {x: 10.252, y: 25.112, z: -25.522}
+--- !u!1 &1261607508
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1261607512}
+ - component: {fileID: 1261607511}
+ - component: {fileID: 1261607510}
+ - component: {fileID: 1261607509}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1261607509
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261607508}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1261607510
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261607508}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1261607511
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261607508}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1261607512
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1261607508}
+ m_LocalRotation: {x: 0.09152149, y: 0.21473974, z: 0.000000055850244, w: 0.9723737}
+ m_LocalPosition: {x: 1.06, y: -0.5408558, z: -7.61}
+ m_LocalScale: {x: 0.08, y: 1.15, z: 0.14751203}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 8
+ m_LocalEulerAnglesHint: {x: 10.252, y: 25.112, z: 2.289}
+--- !u!1 &1356837729
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1356837733}
+ - component: {fileID: 1356837732}
+ - component: {fileID: 1356837731}
+ - component: {fileID: 1356837730}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!65 &1356837730
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1356837729}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1356837731
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1356837729}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1356837732
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1356837729}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1356837733
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1356837729}
+ m_LocalRotation: {x: -0.02853702, y: 0.23167865, z: -0.48773798, w: 0.84120286}
+ m_LocalPosition: {x: 1.06, y: -0.5408558, z: -7.61}
+ m_LocalScale: {x: 0.08, y: 1.15, z: 0.14751203}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 9
+ m_LocalEulerAnglesHint: {x: 10.252, y: 25.112, z: -57.922}
+--- !u!1 &1399711486
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1399711490}
+ - component: {fileID: 1399711489}
+ - component: {fileID: 1399711488}
+ - component: {fileID: 1399711487}
+ m_Layer: 0
+ m_Name: Sphere (6)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &1399711487
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1399711486}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1399711488
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1399711486}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 0f535213bbe21e64b9ed01036e9425c6, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1399711489
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1399711486}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1399711490
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1399711486}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: -7.5}
+ m_LocalScale: {x: 0.70917, y: 0.70917, z: 0.70917}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1570772418
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1570772420}
+ - component: {fileID: 1570772419}
+ m_Layer: 0
+ m_Name: GlobalVolume
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1570772419
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1570772418}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ isGlobal: 1
+ priority: 0
+ blendDistance: 0
+ weight: 1
+ sharedProfile: {fileID: 11400000, guid: 4f7d7e6c5fda6c146a2813c17fa7f3ad, type: 2}
+--- !u!4 &1570772420
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1570772418}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 2.9665136, y: -0.4799956, z: -2.8057647}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1703385987
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1703385991}
+ - component: {fileID: 1703385990}
+ - component: {fileID: 1703385989}
+ - component: {fileID: 1703385988}
+ m_Layer: 0
+ m_Name: Sphere (6)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!135 &1703385988
+SphereCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1703385987}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Radius: 0.5
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!23 &1703385989
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1703385987}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_StaticShadowCaster: 0
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RayTraceProcedural: 0
+ m_RenderingLayerMask: 257
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 92b5df07e8ea39c489360085bff45ecc, type: 2}
+ m_StaticBatchInfo:
+ firstSubMesh: 0
+ subMeshCount: 0
+ m_StaticBatchRoot: {fileID: 0}
+ m_ProbeAnchor: {fileID: 0}
+ m_LightProbeVolumeOverride: {fileID: 0}
+ m_ScaleInLightmap: 1
+ m_ReceiveGI: 1
+ m_PreserveUVs: 0
+ m_IgnoreNormalsForChartDetection: 0
+ m_ImportantGI: 0
+ m_StitchLightmapSeams: 1
+ m_SelectedEditorRenderState: 3
+ m_MinimumChartSize: 4
+ m_AutoUVMaxDistance: 0.5
+ m_AutoUVMaxAngle: 89
+ m_LightmapParameters: {fileID: 0}
+ m_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!33 &1703385990
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1703385987}
+ m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &1703385991
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1703385987}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0.92, y: -0.11, z: -6.937189}
+ m_LocalScale: {x: 0.5389684, y: 0.5389684, z: 0.5389684}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 7
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
diff --git a/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4097_DRS-TAAU-Software.unity.meta b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4097_DRS-TAAU-Software.unity.meta
new file mode 100644
index 00000000000..7b4b17d92d8
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/GraphicTests/Scenes/4x_PostProcessing/4097_DRS-TAAU-Software.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a50807faa70f2a441aba00a405914c6b
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4052_TAA.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4052_TAA.png
index 5d6486e1ee3..f17ea4fb197 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4052_TAA.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4052_TAA.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:305228b6adef25219e41ce47b279ef47b852c6ea80f454f1b6e91ed0cfbd59d4
-size 215576
+oid sha256:e22b5621cabf1d1ed2293edadee39b3b28e050d9488cc94cca78eb9fba94501e
+size 177387
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4060_CustomPostProcess.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4060_CustomPostProcess.png
index a47136b4eaa..1b78cf278a4 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4060_CustomPostProcess.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4060_CustomPostProcess.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5b8a00f436ded05ba40edd79f43772ea7e31216feac5aa0c6b2bd599cf8a51e0
-size 90407
+oid sha256:68d550efcc48d375fe68311c2c9fe9c5fe68f2a784c82e37e37e692fe7d3529e
+size 91480
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png
new file mode 100644
index 00000000000..9f6a2abc2ce
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb9451f4dbe8b01d1560f88dc2d92599c5473826a4831f7dc2cc71963684ef93
+size 619325
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4097_DRS-TAAU-Software.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4097_DRS-TAAU-Software.png
new file mode 100644
index 00000000000..9f6a2abc2ce
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4097_DRS-TAAU-Software.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb9451f4dbe8b01d1560f88dc2d92599c5473826a4831f7dc2cc71963684ef93
+size 619325
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4101_FP16Alpha.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4101_FP16Alpha.png
index 599629e8ace..bdeffc9eea4 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4101_FP16Alpha.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/4101_FP16Alpha.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8aa52d125182c0bdfdad548bcbf14eb942528236ef40ea667b27b7f73f8c4dd2
-size 493615
+oid sha256:a2cd1a93437683b80c4083b87b995ab797e5c1624799d3aafacd561ff901ed7d
+size 475813
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/9702_CustomPass_API.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/9702_CustomPass_API.png
index a063a51e3e7..76030017556 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/9702_CustomPass_API.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/LinuxEditor/Vulkan/None/9702_CustomPass_API.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c76d38d7338a3be3c01ca482dd9dd767f81f93dc8ca018a1d78d54371ddf6ef7
-size 190895
+oid sha256:e8081d07475659c831bda6fd74f1010b366cc926c096f677e24a8f09ed28c07b
+size 188504
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4052_TAA.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4052_TAA.png
index 70877d9f47e..b2755a6dc3a 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4052_TAA.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4052_TAA.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:67c9894ff1ce395e74bb73a76f6693886b6cc183357776fbdf8b43201061fe6e
-size 196476
+oid sha256:14fee5ea58febd5fdcd3d962fc327476471e79ca67947234cab4e9e2dc7c3526
+size 179115
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4060_CustomPostProcess.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4060_CustomPostProcess.png
index d6313bbab9d..9fef062c4bb 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4060_CustomPostProcess.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4060_CustomPostProcess.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ebfae7d8520a68db3f2f70e1cae7d808d9dfca1478a1672fa8430d9511484d0c
-size 83301
+oid sha256:8333782bb4ffd0311f31bd7bf155eca1e767415556afc19a7ae2e707d0859d72
+size 84688
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4096_DRS-TAAU-Hardware.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4096_DRS-TAAU-Hardware.png
new file mode 100644
index 00000000000..852081d3bbf
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4096_DRS-TAAU-Hardware.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1afa6b88b235f2fdea2e85aee3655df9882cb803675b9435f4b5be6d35508ced
+size 613935
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4096_DRS-TAAU-Hardware.png.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4096_DRS-TAAU-Hardware.png.meta
new file mode 100644
index 00000000000..b0a0d8f405f
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4096_DRS-TAAU-Hardware.png.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: fab1891278b38b34287f45c7ce7a45f2
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4097_DRS-TAAU-Software.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4097_DRS-TAAU-Software.png
new file mode 100644
index 00000000000..13e7adbf277
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4097_DRS-TAAU-Software.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b5aa121fa10274f0f7a9f6101f99c41e306073f095e69ace458657baa32af211
+size 616655
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4097_DRS-TAAU-Software.png.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4097_DRS-TAAU-Software.png.meta
new file mode 100644
index 00000000000..b45bdaecdde
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4097_DRS-TAAU-Software.png.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 87d0015e61640974fb4c9487726834ae
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4101_FP16Alpha.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4101_FP16Alpha.png
index 1c91cb44085..77cc7eccf13 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4101_FP16Alpha.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/4101_FP16Alpha.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e43d50a25d382c1d342a9e19faa1128ea6889dcdbb4a146feaa45e392f8ec50f
-size 552725
+oid sha256:a77c249f5ff9d84c6cebb0724eb55238a30972a44c3447e0538de5750b4007b8
+size 529815
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/9702_CustomPass_API.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/9702_CustomPass_API.png
index 926e74188db..d2d255c2c64 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/9702_CustomPass_API.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/9702_CustomPass_API.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ea0ab509538e066671c7bf5cb6171c1bf8e1b5b3c98cd04ad341ac60c2498ec4
-size 191676
+oid sha256:c87dfdf75b61c12611903030969da2de15aa214dd82472a1f25e74a69f2fc08e
+size 189375
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4052_TAA.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4052_TAA.png
index 20eecb08a33..ac7bb0f0dfa 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4052_TAA.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4052_TAA.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a805241f883ffd2806dc4b72eb8adc29e42be21834b8fa0167d00947571ccc63
-size 194522
+oid sha256:3f80be48dfec485c0102a435d759b03731f0db642f72b45829087c3f34ca1627
+size 177640
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4060_CustomPostProcess.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4060_CustomPostProcess.png
index ca4b519c9e5..175643be918 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4060_CustomPostProcess.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4060_CustomPostProcess.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4bb050dd35325d0f3bf2d405683804ca3408acbfcc885beb9bad07f32e6dc082
-size 90558
+oid sha256:d6df7c9942caee5e8b28021dd59fc770a2fa3ddb02dc66e9fd6867abf19b9bc3
+size 91610
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4096_DRS-TAAU-Hardware.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4096_DRS-TAAU-Hardware.png
new file mode 100644
index 00000000000..e812144c4f2
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4096_DRS-TAAU-Hardware.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dee73a3f8dd75b39837c151a76767ce7047078ca94feb7d32687e998561c7930
+size 620686
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4096_DRS-TAAU-Hardware.png.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4096_DRS-TAAU-Hardware.png.meta
new file mode 100644
index 00000000000..f3f88854640
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4096_DRS-TAAU-Hardware.png.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 27313e41d1b2a9b4d8c0c619cd66c9ea
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4097_DRS-TAAU-Software.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4097_DRS-TAAU-Software.png
new file mode 100644
index 00000000000..ae520944477
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4097_DRS-TAAU-Software.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5771845598443de7f14cc18ff427411c5d5a23258079700b9e23b3318763e207
+size 620659
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4097_DRS-TAAU-Software.png.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4097_DRS-TAAU-Software.png.meta
new file mode 100644
index 00000000000..d7e1acca657
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4097_DRS-TAAU-Software.png.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 12d9728f31ac33b4aaefd7bc0aef01b4
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4101_FP16Alpha.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4101_FP16Alpha.png
index 599629e8ace..6f976ceaa66 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4101_FP16Alpha.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/4101_FP16Alpha.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8aa52d125182c0bdfdad548bcbf14eb942528236ef40ea667b27b7f73f8c4dd2
-size 493615
+oid sha256:92f8f2cb436ccf621fced05d2ff81d022ba0538e063c66413e15452d32911c9b
+size 480984
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/9702_CustomPass_API.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/9702_CustomPass_API.png
index 2b0263271c3..b3a8983e524 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/9702_CustomPass_API.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/9702_CustomPass_API.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e22d018c50a6adbe6ce155e8e02fce07b8ee35fc382d5632a48809a8beb37328
-size 191699
+oid sha256:a099577023e97b246dd6f8316a576e5e25806d6b8d04a060068df55c5750e639
+size 189212
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4052_TAA.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4052_TAA.png
index 20eecb08a33..ac7bb0f0dfa 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4052_TAA.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4052_TAA.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:a805241f883ffd2806dc4b72eb8adc29e42be21834b8fa0167d00947571ccc63
-size 194522
+oid sha256:3f80be48dfec485c0102a435d759b03731f0db642f72b45829087c3f34ca1627
+size 177640
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4060_CustomPostProcess.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4060_CustomPostProcess.png
index ca4b519c9e5..175643be918 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4060_CustomPostProcess.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4060_CustomPostProcess.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4bb050dd35325d0f3bf2d405683804ca3408acbfcc885beb9bad07f32e6dc082
-size 90558
+oid sha256:d6df7c9942caee5e8b28021dd59fc770a2fa3ddb02dc66e9fd6867abf19b9bc3
+size 91610
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4096_DRS-TAAU-Hardware.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4096_DRS-TAAU-Hardware.png
new file mode 100644
index 00000000000..d81eea10114
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4096_DRS-TAAU-Hardware.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f578d63ab12f624532396b65643728da61259c3450ce7e8cda48d370a531d4f0
+size 618841
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4096_DRS-TAAU-Hardware.png.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4096_DRS-TAAU-Hardware.png.meta
new file mode 100644
index 00000000000..743d17616ce
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4096_DRS-TAAU-Hardware.png.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: a1e7eb8695e995341858b0ed854400d6
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4097_DRS-TAAU-Software.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4097_DRS-TAAU-Software.png
new file mode 100644
index 00000000000..156e8d3aa24
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4097_DRS-TAAU-Software.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be3de724c8d4b22dcd28b1ea90d4656add188771eb9f75db97412e61bd8c1934
+size 620769
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4097_DRS-TAAU-Software.png.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4097_DRS-TAAU-Software.png.meta
new file mode 100644
index 00000000000..79ee82a0144
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4097_DRS-TAAU-Software.png.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: 1548cee190fdbe24d9d90117ec55cfc2
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4101_FP16Alpha.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4101_FP16Alpha.png
index 599629e8ace..b036dfb246e 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4101_FP16Alpha.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/4101_FP16Alpha.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8aa52d125182c0bdfdad548bcbf14eb942528236ef40ea667b27b7f73f8c4dd2
-size 493615
+oid sha256:c2786df17b71acef4e64d3822bc7e4fe29e64589c5570e8d92f6d866df5f6995
+size 480996
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/9702_CustomPass_API.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/9702_CustomPass_API.png
index 2b0263271c3..b46a67002f0 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/9702_CustomPass_API.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D12/None/9702_CustomPass_API.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e22d018c50a6adbe6ce155e8e02fce07b8ee35fc382d5632a48809a8beb37328
-size 191699
+oid sha256:a19023a793f6aa6bb48be2c5f59ad519426d74dfae37e3a6350a08eb1f6751e5
+size 189233
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4052_TAA.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4052_TAA.png
index 337facbd7c4..f17ea4fb197 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4052_TAA.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4052_TAA.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:0e2ef1a6674cac364252eaaf750ec9a3eaed84ef386eb919eb988ccc885c3583
-size 195066
+oid sha256:e22b5621cabf1d1ed2293edadee39b3b28e050d9488cc94cca78eb9fba94501e
+size 177387
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4060_CustomPostProcess.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4060_CustomPostProcess.png
index a47136b4eaa..1b78cf278a4 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4060_CustomPostProcess.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4060_CustomPostProcess.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:5b8a00f436ded05ba40edd79f43772ea7e31216feac5aa0c6b2bd599cf8a51e0
-size 90407
+oid sha256:68d550efcc48d375fe68311c2c9fe9c5fe68f2a784c82e37e37e692fe7d3529e
+size 91480
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png
new file mode 100644
index 00000000000..9f6a2abc2ce
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb9451f4dbe8b01d1560f88dc2d92599c5473826a4831f7dc2cc71963684ef93
+size 619325
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png.meta
new file mode 100644
index 00000000000..d1fe17f4b18
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4096_DRS-TAAU-Hardware.png.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: c5ebbd80c9dc3404bb06b7e494ac5214
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4097_DRS-TAAU-Software.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4097_DRS-TAAU-Software.png
new file mode 100644
index 00000000000..9f6a2abc2ce
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4097_DRS-TAAU-Software.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bb9451f4dbe8b01d1560f88dc2d92599c5473826a4831f7dc2cc71963684ef93
+size 619325
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4097_DRS-TAAU-Software.png.meta b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4097_DRS-TAAU-Software.png.meta
new file mode 100644
index 00000000000..d6799f1681b
--- /dev/null
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4097_DRS-TAAU-Software.png.meta
@@ -0,0 +1,110 @@
+fileFormatVersion: 2
+guid: d16fe2b419d33e94da684d039bfcb63a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 1
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMasterTextureLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4101_FP16Alpha.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4101_FP16Alpha.png
index 599629e8ace..bdeffc9eea4 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4101_FP16Alpha.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/4101_FP16Alpha.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:8aa52d125182c0bdfdad548bcbf14eb942528236ef40ea667b27b7f73f8c4dd2
-size 493615
+oid sha256:a2cd1a93437683b80c4083b87b995ab797e5c1624799d3aafacd561ff901ed7d
+size 475813
diff --git a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/9702_CustomPass_API.png b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/9702_CustomPass_API.png
index 7820fa0078e..821210d3f8c 100644
--- a/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/9702_CustomPass_API.png
+++ b/TestProjects/HDRP_Tests/Assets/ReferenceImages/Linear/WindowsEditor/Vulkan/None/9702_CustomPass_API.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:1e3b02d2b603bf74d89f625fe61860cfa2d5387a5242d5fe49655403b8ee439a
-size 190827
+oid sha256:780450337ef24b94d59de3fd3c913c1d075755f3e0276a9103f9dc42c4a0f339
+size 188411
diff --git a/TestProjects/HDRP_Tests/ProjectSettings/EditorBuildSettings.asset b/TestProjects/HDRP_Tests/ProjectSettings/EditorBuildSettings.asset
index 5bf11b7dae8..d09ededc364 100644
--- a/TestProjects/HDRP_Tests/ProjectSettings/EditorBuildSettings.asset
+++ b/TestProjects/HDRP_Tests/ProjectSettings/EditorBuildSettings.asset
@@ -774,6 +774,12 @@ EditorBuildSettings:
path: Assets/GraphicTests/Scenes/9x_Other/9910_GlobalMipBias.unity
guid: 3f9d18568d46df044847954b624b6152
- enabled: 1
- path: Assets/GraphicTests/Scenes/1x_Materials/1226_LitTessellation_Displacement.unity
+ path: Assets/GraphicTests/Scenes/1x_Materials/1226_Lit_UVMapping_Displacement.unity
guid: 2a9e6d17d05c12b428a235cc1edae5b9
+ - enabled: 1
+ path: Assets/GraphicTests/Scenes/4x_PostProcessing/4096_DRS-TAAU-Hardware.unity
+ guid: 4dee1c4da3598c24f9fdd58a675d6547
+ - enabled: 1
+ path: Assets/GraphicTests/Scenes/4x_PostProcessing/4097_DRS-TAAU-Software.unity
+ guid: a50807faa70f2a441aba00a405914c6b
m_configObjects: {}
diff --git a/com.unity.render-pipelines.core/Runtime/Common/GlobalDynamicResolutionSettings.cs b/com.unity.render-pipelines.core/Runtime/Common/GlobalDynamicResolutionSettings.cs
index c5245db8fe5..f5e01a8fc4a 100644
--- a/com.unity.render-pipelines.core/Runtime/Common/GlobalDynamicResolutionSettings.cs
+++ b/com.unity.render-pipelines.core/Runtime/Common/GlobalDynamicResolutionSettings.cs
@@ -42,7 +42,12 @@ public enum DynamicResUpscaleFilter : byte
/// FidelityFX Super Resolution 1.0
///
[InspectorName("FidelityFX Super Resolution 1.0")]
- EdgeAdaptiveScalingUpres
+ EdgeAdaptiveScalingUpres,
+ ///
+ /// Temporal Upscaling.
+ ///
+ [InspectorName("TAA Upscale")]
+ TAAU
}
/// User-facing settings for dynamic resolution.
diff --git a/com.unity.render-pipelines.high-definition/CHANGELOG.md b/com.unity.render-pipelines.high-definition/CHANGELOG.md
index 0ca14c53238..d949e56b330 100644
--- a/com.unity.render-pipelines.high-definition/CHANGELOG.md
+++ b/com.unity.render-pipelines.high-definition/CHANGELOG.md
@@ -326,6 +326,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Fixed the APV UI loosing focus when the helpbox about baking appears in the probe volume.
- Fixed enabling a lensflare in playmode.
- Fixed white flashes when history is reset due to changes on type of upsampler.
+- Fixed misc TAA issue: Slightly improved TAA flickering, Reduced ringing of TAA sharpening, tweak TAA High quality central color filtering.
+- Fixed TAA upsampling algorithm, now work properly
### Changed
- Changed Window/Render Pipeline/HD Render Pipeline Wizard to Window/Rendering/HDRP Wizard
diff --git a/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Camera.md b/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Camera.md
index 2a2d88e251e..c1ac3d195b3 100644
--- a/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Camera.md
+++ b/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Camera.md
@@ -59,7 +59,7 @@ The Camera Inspector includes the following groups of properties:
| |**Use Custom Attributes** | Enable this property to make this Camera override the DLSS attributes specified in the [HDRP Asset](HDRP-Asset.md). |
| |**Use Optimal Settings** | Enable this property to allow DLSS to automatically control the sharpness and screen percentage for this Camera. This property only appears if you enable **Use Custom Attributes**. |
| |**Sharpness** | The pixel sharpness that the DLSS upscaler uses for this Camera.
This property only appears if you enable **Use Custom Attributes**. |
-| **Post Anti-aliasing** || This Camera can use [multisample anti-aliasing (MSAA)](Anti-Aliasing.md#MSAA), at the same time as post-process anti-aliasing. This is because MSAA is a hardware feature. To control post-process anti-aliasing, use the [Frame Settings](Frame-Settings.md).
• **No Anti-aliasing**: This Camera processes MSAA but does not process any post-process anti-aliasing.
• **Fast Approximate Anti-aliasing (FXAA)**: Smooths edges on a per-pixel level. This is the most efficient anti-aliasing technique in HDRP.
• **Temporal Anti-aliasing (TAA)**: Uses frames from a history buffer to smooth edges more effectively than fast approximate anti-aliasing.
• **Subpixel Morphological Anti-aliasing (SMAA)**: Finds patterns in borders of the image and blends the pixels on these borders according to the pattern. ||
+| **Post Anti-aliasing** || This Camera can use [multisample anti-aliasing (MSAA)](Anti-Aliasing.md#MSAA), at the same time as post-process anti-aliasing. This is because MSAA is a hardware feature. To control post-process anti-aliasing, use the [Frame Settings](Frame-Settings.md).
• **No Anti-aliasing**: This Camera processes MSAA but does not process any post-process anti-aliasing.
• **Fast Approximate Anti-aliasing (FXAA)**: Smooths edges on a per-pixel level. This is the most efficient anti-aliasing technique in HDRP.
• **Temporal Anti-aliasing (TAA)**: Uses frames from a history buffer to smooth edges more effectively than fast approximate anti-aliasing.
• **Subpixel Morphological Anti-aliasing (SMAA)**: Finds patterns in borders of the image and blends the pixels on these borders according to the pattern. |
|| **SMAA Quality Preset** | Use the drop-down to select the quality of SMAA. The difference in resource intensity is small between **Low** and **High**.
• **Low**: The lowest SMAA quality. This is the least resource-intensive option.
• **Medium**: A good balance between SMAA quality and resource intensity.
• **High**: The highest SMAA quality. This is the most resource-intensive option.This property only appears when you select **Subpixel Morphological Anti-aliasing (SMAA)** from the **Anti-aliasing** drop-down. |
| |**TAA Quality Preset** | The quality level of TAA. The default settings for higher presets are not guaranteed to produce better results than lower presets. The result depends on the content in your scene. However, the high quality presets give you more options that you can use to adapt the anti-aliasing to your content. |
| |**TAA Sharpen Strength** | The intensity of the sharpening filter that Unity applies to the result of TAA. This reduces the soft look that TAA can produce. High values can cause ringing issues (dark lines along the edges of geometry) |
@@ -67,6 +67,7 @@ The Camera Inspector includes the following groups of properties:
| |**TAA Anti-flickering** | The strength of TAA's anti-flickering effect. Use this to reduce some cases of flickering. When you increase this value, the risk o [ghosting](Glossary.md#Ghosting) or [disocclusion](Glossary.md#Disocclusion) artifacts.
This property is only visible when **TAA Quality Preset** is set to a value above **Low**. |
| |**TAA Speed rejection** | Controls the threshold at which Unity rejects history buffer contribution for TAA. You can increase this value to remove ghosting artifacts. This works because Unity rejects history buffer contribution when a GameObject's current speed and reprojected speed history are very different. When you increase this value, it might also reintroduce some aliasing for fast-moving GameObjects. Controls the threshold at which Unity rejects history buffer contribution for TAA. Increasing this value can help to remove ghosting artifacts because Unity rejects history buffer contribution when a GameObject's current speed and reprojected speed history are very different. While this can be effective in reducing ghosting, it might also reintroduce some aliasing for fast-moving GameObject. When you set this value to 0, it increases the performance of TAA because Unity does not process speed rejection. |
| |**TAA Anti-ringing** | Enable this property to reduce the ringing artifacts caused by high history sharpening values. When you enable this property, it reduces the effect of the history sharpening. This property is only visible when TAA Quality Preset is set to High. |
+| |**TAA Base blend factor** | Determines how much the history buffer is blended together with current frame result. Higher values means more history contribution, which leads to better anti aliasing, but also more prone to ghosting.
This property is only visible when Advanced properties are displayed for the camera. |
| **Dithering** | |Enable the checkbox to apply 8-bit dithering to the final render. This can help reduce banding on wide gradients and low light areas. |
| **Stop NaNs** | |Enable the checkbox to make this Camera replace values that are not a number (NaN) with a black pixel. This stops certain effects from breaking, but is a resource-intensive process. Only enable this feature if you experience NaN issues that you can not fix. |
| **Culling Mask** | |Use the drop-down to set the Layer Mask that the Camera uses to exclude GameObjects from the rendering process. The Camera only renders Layers that you include in the Layer Mask. |
diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs
index 9082344a60b..6af1f96a0f0 100644
--- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs
+++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Drawers.cs
@@ -10,11 +10,15 @@ static partial class HDCameraUI
{
partial class Rendering
{
- public static readonly CED.IDrawer Drawer = CED.FoldoutGroup(
- CameraUI.Rendering.Styles.header,
- Expandable.Rendering,
- k_ExpandedState,
- FoldoutOption.Indent,
+ enum AdditionalProperties
+ {
+ Rendering = 1 << 5,
+ }
+ readonly static AdditionalPropertiesState k_AdditionalPropertiesState = new AdditionalPropertiesState(0, "HDRP");
+ static bool s_IsRunningTAAU = false;
+
+
+ public static readonly CED.IDrawer RenderingDrawer = CED.Group(
CED.Group(
Drawer_Rendering_AllowDynamicResolution,
Drawer_Rendering_Antialiasing
@@ -40,10 +44,43 @@ partial class Rendering
)
);
+ public static readonly CED.IDrawer Drawer = CED.AdditionalPropertiesFoldoutGroup(CameraUI.Rendering.Styles.header, Expandable.Rendering, k_ExpandedState, AdditionalProperties.Rendering, k_AdditionalPropertiesState, RenderingDrawer, Draw_Rendering_Advanced);
+
+ internal static void RegisterEditor(HDCameraEditor editor)
+ {
+ k_AdditionalPropertiesState.RegisterEditor(editor);
+ }
+
+ internal static void UnregisterEditor(HDCameraEditor editor)
+ {
+ k_AdditionalPropertiesState.UnregisterEditor(editor);
+ }
+
+ [SetAdditionalPropertiesVisibility]
+ internal static void SetAdditionalPropertiesVisibility(bool value)
+ {
+ if (value)
+ k_AdditionalPropertiesState.ShowAll();
+ else
+ k_AdditionalPropertiesState.HideAll();
+ }
+
+ static void Draw_Rendering_Advanced(SerializedHDCamera p, Editor owner)
+ {}
+
static void Drawer_Rendering_AllowDynamicResolution(SerializedHDCamera p, Editor owner)
{
CameraUI.Output.Drawer_Output_AllowDynamicResolution(p, owner);
+ var dynamicResSettings = HDRenderPipeline.currentAsset.currentPlatformRenderPipelineSettings.dynamicResolutionSettings;
+ s_IsRunningTAAU = p.allowDynamicResolution.boolValue && dynamicResSettings.upsampleFilter == UnityEngine.Rendering.DynamicResUpscaleFilter.TAAU && dynamicResSettings.enabled;
+
+ if (s_IsRunningTAAU)
+ {
+ EditorGUILayout.HelpBox(Styles.taauInfoBox, MessageType.Info);
+ p.antialiasing.intValue = (int)HDAdditionalCameraData.AntialiasingMode.TemporalAntialiasing;
+ }
+
#if ENABLE_NVIDIA && ENABLE_NVIDIA_MODULE
EditorGUI.indentLevel++;
Drawer_Draw_DLSS_Section(p, owner);
@@ -118,21 +155,24 @@ static void Drawer_Rendering_Antialiasing(SerializedHDCamera p, Editor owner)
showAntialiasContentAsFallback = isDLSSEnabled;
#endif
- Rect antiAliasingRect = EditorGUILayout.GetControlRect();
- EditorGUI.BeginProperty(antiAliasingRect, Styles.antialiasing, p.antialiasing);
+ using (new EditorGUI.DisabledScope(s_IsRunningTAAU))
{
- EditorGUI.BeginChangeCheck();
- int selectedValue = (int)(HDAdditionalCameraData.AntialiasingMode)EditorGUI.EnumPopup(antiAliasingRect, showAntialiasContentAsFallback ? Styles.antialiasingContentFallback : Styles.antialiasing, (HDAdditionalCameraData.AntialiasingMode)p.antialiasing.intValue);
+ Rect antiAliasingRect = EditorGUILayout.GetControlRect();
+ EditorGUI.BeginProperty(antiAliasingRect, Styles.antialiasing, p.antialiasing);
+ {
+ EditorGUI.BeginChangeCheck();
+ int selectedValue = (int)(HDAdditionalCameraData.AntialiasingMode)EditorGUI.EnumPopup(antiAliasingRect, showAntialiasContentAsFallback ? Styles.antialiasingContentFallback : Styles.antialiasing, (HDAdditionalCameraData.AntialiasingMode)p.antialiasing.intValue);
- if (EditorGUI.EndChangeCheck())
- p.antialiasing.intValue = selectedValue;
+ if (EditorGUI.EndChangeCheck())
+ p.antialiasing.intValue = selectedValue;
+ }
}
}
static CED.IDrawer AntialiasingModeDrawer(HDAdditionalCameraData.AntialiasingMode antialiasingMode, CED.ActionDrawer antialiasingDrawer)
{
return CED.Conditional(
- (serialized, owner) => serialized.antialiasing.intValue == (int)antialiasingMode,
+ (serialized, owner) => (serialized.antialiasing.intValue == (int)antialiasingMode) && (s_IsRunningTAAU ? serialized.antialiasing.intValue == (int)HDAdditionalCameraData.AntialiasingMode.TemporalAntialiasing : true),
CED.Group(
GroupOption.Indent,
antialiasingDrawer
@@ -145,9 +185,20 @@ static void Drawer_Rendering_Antialiasing_SMAA(SerializedHDCamera p, Editor owne
EditorGUILayout.PropertyField(p.SMAAQuality, Styles.SMAAQualityPresetContent);
}
+ static void Draw_Rendering_Antialiasing_TAA_Advanced(SerializedHDCamera p, Editor owner)
+ {
+ EditorGUILayout.PropertyField(p.taaBaseBlendFactor, Styles.TAABaseBlendFactor);
+ }
+
static void Drawer_Rendering_Antialiasing_TAA(SerializedHDCamera p, Editor owner)
{
- EditorGUILayout.PropertyField(p.taaQualityLevel, Styles.TAAQualityLevel);
+ using (new EditorGUI.DisabledScope(s_IsRunningTAAU))
+ {
+ EditorGUILayout.PropertyField(p.taaQualityLevel, Styles.TAAQualityLevel);
+ }
+ if (s_IsRunningTAAU)
+ p.taaQualityLevel.intValue = (int)HDAdditionalCameraData.TAAQualityLevel.High;
+
EditorGUILayout.PropertyField(p.taaSharpenStrength, Styles.TAASharpen);
if (p.taaQualityLevel.intValue > (int)HDAdditionalCameraData.TAAQualityLevel.Low)
@@ -161,6 +212,11 @@ static void Drawer_Rendering_Antialiasing_TAA(SerializedHDCamera p, Editor owner
EditorGUILayout.PropertyField(p.taaMotionVectorRejection, Styles.TAAMotionVectorRejection);
EditorGUILayout.PropertyField(p.taaAntiRinging, Styles.TAAAntiRinging);
}
+
+ if (k_AdditionalPropertiesState[AdditionalProperties.Rendering])
+ {
+ Draw_Rendering_Antialiasing_TAA_Advanced(p, owner);
+ }
}
static void Drawer_Rendering_RenderingPath(SerializedHDCamera p, Editor owner)
diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Skin.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Skin.cs
index 7215be5ccf9..d05094dac56 100644
--- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Skin.cs
+++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/HDCameraUI.Rendering.Skin.cs
@@ -19,12 +19,17 @@ class Styles
public static readonly GUIContent TAAMotionVectorRejection = EditorGUIUtility.TrTextContent("Speed Rejection", "Higher this value, more likely history will be rejected when current and reprojected history motion vector differ by a substantial amount. High values can decrease ghosting but will also reintroduce aliasing on the aforementioned cases.");
public static readonly GUIContent TAAQualityLevel = EditorGUIUtility.TrTextContent("Quality Preset", "Low quality is fast, but can lead to more ghosting and blurrier output when moving, Medium quality has better ghosting handling and sharper results upon movement, High allows for velocity rejection policy, has better antialiasing and has mechanism to combat ringing for over sharpening the history.");
public static readonly GUIContent TAAAntiRinging = EditorGUIUtility.TrTextContent("Anti-ringing", "When enabled, ringing artifacts (dark or strangely saturated edges) caused by history sharpening will be improved. This comes at a potential loss of sharpness upon motion.");
+ // Advanced TAA
+ public static readonly GUIContent TAABaseBlendFactor = EditorGUIUtility.TrTextContent("Base blend factor", "Determines how much the history buffer is blended together with current frame result. Higher values means more history contribution, which leads to better anti aliasing, but also more prone to ghosting.");
+
public static readonly GUIContent renderingPath = EditorGUIUtility.TrTextContent("Custom Frame Settings", "Define custom values for Frame Settings for this Camera to use.");
public static readonly GUIContent fullScreenPassthrough = EditorGUIUtility.TrTextContent("Fullscreen Passthrough", "This will skip rendering settings to directly rendering in fullscreen(for instance: Useful for video)");
public static readonly GUIContent exposureTarget = EditorGUIUtility.TrTextContent("Exposure Target", "The object used as a target for centering the Exposure's Procedural Mask metering mode when target object option is set (See Exposure Volume Component).");
public static readonly GUIContent allowDynamicResolution = EditorGUIUtility.TrTextContent("Allow Dynamic Resolution", "Whether to support dynamic resolution.");
+ public const string taauInfoBox = "When TAA Upsample is enabled, TAA is run as antialiasing algorithm and uses High Quality as base, to select other anti-aliasing methods please change upscale filter for dynamic resolution.";
+
public const string DLSSFeatureDetectedMsg = "Unity detected NVIDIA Deep Learning Super Sampling and will ignore the Fallback Anti Aliasing Method.";
public const string DLSSFeatureNotDetectedMsg = "Unity cannot detect NVIDIA Deep Learning Super Sampling and will use the Fallback Anti Aliasing Method instead.";
public const string DLSSNotEnabledInQualityAsset = "The quality asset in this project does not have NVIDIA Deep Learning Super Sampling (DLSS) enabled. DLSS will not be running on this camera.";
diff --git a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/SerializedHDCamera.cs b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/SerializedHDCamera.cs
index 1aaaa7d7660..d99096b5d98 100644
--- a/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/SerializedHDCamera.cs
+++ b/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/Camera/SerializedHDCamera.cs
@@ -44,6 +44,7 @@ class SerializedHDCamera : ISerializedCamera
public SerializedProperty taaAntiFlicker;
public SerializedProperty taaMotionVectorRejection;
public SerializedProperty taaAntiRinging;
+ public SerializedProperty taaBaseBlendFactor;
public SerializedProperty taaQualityLevel;
public SerializedProperty clearColorMode;
@@ -105,6 +106,7 @@ public SerializedHDCamera(SerializedObject serializedObject)
taaMotionVectorRejection = serializedAdditionalDataObject.Find((HDAdditionalCameraData d) => d.taaMotionVectorRejection);
taaAntiRinging = serializedAdditionalDataObject.Find((HDAdditionalCameraData d) => d.taaAntiHistoryRinging);
taaQualityLevel = serializedAdditionalDataObject.Find((HDAdditionalCameraData d) => d.TAAQuality);
+ taaBaseBlendFactor = serializedAdditionalDataObject.Find((HDAdditionalCameraData d) => d.taaBaseBlendFactor);
clearColorMode = serializedAdditionalDataObject.Find((HDAdditionalCameraData d) => d.clearColorMode);
backgroundColorHDR = serializedAdditionalDataObject.Find((HDAdditionalCameraData d) => d.backgroundColorHDR);
diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCoCReproject.compute b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCoCReproject.compute
index 8ede212db7c..aff57a44bb2 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCoCReproject.compute
+++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCoCReproject.compute
@@ -72,7 +72,11 @@ void KMain(uint3 dispatchThreadId : SV_DispatchThreadID)
// Sample the history buffer with the motion vector at the closest point
float2 motionVector;
- DecodeMotionVector(LOAD_TEXTURE2D_X(_CameraMotionVectorsTexture, max(int2(posInputs.positionSS) + int2(closest.xy), 0)), motionVector);
+ float2 motionVecUV = FromOutputPosSSToPreupsampleUV(max(int2(posInputs.positionSS) + int2(closest.xy), 0));
+ motionVecUV = ClampAndScaleUVForPoint(motionVecUV);
+
+ float4 encodedMV = SAMPLE_TEXTURE2D_X_LOD(_CameraMotionVectorsTexture, s_point_clamp_sampler, motionVecUV, 0);
+ DecodeMotionVector(encodedMV, motionVector);
float cocHis = SAMPLE_TEXTURE2D_X_LOD(_InputHistoryCoCTexture, SAMPLER_STATE, (uv - motionVector) * ScreenToTargetScaleHistory.xy, 0.0).x;
// Neighborhood clamping
diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCommon.hlsl b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCommon.hlsl
index dc4f2a4d191..114756f0c50 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCommon.hlsl
+++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DepthOfFieldCommon.hlsl
@@ -33,6 +33,8 @@ uint2 UnpackTileCoord(TileData tile)
float CameraDepth(TEXTURE2D_X(depthMinMaxAvg), uint2 pixelCoords)
{
+ pixelCoords = FromOutputPosSSToPreupsamplePosSS(pixelCoords);
+
#ifndef USE_MIN_DEPTH
return LoadCameraDepth(pixelCoords);
#else
diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DoFMinMaxDilate.compute b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DoFMinMaxDilate.compute
index a842cc43875..2dac5ef1584 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DoFMinMaxDilate.compute
+++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/DoFMinMaxDilate.compute
@@ -34,7 +34,7 @@ void KMain(uint3 dispatchThreadId : SV_DispatchThreadID)
float4 tileInfo = _InputTexture[COORD_TEXTURE2D_X(dispatchThreadId.xy)];
int2 startIndex = max((int2)dispatchThreadId.xy - int2(1, 1), int2(0, 0));
- int2 endIndex = min((int2)dispatchThreadId.xy + int2(1, 1), _ScreenSize.xy / TILE_RES - int2(1, 1));
+ int2 endIndex = min((int2)dispatchThreadId.xy + int2(1, 1), _PostProcessScreenSize.xy / TILE_RES - int2(1, 1));
for (int i = startIndex.x; i <= endIndex.x; i++)
{
diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/MotionBlurMotionVecPrep.compute b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/MotionBlurMotionVecPrep.compute
index 0d1f9e12bf5..5323ccad0b1 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/MotionBlurMotionVecPrep.compute
+++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/MotionBlurMotionVecPrep.compute
@@ -145,14 +145,18 @@ void MotionVecPreppingCS(uint3 dispatchThreadId : SV_DispatchThreadID)
UNITY_XR_ASSIGN_VIEW_INDEX(dispatchThreadId.z);
float3 motionVecAndDepth = 0.0f;
- float4 motionVecBufferSample = LOAD_TEXTURE2D_X(_CameraMotionVectorsTexture, dispatchThreadId.xy);
+
+ float2 motionVecUV = FromOutputPosSSToPreupsampleUV(dispatchThreadId.xy);
+ motionVecUV = ClampAndScaleUVForPoint(motionVecUV);
+
+ float4 motionVecBufferSample = SAMPLE_TEXTURE2D_X_LOD(_CameraMotionVectorsTexture, s_point_clamp_sampler, motionVecUV, 0);
// if we have a value > 1.0f, it means we have selected the "no motion option", hence we force motionVec 0.
bool forceNoMotion = PixelSetAsNoMotionVectors(motionVecBufferSample);
float2 motionVec;
DecodeMotionVector(motionVecBufferSample, motionVec);
- float depth = LoadCameraDepth(dispatchThreadId.xy);
+ float depth = LoadCameraDepth(FromOutputPosSSToPreupsamplePosSS(dispatchThreadId.xy));
if ( !forceNoMotion
diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/TemporalAntiAliasing.shader b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/TemporalAntiAliasing.shader
index 4c9bb084707..78d6a7f27f4 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/TemporalAntiAliasing.shader
+++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/TemporalAntiAliasing.shader
@@ -14,12 +14,13 @@ Shader "Hidden/HDRP/TemporalAA"
#pragma multi_compile_local_fragment _ FORCE_BILINEAR_HISTORY
#pragma multi_compile_local_fragment _ ENABLE_MV_REJECTION
#pragma multi_compile_local_fragment _ ANTI_RINGING
- #pragma multi_compile_local_fragment LOW_QUALITY MEDIUM_QUALITY HIGH_QUALITY POST_DOF
+ #pragma multi_compile_local_fragment _ DIRECT_STENCIL_SAMPLE
+ #pragma multi_compile_local_fragment LOW_QUALITY MEDIUM_QUALITY HIGH_QUALITY TAA_UPSCALE POST_DOF
#pragma editor_sync_compilation
+ // #pragma enable_d3d11_debug_symbols
#pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal switch
-
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Builtin/BuiltinData.hlsl"
@@ -71,12 +72,25 @@ Shader "Hidden/HDRP/TemporalAA"
#define PERCEPTUAL_SPACE 1
#define PERCEPTUAL_SPACE_ONLY_END 0 && (PERCEPTUAL_SPACE == 0)
+#elif defined(TAA_UPSCALE)
+ #define YCOCG 1
+ #define HISTORY_SAMPLING_METHOD BICUBIC_5TAP
+ #define WIDE_NEIGHBOURHOOD 1
+ #define NEIGHBOUROOD_CORNER_METHOD VARIANCE
+ #define CENTRAL_FILTERING UPSCALE
+ #define HISTORY_CLIP DIRECT_CLIP
+ #define ANTI_FLICKER 1
+ #define ANTI_FLICKER_MV_DEPENDENT 1
+ #define VELOCITY_REJECTION defined(ENABLE_MV_REJECTION)
+ #define PERCEPTUAL_SPACE 1
+ #define PERCEPTUAL_SPACE_ONLY_END 0 && (PERCEPTUAL_SPACE == 0)
+
#elif defined(POST_DOF)
#define YCOCG 1
#define HISTORY_SAMPLING_METHOD BILINEAR
#define WIDE_NEIGHBOURHOOD 0
#define NEIGHBOUROOD_CORNER_METHOD VARIANCE
- #define CENTRAL_FILTERING NO_FILTERINGs
+ #define CENTRAL_FILTERING NO_FILTERING
#define HISTORY_CLIP DIRECT_CLIP
#define ANTI_FLICKER 1
#define ANTI_FLICKER_MV_DEPENDENT 1
@@ -98,11 +112,43 @@ Shader "Hidden/HDRP/TemporalAA"
RW_TEXTURE2D_X(CTYPE, _OutputHistoryTexture) : register(u1);
#endif
+ #if DIRECT_STENCIL_SAMPLE
+ TEXTURE2D_X_UINT2(_StencilTexture);
+ #endif
+
+ float4 _TaaPostParameters;
+ float4 _TaaPostParameters1;
+ float4 _TaaHistorySize;
+ float4 _TaaFilterWeights;
+ float4 _TaaFilterWeights1;
+
#define _HistorySharpening _TaaPostParameters.x
#define _AntiFlickerIntensity _TaaPostParameters.y
#define _SpeedRejectionIntensity _TaaPostParameters.z
#define _ContrastForMaxAntiFlicker _TaaPostParameters.w
+ #define _BaseBlendFactor _TaaPostParameters1.x
+ #define _CentralWeight _TaaPostParameters1.y
+ #define _ExcludeTAABit _TaaPostParameters1.z
+
+ // TAAU specific
+ float4 _TaauParameters;
+ #define _TAAUFilterRcpSigma2 _TaauParameters.x
+ #define _TAAUScale _TaauParameters.y
+ #define _TAAUBoxConfidenceThresh _TaauParameters.z
+ #define _TAAURenderScale _TaauParameters.w
+ #define _InputSize _ScreenSize
+
+
+ float4 _TaaScales;
+ // NOTE: We need to define custom scales instead of using the default ones for several reasons.
+ // 1- This shader is shared by TAA and Temporal Upscaling, having a single scale defined in C# instead helps readability.
+ // 2- Especially with history, when doing temporal upscaling we have an unusal situation in which the history size doesn't match the input size.
+ // This in turns lead to some rounding issue (final viewport is not rounded, while the render target size is) that cause artifacts.
+ // To fix said artifacts we recompute manually the scales as we need them.
+ #define _RTHandleScaleForTAAHistory _TaaScales.xy
+ #define _RTHandleScaleForTAA _TaaScales.zw
+
#if VELOCITY_REJECTION
TEXTURE2D_X(_InputVelocityMagnitudeHistory);
#ifdef SHADER_API_PSSL
@@ -112,10 +158,6 @@ Shader "Hidden/HDRP/TemporalAA"
#endif
#endif
- float4 _TaaPostParameters;
- float4 _TaaHistorySize;
- float4 _TaaFilterWeights;
-
struct Attributes
{
uint vertexID : SV_VertexID;
@@ -141,6 +183,21 @@ Shader "Hidden/HDRP/TemporalAA"
// ------------------------------------------------------------------
+ // This complexity will not be needed when moving to CS.
+ void SwizzleFilterWeights(int2 posSS, inout float4 filterParams1, inout float4 filterParams2)
+ {
+ // Data arrives as if filterParams weights for { (0, 1), (1, 0), (-1, 0), (0,-1) }, filterParams2 for { (-1, 1), (1, -1), (1, 1), (-1, -1) }
+ bool2 needSwizzle = (posSS & 1) == 0;
+
+ filterParams1.yz = needSwizzle.x ? filterParams1.zy : filterParams1.yz;
+ filterParams1.xw = needSwizzle.y ? filterParams1.wx : filterParams1.xw;
+#if WIDE_NEIGHBOURHOOD
+ filterParams2 = all(needSwizzle) ? filterParams2.yxwz :
+ (needSwizzle.x && !needSwizzle.y) ? filterParams2.zwxy :
+ (!needSwizzle.x && needSwizzle.y) ? filterParams2.wzyx : filterParams2;
+#endif
+ }
+
void FragTAA(Varyings input, out CTYPE outColor : SV_Target0)
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
@@ -148,103 +205,142 @@ Shader "Hidden/HDRP/TemporalAA"
float sharpenStrength = _TaaFrameInfo.x;
float2 jitter = _TaaJitterStrength.zw;
- float2 uv = input.texcoord - jitter;
+ float2 uv = input.texcoord;
+
+ #ifdef TAA_UPSCALE
+ float2 outputPixInInput = input.texcoord * _InputSize.xy - _TaaJitterStrength.xy;
+
+ uv = _InputSize.zw * (0.5f + floor(outputPixInInput));
+ #endif
// --------------- Get closest motion vector ---------------
float2 motionVector;
#if ORTHOGRAPHIC
- float2 closest = input.positionCS.xy;
+ float2 closestOffset = 0;
#else
- float2 closest = GetClosestFragment(_DepthTexture, int2(input.positionCS.xy));
+ int2 samplePos = input.positionCS.xy;
+#ifdef TAA_UPSCALE
+ samplePos = outputPixInInput;
+#endif
+ float2 closestOffset = GetClosestFragmentOffset(_DepthTexture, samplePos);
#endif
- DecodeMotionVector(LOAD_TEXTURE2D_X(_CameraMotionVectorsTexture, closest), motionVector);
+ bool excludeTAABit = false;
+#if DIRECT_STENCIL_SAMPLE
+ uint stencil = GetStencilValue(LOAD_TEXTURE2D_X(_StencilTexture, samplePos));
+ excludeTAABit = (stencil == _ExcludeTAABit);
+#endif
+
+ float lengthMV = 0;
+
+ DecodeMotionVector(SAMPLE_TEXTURE2D_X_LOD(_CameraMotionVectorsTexture, s_point_clamp_sampler, ClampAndScaleUVForPoint(uv + closestOffset * _InputSize.zw), 0), motionVector);
// --------------------------------------------------------
// --------------- Get resampled history ---------------
float2 prevUV = input.texcoord - motionVector;
- CTYPE history = GetFilteredHistory(_InputHistoryTexture, prevUV, _HistorySharpening, _TaaHistorySize);
+ CTYPE history = GetFilteredHistory(_InputHistoryTexture, prevUV, _HistorySharpening, _TaaHistorySize, _RTHandleScaleForTAAHistory);
bool offScreen = any(abs(prevUV * 2 - 1) >= (1.0f - (1.0 * _TaaHistorySize.zw)));
history.xyz *= PerceptualWeight(history);
// -----------------------------------------------------
// --------------- Gather neigbourhood data ---------------
- CTYPE color = Fetch4(_InputTexture, uv, 0.0, _RTHandleScale.xy).CTYPE_SWIZZLE;
- color = clamp(color, 0, CLAMP_MAX);
- color = ConvertToWorkingSpace(color);
-
- NeighbourhoodSamples samples;
- GatherNeighbourhood(_InputTexture, uv, input.positionCS.xy, color, samples);
- // --------------------------------------------------------
+ CTYPE color = Fetch4(_InputTexture, uv, 0.0, _RTHandleScaleForTAA).CTYPE_SWIZZLE;
+ if (!excludeTAABit)
+ {
+ color = clamp(color, 0, CLAMP_MAX);
+ color = ConvertToWorkingSpace(color);
+
+ NeighbourhoodSamples samples;
+ GatherNeighbourhood(_InputTexture, uv, floor(input.positionCS.xy), color, _RTHandleScaleForTAA, samples);
+ // --------------------------------------------------------
+
+ // --------------- Filter central sample ---------------
+ float4 filterParams = _TaaFilterWeights;
+ float4 filterParams1 = _TaaFilterWeights1;
+ float centralWeight = _CentralWeight;
+#ifdef TAA_UPSCALE
+ filterParams.x = _TAAUFilterRcpSigma2;
+ filterParams.y = _TAAUScale;
+ filterParams.zw = outputPixInInput - (floor(outputPixInInput) + 0.5f);
+
+#elif CENTRAL_FILTERING == BLACKMAN_HARRIS
+ // We need to swizzle weights as we use quad communication to access neighbours, so the order of neighbours is not always the same (this needs to go away when moving back to compute)
+ SwizzleFilterWeights(floor(input.positionCS.xy), filterParams, filterParams1);
+#endif
+ CTYPE filteredColor = FilterCentralColor(samples, filterParams, filterParams1, centralWeight);
+ // ------------------------------------------------------
- // --------------- Filter central sample ---------------
- CTYPE filteredColor = FilterCentralColor(samples, _TaaFilterWeights);
- // ------------------------------------------------------
+ if (offScreen)
+ history = filteredColor;
- if (offScreen)
- history = filteredColor;
+ // --------------- Get neighbourhood information and clamp history ---------------
+ float colorLuma = GetLuma(filteredColor);
+ float historyLuma = GetLuma(history);
- // --------------- Get neighbourhood information and clamp history ---------------
- float colorLuma = GetLuma(filteredColor);
- float historyLuma = GetLuma(history);
+ float motionVectorLength = 0.0f;
+ float motionVectorLenInPixels = 0.0f;
#if ANTI_FLICKER_MV_DEPENDENT || VELOCITY_REJECTION
- float motionVectorLength = length(motionVector);
-#else
- float motionVectorLength = 0.0f;
+ motionVectorLength = length(motionVector);
+ motionVectorLenInPixels = motionVectorLength * length(_InputSize.xy);
#endif
- GetNeighbourhoodCorners(samples, historyLuma, colorLuma, float2(_AntiFlickerIntensity, _ContrastForMaxAntiFlicker), motionVectorLength);
- history = GetClippedHistory(filteredColor, history, samples.minNeighbour, samples.maxNeighbour);
- filteredColor = SharpenColor(samples, filteredColor, sharpenStrength);
- // ------------------------------------------------------------------------------
+ GetNeighbourhoodCorners(samples, historyLuma, colorLuma, float2(_AntiFlickerIntensity, _ContrastForMaxAntiFlicker), motionVectorLenInPixels, _TAAURenderScale);
- // --------------- Compute blend factor for history ---------------
- float blendFactor = GetBlendFactor(colorLuma, historyLuma, GetLuma(samples.minNeighbour), GetLuma(samples.maxNeighbour));
- // --------------------------------------------------------
+ history = GetClippedHistory(filteredColor, history, samples.minNeighbour, samples.maxNeighbour);
+ filteredColor = SharpenColor(samples, filteredColor, sharpenStrength);
+ // ------------------------------------------------------------------------------
- // ------------------- Alpha handling ---------------------------
+ // --------------- Compute blend factor for history ---------------
+ float blendFactor = GetBlendFactor(colorLuma, historyLuma, GetLuma(samples.minNeighbour), GetLuma(samples.maxNeighbour), _BaseBlendFactor);
+ // --------------------------------------------------------
+
+ // ------------------- Alpha handling ---------------------------
#if defined(ENABLE_ALPHA)
- // Compute the antialiased alpha value
- filteredColor.w = lerp(history.w, filteredColor.w, blendFactor);
- // TAA should not overwrite pixels with zero alpha. This allows camera stacking with mixed TAA settings (bottom camera with TAA OFF and top camera with TAA ON).
- CTYPE unjitteredColor = Fetch4(_InputTexture, input.texcoord - color.w * jitter, 0.0, _RTHandleScale.xy).CTYPE_SWIZZLE;
- unjitteredColor = ConvertToWorkingSpace(unjitteredColor);
- unjitteredColor.xyz *= PerceptualWeight(unjitteredColor);
- filteredColor.xyz = lerp(unjitteredColor.xyz, filteredColor.xyz, filteredColor.w);
- blendFactor = color.w > 0 ? blendFactor : 1;
+ // Compute the antialiased alpha value
+ filteredColor.w = lerp(history.w, filteredColor.w, blendFactor);
+ // TAA should not overwrite pixels with zero alpha. This allows camera stacking with mixed TAA settings (bottom camera with TAA OFF and top camera with TAA ON).
+ CTYPE unjitteredColor = Fetch4(_InputTexture, input.texcoord - color.w * jitter, 0.0, _RTHandleScale.xy).CTYPE_SWIZZLE;
+ unjitteredColor = ConvertToWorkingSpace(unjitteredColor);
+ unjitteredColor.xyz *= PerceptualWeight(unjitteredColor);
+ filteredColor.xyz = lerp(unjitteredColor.xyz, filteredColor.xyz, filteredColor.w);
+ blendFactor = color.w > 0 ? blendFactor : 1;
#endif
- // ---------------------------------------------------------------
+ // ---------------------------------------------------------------
- // --------------- Blend to final value and output ---------------
+ // --------------- Blend to final value and output ---------------
#if VELOCITY_REJECTION
- float lengthMV = motionVectorLength * 10;
- blendFactor = ModifyBlendWithMotionVectorRejection(_InputVelocityMagnitudeHistory, lengthMV, prevUV, blendFactor, _SpeedRejectionIntensity);
+ // The 10 multiplier serves a double purpose, it is an empirical scale value used to perform the rejection and it also helps with storing the value itself.
+ lengthMV = motionVectorLength * 10;
+ blendFactor = ModifyBlendWithMotionVectorRejection(_InputVelocityMagnitudeHistory, lengthMV, prevUV, blendFactor, _SpeedRejectionIntensity, _RTHandleScaleForTAAHistory);
#endif
- blendFactor = max(blendFactor, 0.03);
+#ifdef TAA_UPSCALE
+ blendFactor *= GetUpsampleConfidence(filterParams.zw, _TAAUBoxConfidenceThresh, _TAAUFilterRcpSigma2, _TAAUScale);
+#endif
+ blendFactor = max(blendFactor, 0.03);
- CTYPE finalColor;
+ CTYPE finalColor;
#if PERCEPTUAL_SPACE_ONLY_END
- finalColor.xyz = lerp(ReinhardToneMap(history).xyz, ReinhardToneMap(filteredColor).xyz, blendFactor);
- finalColor.xyz = InverseReinhardToneMap(finalColor).xyz;
+ finalColor.xyz = lerp(ReinhardToneMap(history).xyz, ReinhardToneMap(filteredColor).xyz, blendFactor);
+ finalColor.xyz = InverseReinhardToneMap(finalColor).xyz;
#else
- finalColor.xyz = lerp(history.xyz, filteredColor.xyz, blendFactor);
- finalColor.xyz *= PerceptualInvWeight(finalColor);
+ finalColor.xyz = lerp(history.xyz, filteredColor.xyz, blendFactor);
+ finalColor.xyz *= PerceptualInvWeight(finalColor);
#endif
- color.xyz = ConvertToOutputSpace(finalColor.xyz);
- color.xyz = clamp(color.xyz, 0, CLAMP_MAX);
+ color.xyz = ConvertToOutputSpace(finalColor.xyz);
+ color.xyz = clamp(color.xyz, 0, CLAMP_MAX);
#if defined(ENABLE_ALPHA)
- // Set output alpha to the antialiased alpha.
- color.w = filteredColor.w;
+ // Set output alpha to the antialiased alpha.
+ color.w = filteredColor.w;
#endif
+ }
_OutputHistoryTexture[COORD_TEXTURE2D_X(input.positionCS.xy)] = color.CTYPE_SWIZZLE;
outColor = color.CTYPE_SWIZZLE;
-
#if VELOCITY_REJECTION && !defined(POST_DOF)
_OutputVelocityMagnitudeHistory[COORD_TEXTURE2D_X(input.positionCS.xy)] = lengthMV;
#endif
@@ -260,6 +356,24 @@ Shader "Hidden/HDRP/TemporalAA"
outColor = Fetch4(_InputTexture, uv, 0.0, _RTHandleScale.xy).CTYPE_SWIZZLE;
}
+
+ void FragCopyHistory(Varyings input, out CTYPE outColor : SV_Target0)
+ {
+ UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
+
+ float2 jitter = _TaaJitterStrength.zw;
+ float2 uv = input.texcoord;
+
+#ifdef TAA_UPSCALE
+ float2 outputPixInInput = input.texcoord * _InputSize.xy - _TaaJitterStrength.xy;
+
+ uv = _InputSize.zw * (0.5f + floor(outputPixInInput));
+#endif
+ CTYPE color = Fetch4(_InputTexture, uv, 0.0, _RTHandleScaleForTAA).CTYPE_SWIZZLE;
+
+ outColor = color;
+ }
+
ENDHLSL
SubShader
@@ -304,6 +418,29 @@ Shader "Hidden/HDRP/TemporalAA"
#pragma fragment FragExcludedTAA
ENDHLSL
}
+
+ Pass // TAAU
+ {
+ // We cannot stencil with TAAU, we will need to manually sample the texture.
+
+ ZWrite Off ZTest Always Blend Off Cull Off
+
+ HLSLPROGRAM
+ #pragma vertex Vert
+ #pragma fragment FragTAA
+ ENDHLSL
+ }
+
+ Pass // Copy history
+ {
+ ZWrite Off ZTest Always Blend Off Cull Off
+
+ HLSLPROGRAM
+ #pragma vertex Vert
+ #pragma fragment FragCopyHistory
+ ENDHLSL
+ }
+
}
Fallback Off
}
diff --git a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/TemporalAntialiasing.hlsl b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/TemporalAntialiasing.hlsl
index a17d7891173..f29271c35e4 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/TemporalAntialiasing.hlsl
+++ b/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/Shaders/TemporalAntialiasing.hlsl
@@ -67,12 +67,22 @@ float4 Fetch4Array(Texture2DArray tex, uint slot, float2 coords, float2 offset,
#define NO_FILTERING 0
#define BOX_FILTER 1
#define BLACKMAN_HARRIS 2
+#define UPSCALE 3
// Clip option
#define DIRECT_CLIP 0
#define BLEND_WITH_CLIP 1
#define SIMPLE_CLAMP 2
+// Upsample pixel confidence factor (used for tuning the blend factor when upsampling)
+// See A Survey of Temporal Antialiasing Techniques [Yang et al 2020], section 5.1
+#define GAUSSIAN_WEIGHT 0
+#define BOX_REJECT 1
+#define CONFIDENCE_FACTOR BOX_REJECT
+
+#if CENTRAL_FILTERING == UPSCALE
+#define UPSAMPLE
+#endif
// Set defines in case not set outside the include
#ifndef YCOCG
@@ -111,6 +121,7 @@ float4 Fetch4Array(Texture2DArray tex, uint slot, float2 coords, float2 offset,
#define PERCEPTUAL_SPACE 1
#endif
+
// ---------------------------------------------------
// Utilities functions
// ---------------------------------------------------
@@ -264,7 +275,7 @@ float3 ConvertToOutputSpace(float3 color)
// ---------------------------------------------------
// Front most neighbourhood velocity ([Karis 2014])
-float2 GetClosestFragment(TEXTURE2D_X(DepthTexture), int2 positionSS)
+float2 GetClosestFragmentOffset(TEXTURE2D_X(DepthTexture), int2 positionSS)
{
float center = LOAD_TEXTURE2D_X_LOD(DepthTexture, positionSS, 0).r;
@@ -286,7 +297,7 @@ float2 GetClosestFragment(TEXTURE2D_X(DepthTexture), int2 positionSS)
closest = COMPARE_DEPTH(s2, closest.z) ? float3(offset2, s2) : closest;
closest = COMPARE_DEPTH(s1, closest.z) ? float3(offset1, s1) : closest;
- return positionSS + closest.xy;
+ return closest.xy;
}
// Used since some compute might want to call this and we cannot use Quad reads in that case.
@@ -310,18 +321,18 @@ float2 GetClosestFragmentCompute(float2 positionSS)
}
-float ModifyBlendWithMotionVectorRejection(TEXTURE2D_X(VelocityMagnitudeTexture), float mvLen, float2 prevUV, float blendFactor, float speedRejectionFactor)
+float ModifyBlendWithMotionVectorRejection(TEXTURE2D_X(VelocityMagnitudeTexture), float mvLen, float2 prevUV, float blendFactor, float speedRejectionFactor, float2 rtHandleScale)
{
// TODO: This needs some refinement, it can lead to some annoying flickering coming back on strong camera movement.
#if VELOCITY_REJECTION
- float prevMVLen = Fetch(VelocityMagnitudeTexture, prevUV, 0, _RTHandleScaleHistory.zw).x;
+ float prevMVLen = Fetch(VelocityMagnitudeTexture, prevUV, 0, rtHandleScale).x;
float diff = abs(mvLen - prevMVLen);
// We don't start rejecting until we have the equivalent of around 40 texels in 1080p
diff -= 0.015935382;
float val = saturate(diff * speedRejectionFactor);
- return lerp(blendFactor, 1.0, val*val);
+ return lerp(blendFactor, 0.97f, val*val);
#else
return blendFactor;
@@ -332,15 +343,15 @@ float ModifyBlendWithMotionVectorRejection(TEXTURE2D_X(VelocityMagnitudeTexture)
// History sampling
// ---------------------------------------------------
-CTYPE HistoryBilinear(TEXTURE2D_X(HistoryTexture), float2 UV)
+CTYPE HistoryBilinear(TEXTURE2D_X(HistoryTexture), float2 UV, float2 rtHandleScale)
{
- CTYPE color = Fetch4(HistoryTexture, UV, 0.0, _RTHandleScaleHistory.zw).CTYPE_SWIZZLE;
+ CTYPE color = Fetch4(HistoryTexture, UV, 0.0, rtHandleScale).CTYPE_SWIZZLE;
return color;
}
// From Filmic SMAA presentation[Jimenez 2016]
// A bit more verbose that it needs to be, but makes it a bit better at latency hiding
-CTYPE HistoryBicubic5Tap(TEXTURE2D_X(HistoryTexture), float2 UV, float sharpening, float4 historyBufferInfo)
+CTYPE HistoryBicubic5Tap(TEXTURE2D_X(HistoryTexture), float2 UV, float sharpening, float4 historyBufferInfo, float2 rtHandleScale)
{
float2 samplePos = UV * historyBufferInfo.xy;
float2 tc1 = floor(samplePos - 0.5) + 0.5;
@@ -360,11 +371,11 @@ CTYPE HistoryBicubic5Tap(TEXTURE2D_X(HistoryTexture), float2 UV, float sharpenin
float2 tc3 = historyBufferInfo.zw * (tc1 + 2.0);
float2 tc12 = historyBufferInfo.zw * (tc1 + w2 / w12);
- CTYPE s0 = Fetch4(HistoryTexture, float2(tc12.x, tc0.y), 0.0, _RTHandleScaleHistory.zw).CTYPE_SWIZZLE;
- CTYPE s1 = Fetch4(HistoryTexture, float2(tc0.x, tc12.y), 0.0, _RTHandleScaleHistory.zw).CTYPE_SWIZZLE;
- CTYPE s2 = Fetch4(HistoryTexture, float2(tc12.x, tc12.y), 0.0, _RTHandleScaleHistory.zw).CTYPE_SWIZZLE;
- CTYPE s3 = Fetch4(HistoryTexture, float2(tc3.x, tc0.y), 0.0, _RTHandleScaleHistory.zw).CTYPE_SWIZZLE;
- CTYPE s4 = Fetch4(HistoryTexture, float2(tc12.x, tc3.y), 0.0, _RTHandleScaleHistory.zw).CTYPE_SWIZZLE;
+ CTYPE s0 = Fetch4(HistoryTexture, float2(tc12.x, tc0.y), 0.0, rtHandleScale).CTYPE_SWIZZLE;
+ CTYPE s1 = Fetch4(HistoryTexture, float2(tc0.x, tc12.y), 0.0, rtHandleScale).CTYPE_SWIZZLE;
+ CTYPE s2 = Fetch4(HistoryTexture, float2(tc12.x, tc12.y), 0.0, rtHandleScale).CTYPE_SWIZZLE;
+ CTYPE s3 = Fetch4(HistoryTexture, float2(tc3.x, tc0.y), 0.0, rtHandleScale).CTYPE_SWIZZLE;
+ CTYPE s4 = Fetch4(HistoryTexture, float2(tc12.x, tc3.y), 0.0, rtHandleScale).CTYPE_SWIZZLE;
float cw0 = (w12.x * w0.y);
float cw1 = (w0.x * w12.y);
@@ -401,14 +412,14 @@ CTYPE HistoryBicubic5Tap(TEXTURE2D_X(HistoryTexture), float2 UV, float sharpenin
}
-CTYPE GetFilteredHistory(TEXTURE2D_X(HistoryTexture), float2 UV, float sharpening, float4 historyBufferInfo)
+CTYPE GetFilteredHistory(TEXTURE2D_X(HistoryTexture), float2 UV, float sharpening, float4 historyBufferInfo, float2 rtHandleScale)
{
CTYPE history = 0;
#if (HISTORY_SAMPLING_METHOD == BILINEAR || defined(FORCE_BILINEAR_HISTORY))
- history = HistoryBilinear(HistoryTexture, UV);
+ history = HistoryBilinear(HistoryTexture, UV, rtHandleScale);
#elif HISTORY_SAMPLING_METHOD == BICUBIC_5TAP
- history = HistoryBicubic5Tap(HistoryTexture, UV, sharpening, historyBufferInfo);
+ history = HistoryBicubic5Tap(HistoryTexture, UV, sharpening, historyBufferInfo, rtHandleScale);
#endif
history = clamp(history, 0, CLAMP_MAX);
@@ -434,6 +445,11 @@ struct NeighbourhoodSamples
CTYPE minNeighbour;
CTYPE maxNeighbour;
CTYPE avgNeighbour;
+
+#ifdef UPSAMPLE
+ // TODO: The way we handle offsets now will force this in VGPR. It is not good, will need to revisit. Now that we can sample stencil in compute, we should move to compute and all this nonsense is not needed anymore.
+ float2 offsets[8];
+#endif
};
@@ -452,7 +468,7 @@ void ConvertNeighboursToPerceptualSpace(inout NeighbourhoodSamples samples)
samples.central.xyz *= PerceptualWeight(samples.central);
}
-void GatherNeighbourhood(TEXTURE2D_X(InputTexture), float2 UV, float2 positionSS, CTYPE centralColor, out NeighbourhoodSamples samples)
+void GatherNeighbourhood(TEXTURE2D_X(InputTexture), float2 UV, float2 positionSS, CTYPE centralColor, float2 rtHandleScale, out NeighbourhoodSamples samples)
{
samples = (NeighbourhoodSamples)0;
@@ -463,8 +479,8 @@ void GatherNeighbourhood(TEXTURE2D_X(InputTexture), float2 UV, float2 positionSS
#if WIDE_NEIGHBOURHOOD
// Plus shape
- samples.neighbours[0] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, float2(0.0f, quadOffset.y), _RTHandleScale.xy).CTYPE_SWIZZLE);
- samples.neighbours[1] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, float2(quadOffset.x, 0.0f), _RTHandleScale.xy).CTYPE_SWIZZLE);
+ samples.neighbours[0] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, float2(0.0f, quadOffset.y), rtHandleScale).CTYPE_SWIZZLE);
+ samples.neighbours[1] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, float2(quadOffset.x, 0.0f), rtHandleScale).CTYPE_SWIZZLE);
samples.neighbours[2] = QuadReadColorAcrossX(centralColor, positionSS);
samples.neighbours[3] = QuadReadColorAcrossY(centralColor, positionSS);
@@ -474,17 +490,28 @@ void GatherNeighbourhood(TEXTURE2D_X(InputTexture), float2 UV, float2 positionSS
int2 offset2 = int2(quadOffset.x, -quadOffset.y);
int2 offset3 = quadOffset;
- samples.neighbours[4] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset1, _RTHandleScale.xy).CTYPE_SWIZZLE);
- samples.neighbours[5] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset2, _RTHandleScale.xy).CTYPE_SWIZZLE);
- samples.neighbours[6] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset3, _RTHandleScale.xy).CTYPE_SWIZZLE);
- samples.neighbours[7] = QuadReadColorAcrossDiagonal(centralColor, positionSS);
+ samples.neighbours[4] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset1, rtHandleScale).CTYPE_SWIZZLE);
+ samples.neighbours[5] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset2, rtHandleScale).CTYPE_SWIZZLE);
+ samples.neighbours[6] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset3, rtHandleScale).CTYPE_SWIZZLE);
+ samples.neighbours[7] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, fastOffset, rtHandleScale).CTYPE_SWIZZLE); /* TODO: Why is this not good? QuadReadColorAcrossDiagonal(centralColor, positionSS); */
+
+#ifdef UPSAMPLE
+ samples.offsets[0] = float2(0.0f, quadOffset.y);
+ samples.offsets[1] = float2(quadOffset.x, 0.0f);
+ samples.offsets[2] = float2(-quadOffset.x, 0.0f);
+ samples.offsets[3] = float2(0.0f, -quadOffset.y);
+ samples.offsets[4] = offset1;
+ samples.offsets[5] = offset2;
+ samples.offsets[6] = offset3;
+ samples.offsets[7] = fastOffset;
+#endif
#else // !WIDE_NEIGHBOURHOOD
#if SMALL_NEIGHBOURHOOD_SHAPE == PLUS
- samples.neighbours[0] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, float2(0.0f, quadOffset.y), _RTHandleScale.xy).CTYPE_SWIZZLE);
- samples.neighbours[1] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, float2(quadOffset.x, 0.0f), _RTHandleScale.xy).CTYPE_SWIZZLE);
+ samples.neighbours[0] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, float2(0.0f, quadOffset.y), rtHandleScale).CTYPE_SWIZZLE);
+ samples.neighbours[1] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, float2(quadOffset.x, 0.0f), rtHandleScale).CTYPE_SWIZZLE);
samples.neighbours[2] = QuadReadColorAcrossX(centralColor, positionSS);
samples.neighbours[3] = QuadReadColorAcrossY(centralColor, positionSS);
@@ -495,9 +522,9 @@ void GatherNeighbourhood(TEXTURE2D_X(InputTexture), float2 UV, float2 positionSS
int2 offset2 = int2(quadOffset.x, -quadOffset.y);
int2 offset3 = quadOffset;
- samples.neighbours[0] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset1, _RTHandleScale.xy).CTYPE_SWIZZLE);
- samples.neighbours[1] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset2, _RTHandleScale.xy).CTYPE_SWIZZLE);
- samples.neighbours[2] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset3, _RTHandleScale.xy).CTYPE_SWIZZLE);
+ samples.neighbours[0] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset1, rtHandleScale).CTYPE_SWIZZLE);
+ samples.neighbours[1] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset2, rtHandleScale).CTYPE_SWIZZLE);
+ samples.neighbours[2] = ConvertToWorkingSpace(Fetch4(InputTexture, UV, offset3, rtHandleScale).CTYPE_SWIZZLE);
samples.neighbours[3] = QuadReadColorAcrossDiagonal(centralColor, positionSS);
#endif // SMALL_NEIGHBOURHOOD_SHAPE == 4
@@ -535,11 +562,12 @@ void MinMaxNeighbourhood(inout NeighbourhoodSamples samples)
samples.avgNeighbour *= rcp(NEIGHBOUR_COUNT);
}
-void VarianceNeighbourhood(inout NeighbourhoodSamples samples, float historyLuma, float colorLuma, float2 antiFlickerParams, float motionVectorLen)
+void VarianceNeighbourhood(inout NeighbourhoodSamples samples, float historyLuma, float colorLuma, float2 antiFlickerParams, float motionVecLenInPixels, float downsampleFactor)
{
CTYPE moment1 = 0;
CTYPE moment2 = 0;
+ // UPDATE WITH TEMPORAL UP SHRINKAGE
for (int i = 0; i < NEIGHBOUR_COUNT; ++i)
{
moment1 += samples.neighbours[i];
@@ -564,34 +592,65 @@ void VarianceNeighbourhood(inout NeighbourhoodSamples samples, float historyLuma
stDevMultiplier = 1.5;
float temporalContrast = saturate(abs(colorLuma - historyLuma) / Max3(0.2, colorLuma, historyLuma));
#if ANTI_FLICKER_MV_DEPENDENT
- const float screenDiag = length(_ScreenSize.xy);
const float maxFactorScale = 2.25f; // when stationary
const float minFactorScale = 0.8f; // when moving more than slightly
- float localizedAntiFlicker = lerp(antiFlickerParams.x * minFactorScale, antiFlickerParams.x * maxFactorScale, saturate(1.0f - 2.0f * (motionVectorLen * screenDiag)));
+ float localizedAntiFlicker = lerp(antiFlickerParams.x * minFactorScale, antiFlickerParams.x * maxFactorScale, saturate(1.0f - 2.0f * (motionVecLenInPixels)));
#else
float localizedAntiFlicker = antiFlickerParams.x;
#endif
stDevMultiplier += lerp(0.0, localizedAntiFlicker, smoothstep(0.05, antiFlickerParams.y, temporalContrast));
+#endif
+#if CENTRAL_FILTERING == UPSCALE
+ // We shrink the bounding box when upscaling as ghosting is more likely.
+ // Ideally the shrinking should happen also (or just) when sampling the neighbours
+ // This shrinking should also be investigated a bit further with more content. (TODO).
+ stDevMultiplier = lerp(stDevMultiplier, 0.9f, saturate(downsampleFactor));
#endif
+
samples.minNeighbour = moment1 - stdDev * stDevMultiplier;
samples.maxNeighbour = moment1 + stdDev * stDevMultiplier;
}
-void GetNeighbourhoodCorners(inout NeighbourhoodSamples samples, float historyLuma, float colorLuma, float2 antiFlickerParams, float motionVecLen)
+void GetNeighbourhoodCorners(inout NeighbourhoodSamples samples, float historyLuma, float colorLuma, float2 antiFlickerParams, float motionVecLenInPixels, float downsampleFactor)
{
#if NEIGHBOUROOD_CORNER_METHOD == MINMAX
MinMaxNeighbourhood(samples);
#else
- VarianceNeighbourhood(samples, historyLuma, colorLuma, antiFlickerParams, motionVecLen);
+ VarianceNeighbourhood(samples, historyLuma, colorLuma, antiFlickerParams, motionVecLenInPixels, downsampleFactor);
#endif
}
// ---------------------------------------------------
// Filter main color
// ---------------------------------------------------
+#define APPROX_WEIGHT 1
+float GetSampleWeight(NeighbourhoodSamples samples, int neighbourIdx, float4 filterParameters, bool centralPixel = false)
+{
+#ifdef UPSAMPLE
-CTYPE FilterCentralColor(NeighbourhoodSamples samples, float4 filterWeights)
+ const float2 inputToOutputVec = filterParameters.zw;
+ const float resolutionScale2 = filterParameters.y * filterParameters.y;
+ float2 d = (centralPixel ? 0 : samples.offsets[neighbourIdx]) - inputToOutputVec;
+
+#if APPROX_WEIGHT
+ // A bit fatter and shorter tail, but significantly cheaper and close enough for the use case.
+ // https://www.desmos.com/calculator/g2hr2hzj84
+ float x2 = saturate(resolutionScale2 * dot(d, d));
+ float f = 0.9656852f * x2 - 1;
+ return f * f;
+#else
+ // Spiky gaussian (See for honor presentation)
+ const float rcpStdDev2 = filterParameters.x; // (1/(sigma*sigma))
+ return exp2(-0.5f * dot(d, d) * resolutionScale2 * rcpStdDev2);
+#endif
+
+#else
+ return 1;
+#endif
+}
+
+CTYPE FilterCentralColor(NeighbourhoodSamples samples, float4 filterParameters, float4 filterParameters2, float centralWeight)
{
#if CENTRAL_FILTERING == NO_FILTERING
@@ -607,14 +666,28 @@ CTYPE FilterCentralColor(NeighbourhoodSamples samples, float4 filterWeights)
return avg / (1 + NEIGHBOUR_COUNT);
#elif CENTRAL_FILTERING == BLACKMAN_HARRIS
-
- CTYPE filtered = samples.central * filterWeights.x;
- filtered += (samples.neighbours[0] + samples.neighbours[1] + samples.neighbours[2] + samples.neighbours[3]) * filterWeights.y;
+ CTYPE filtered = samples.central * centralWeight;
+ filtered += (samples.neighbours[0] * filterParameters.x + samples.neighbours[1] * filterParameters.y + samples.neighbours[2] * filterParameters.z + samples.neighbours[3] * filterParameters.w);
#if WIDE_NEIGHBOURHOOD
- filtered += (samples.neighbours[4] + samples.neighbours[5] + samples.neighbours[6] + samples.neighbours[7]) * filterWeights.z;
+ filtered += (samples.neighbours[4] * filterParameters2.x + samples.neighbours[5] * filterParameters2.y + samples.neighbours[6] * filterParameters2.z + samples.neighbours[7] * filterParameters2.w);
#endif
return filtered;
+#elif CENTRAL_FILTERING == UPSCALE
+
+ float totalWeight = GetSampleWeight(samples, 0, filterParameters, true);
+ CTYPE filtered = 0;
+ filtered += samples.central * totalWeight;
+
+ for (int i = 0; i < 8; ++i)
+ {
+ float w = GetSampleWeight(samples, i, filterParameters);
+ filtered += samples.neighbours[i] * w;
+ totalWeight += w;
+ }
+
+ filtered *= rcp(totalWeight);
+ return filtered;
#endif
}
@@ -623,10 +696,10 @@ CTYPE FilterCentralColor(NeighbourhoodSamples samples, float4 filterWeights)
// Blend factor calculation
// ---------------------------------------------------
-float HistoryContrast(float historyLuma, float minNeighbourLuma, float maxNeighbourLuma)
+float HistoryContrast(float historyLuma, float minNeighbourLuma, float maxNeighbourLuma, float baseBlendFactor)
{
float lumaContrast = max(maxNeighbourLuma - minNeighbourLuma, 0) / historyLuma;
- float blendFactor = 0.125;
+ float blendFactor = baseBlendFactor;
return saturate(blendFactor * rcp(1.0 + lumaContrast));
}
@@ -636,11 +709,11 @@ float DistanceToClamp(float historyLuma, float minNeighbourLuma, float maxNeighb
return saturate((0.125 * distToClamp) / (distToClamp + maxNeighbourLuma - minNeighbourLuma));
}
-float GetBlendFactor(float colorLuma, float historyLuma, float minNeighbourLuma, float maxNeighbourLuma)
+float GetBlendFactor(float colorLuma, float historyLuma, float minNeighbourLuma, float maxNeighbourLuma, float baseBlendFactor)
{
// TODO: Investigate factoring in the speed in this computation.
- return HistoryContrast(historyLuma, minNeighbourLuma, maxNeighbourLuma);
+ return HistoryContrast(historyLuma, minNeighbourLuma, maxNeighbourLuma, baseBlendFactor);
}
// ---------------------------------------------------
@@ -710,12 +783,12 @@ CTYPE SharpenColor(NeighbourhoodSamples samples, CTYPE color, float sharpenStren
linearC.xyz = ConvertToOutputSpace(linearC.xyz);
linearAvg.xyz = ConvertToOutputSpace(linearAvg.xyz);
- linearC.xyz = linearC.xyz + (linearC.xyz - linearAvg.xyz) * sharpenStrength * 3;
+ linearC.xyz = linearC.xyz + max(0, (linearC.xyz - linearAvg.xyz)) * sharpenStrength * 3;
linearC.xyz = clamp(linearC.xyz, 0, CLAMP_MAX);
linearC = ConvertToWorkingSpace(linearC);
#else
- linearC = linearC + (linearC - linearAvg) * sharpenStrength * 3;
+ linearC = linearC + max(0,(linearC - linearAvg)) * sharpenStrength * 3;
linearC = clamp(linearC, 0, CLAMP_MAX);
#endif
CTYPE outputSharpened = linearC * PerceptualWeight(linearC);
@@ -726,3 +799,33 @@ CTYPE SharpenColor(NeighbourhoodSamples samples, CTYPE color, float sharpenStren
return outputSharpened;
}
+
+// ---------------------------------------------------
+// Upscale confidence factor
+// ---------------------------------------------------
+
+// Binary accept or not
+float BoxKernelConfidence(float2 inputToOutputVec, float confidenceThreshold)
+{
+ // Binary (TODO: Smooth it?)
+ float confidenceScore = abs(inputToOutputVec.x) <= confidenceThreshold && abs(inputToOutputVec.y) <= confidenceThreshold;
+ return confidenceScore;
+}
+
+float GaussianConfidence(float2 inputToOutputVec, float rcpStdDev2, float resScale)
+{
+ const float resolutionScale2 = resScale * resScale;
+
+ return resolutionScale2 * exp2(-0.5f * dot(inputToOutputVec, inputToOutputVec) * resolutionScale2 * rcpStdDev2);
+}
+
+float GetUpsampleConfidence(float2 inputToOutputVec, float confidenceThreshold, float rcpStdDev2, float resScale)
+{
+#if CONFIDENCE_FACTOR == GAUSSIAN_WEIGHT
+ return saturate(GaussianConfidence(inputToOutputVec, rcpStdDev2, resScale));
+#elif CONFIDENCE_FACTOR == BOX_REJECT
+ return BoxKernelConfidence(inputToOutputVec, confidenceThreshold);
+#endif
+
+ return 1;
+}
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.cs
index a2d43729aec..567ee41dd91 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDAdditionalCameraData.cs
@@ -325,6 +325,10 @@ public enum TAAQualityLevel
/// When enabled, ringing artifacts (dark or strangely saturated edges) caused by history sharpening will be improved. This comes at a potential loss of sharpness upon motion.
public bool taaAntiHistoryRinging = false;
+ /// Determines how much the history buffer is blended together with current frame result. Higher values means more history contribution.
+ [Range(0.6f, 0.95f)]
+ public float taaBaseBlendFactor = 0.875f;
+
/// Physical camera parameters.
[ValueCopy] // reference should not be same. only content.
public HDPhysicalCamera physicalParameters = HDPhysicalCamera.GetDefaults();
@@ -591,6 +595,7 @@ public void CopyTo(HDAdditionalCameraData data)
data.taaAntiFlicker = taaAntiFlicker;
data.taaMotionVectorRejection = taaMotionVectorRejection;
data.taaAntiHistoryRinging = taaAntiHistoryRinging;
+ data.taaBaseBlendFactor = taaBaseBlendFactor;
data.flipYMode = flipYMode;
data.fullscreenPassthrough = fullscreenPassthrough;
data.allowDynamicResolution = allowDynamicResolution;
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs
index 06df844d5ce..902c6e13887 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/Camera/HDCamera.cs
@@ -115,6 +115,9 @@ public struct ViewConstants
internal bool dofHistoryIsValid = false; // used to invalidate DoF accumulation history when switching DoF modes
+ // State needed to handle TAAU.
+ internal bool previousFrameWasTAAUpsampled = false;
+
// Pass all the systems that may want to initialize per-camera data here.
// That way you will never create an HDCamera and forget to initialize the data.
///
@@ -249,6 +252,7 @@ internal struct VolumetricCloudsAnimationData
internal float taaHistorySharpening;
internal float taaAntiFlicker;
internal float taaMotionVectorRejection;
+ internal float taaBaseBlendFactor;
internal bool taaAntiRinging;
internal Vector4 zBufferParams;
@@ -257,7 +261,8 @@ internal struct VolumetricCloudsAnimationData
internal Vector4 screenParams;
internal int volumeLayerMask;
internal Transform volumeAnchor;
- internal Rect finalViewport; // This will have the correct viewport position and the size will be full resolution (ie : not taking dynamic rez into account)
+ internal Rect finalViewport = new Rect(Vector2.zero, -1.0f * Vector2.one); // This will have the correct viewport position and the size will be full resolution (ie : not taking dynamic rez into account)
+ internal Rect prevFinalViewport;
internal int colorPyramidHistoryMipCount = 0;
internal VBufferParameters[] vBufferParams; // Double-buffered; needed even if reprojection is off
internal RTHandle[] volumetricHistoryBuffers; // Double-buffered; only used for reprojection
@@ -685,6 +690,16 @@ internal bool IsDLSSEnabled()
return m_AdditionalCameraData == null ? false : m_AdditionalCameraData.cameraCanRenderDLSS;
}
+ internal bool IsTAAUEnabled()
+ {
+ return DynamicResolutionHandler.instance.DynamicResolutionEnabled() && DynamicResolutionHandler.instance.filter == DynamicResUpscaleFilter.TAAU && !IsDLSSEnabled();
+ }
+
+ internal bool UpsampleHappensBeforePost()
+ {
+ return IsDLSSEnabled() || IsTAAUEnabled();
+ }
+
internal bool allowDeepLearningSuperSampling => m_AdditionalCameraData == null ? false : m_AdditionalCameraData.allowDeepLearningSuperSampling;
internal bool deepLearningSuperSamplingUseCustomQualitySettings => m_AdditionalCameraData == null ? false : m_AdditionalCameraData.deepLearningSuperSamplingUseCustomQualitySettings;
internal uint deepLearningSuperSamplingQuality => m_AdditionalCameraData == null ? 0 : m_AdditionalCameraData.deepLearningSuperSamplingQuality;
@@ -694,7 +709,7 @@ internal bool IsDLSSEnabled()
internal bool RequiresCameraJitter()
{
- return antialiasing == AntialiasingMode.TemporalAntialiasing || IsDLSSEnabled();
+ return antialiasing == AntialiasingMode.TemporalAntialiasing || IsDLSSEnabled() || IsTAAUEnabled();
}
internal bool IsSSREnabled(bool transparent = false)
@@ -784,8 +799,8 @@ internal void Update(FrameSettings currentFrameSettings, HDRenderPipeline hdrp,
UpdateAntialiasing();
- // ORDER is importand: we read the upsamplerSchedule when we decide if we need to refresh the history buffers, so be careful when moving this
- DynamicResolutionHandler.instance.upsamplerSchedule = IsDLSSEnabled() ? DynamicResolutionHandler.UpsamplerScheduleType.BeforePost : DynamicResolutionHandler.UpsamplerScheduleType.AfterPost;
+ // ORDER is important: we read the upsamplerSchedule when we decide if we need to refresh the history buffers, so be careful when moving this
+ DynamicResolutionHandler.instance.upsamplerSchedule = UpsampleHappensBeforePost() ? DynamicResolutionHandler.UpsamplerScheduleType.BeforePost : DynamicResolutionHandler.UpsamplerScheduleType.AfterPost;
// Handle memory allocation.
if (allocateHistoryBuffers)
@@ -830,7 +845,7 @@ internal void Update(FrameSettings currentFrameSettings, HDRenderPipeline hdrp,
}
// If we change the upscale schedule, refresh the history buffers. We need to do this, because if postprocess is after upscale, the size of some buffers needs to change.
- if (m_PrevUpsamplerSchedule != DynamicResolutionHandler.instance.upsamplerSchedule)
+ if (m_PrevUpsamplerSchedule != DynamicResolutionHandler.instance.upsamplerSchedule || previousFrameWasTAAUpsampled != IsTAAUEnabled())
{
forceReallocPyramid = true;
m_PrevUpsamplerSchedule = DynamicResolutionHandler.instance.upsamplerSchedule;
@@ -881,6 +896,8 @@ internal void Update(FrameSettings currentFrameSettings, HDRenderPipeline hdrp,
// Update viewport
{
+ prevFinalViewport = finalViewport;
+
if (xr.enabled)
{
finalViewport = xr.GetViewport();
@@ -904,7 +921,7 @@ internal void Update(FrameSettings currentFrameSettings, HDRenderPipeline hdrp,
Vector2Int scaledSize = DynamicResolutionHandler.instance.GetScaledSize(new Vector2Int(actualWidth, actualHeight));
actualWidth = scaledSize.x;
actualHeight = scaledSize.y;
- globalMipBias += DynamicResolutionHandler.instance.CalculateMipBias(scaledSize, nonScaledViewport, IsDLSSEnabled());
+ globalMipBias += DynamicResolutionHandler.instance.CalculateMipBias(scaledSize, nonScaledViewport, UpsampleHappensBeforePost());
lowResScale = DynamicResolutionHandler.instance.GetLowResMultiplier(lowResScale);
}
@@ -1160,7 +1177,7 @@ internal bool AllocateAmbientOcclusionHistoryBuffer(float scaleFactor)
{
ReleaseHistoryFrameRT((int)HDCameraFrameHistoryType.AmbientOcclusion);
- var aoAlloc = new AmbientOcclusionAllocator(scaleFactor);
+ var aoAlloc = new CustomHistoryAllocator(new Vector2(scaleFactor, scaleFactor), GraphicsFormat.R32_UInt, "AO Packed history");
AllocHistoryFrameRT((int)HDCameraFrameHistoryType.AmbientOcclusion, aoAlloc.Allocator, 2);
m_AmbientOcclusionResolutionScale = scaleFactor;
@@ -1176,28 +1193,13 @@ internal void AllocateScreenSpaceAccumulationHistoryBuffer(float scaleFactor)
{
ReleaseHistoryFrameRT((int)HDCameraFrameHistoryType.ScreenSpaceReflectionAccumulation);
- var ssrAlloc = new ScreenSpaceAccumulationAllocator(scaleFactor);
+ var ssrAlloc = new CustomHistoryAllocator(new Vector2(scaleFactor, scaleFactor), GraphicsFormat.R16G16B16A16_SFloat, "SSR_Accum Packed history");
AllocHistoryFrameRT((int)HDCameraFrameHistoryType.ScreenSpaceReflectionAccumulation, ssrAlloc.Allocator, 2);
m_ScreenSpaceAccumulationResolutionScale = scaleFactor;
}
}
- #region Private API
- // Workaround for the Allocator callback so it doesn't allocate memory because of the capture of scaleFactor.
- struct ScreenSpaceAllocator
- {
- float scaleFactor;
-
- public ScreenSpaceAllocator(float scaleFactor) => this.scaleFactor = scaleFactor;
-
- public RTHandle Allocator(string id, int frameIndex, RTHandleSystem rtHandleSystem)
- {
- return rtHandleSystem.Alloc(Vector2.one * scaleFactor, TextureXR.slices, filterMode: FilterMode.Point, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, useDynamicScale: true, enableRandomWrite: true, name: string.Format("{0}_ScreenSpaceReflection history_{1}", id, frameIndex));
- }
- }
- #endregion
-
internal void ReleaseHistoryFrameRT(int id)
{
m_HistoryRTSystem.ReleaseBuffer(id);
@@ -1295,33 +1297,31 @@ internal void UpdateCurrentSky(SkyManager skyManager)
internal void OverridePixelRect(Rect newPixelRect) => m_OverridePixelRect = newPixelRect;
internal void ResetPixelRect() => m_OverridePixelRect = null;
- #endregion
- #region Private API
// Workaround for the Allocator callback so it doesn't allocate memory because of the capture of scaleFactor.
- struct AmbientOcclusionAllocator
+ internal struct CustomHistoryAllocator
{
- float scaleFactor;
+ Vector2 scaleFactor;
+ GraphicsFormat format;
+ string name;
- public AmbientOcclusionAllocator(float scaleFactor) => this.scaleFactor = scaleFactor;
+ public CustomHistoryAllocator(Vector2 scaleFactor, GraphicsFormat format, string name)
+ {
+ this.scaleFactor = scaleFactor;
+ this.format = format;
+ this.name = name;
+ }
public RTHandle Allocator(string id, int frameIndex, RTHandleSystem rtHandleSystem)
{
- return rtHandleSystem.Alloc(Vector2.one * scaleFactor, TextureXR.slices, filterMode: FilterMode.Point, colorFormat: GraphicsFormat.R8G8B8A8_UNorm, dimension: TextureXR.dimension, useDynamicScale: true, enableRandomWrite: true, name: string.Format("{0}_AO Packed history_{1}", id, frameIndex));
+ return rtHandleSystem.Alloc(Vector2.one * scaleFactor, TextureXR.slices, filterMode: FilterMode.Point, colorFormat: format, dimension: TextureXR.dimension, useDynamicScale: true, enableRandomWrite: true, name: string.Format("{0}_{1}_{2}", id, name, frameIndex));
}
}
+ #endregion
- struct ScreenSpaceAccumulationAllocator
- {
- float scaleFactor;
- public ScreenSpaceAccumulationAllocator(float scaleFactor) => this.scaleFactor = scaleFactor;
+ #region Private API
- public RTHandle Allocator(string id, int frameIndex, RTHandleSystem rtHandleSystem)
- {
- return rtHandleSystem.Alloc(Vector2.one * scaleFactor, TextureXR.slices, filterMode: FilterMode.Point, colorFormat: GraphicsFormat.R16G16B16A16_SFloat, dimension: TextureXR.dimension, useDynamicScale: true, enableRandomWrite: true, name: string.Format("{0}_SSR_Accum Packed history_{1}", id, frameIndex));
- }
- }
static Dictionary<(Camera, int), HDCamera> s_Cameras = new Dictionary<(Camera, int), HDCamera>();
static List<(Camera, int)> s_Cleanup = new List<(Camera, int)>(); // Recycled to reduce GC pressure
@@ -1393,6 +1393,7 @@ void UpdateAntialiasing()
taaAntiFlicker = m_AdditionalCameraData.taaAntiFlicker;
taaAntiRinging = m_AdditionalCameraData.taaAntiHistoryRinging;
taaMotionVectorRejection = m_AdditionalCameraData.taaMotionVectorRejection;
+ taaBaseBlendFactor = m_AdditionalCameraData.taaBaseBlendFactor;
}
else
antialiasing = AntialiasingMode.None;
@@ -1404,6 +1405,10 @@ void UpdateAntialiasing()
taaJitter = Vector4.zero;
}
+ // If we have TAAU enabled, we need to force TAA to make it work.
+ if (IsTAAUEnabled())
+ antialiasing = AntialiasingMode.TemporalAntialiasing;
+
// When changing antialiasing mode to TemporalAA we must reset the history, otherwise we get one frame of garbage
if ((previousAntialiasing != antialiasing && antialiasing == AntialiasingMode.TemporalAntialiasing)
|| (m_PreviousClearColorMode != clearColorMode))
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs
index c75224bc7de..e716efe3e72 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs
@@ -66,10 +66,12 @@ private enum SMAAStage
HableCurve m_HableCurve;
//Viewport information
-
Vector2Int m_AfterDynamicResUpscaleRes = new Vector2Int(1, 1);
Vector2Int m_BeforeDynamicResUpscaleRes = new Vector2Int(1, 1);
+ // TAA
+ float[] taaSampleWeights = new float[9];
+
private enum ResolutionGroup
{
BeforeDynamicResUpscale,
@@ -339,20 +341,20 @@ void BeginPostProcessFrame(CommandBuffer cmd, HDCamera camera, HDRenderPipeline
// Prefetch frame settings - these aren't free to pull so we want to do it only once
// per frame
var frameSettings = camera.frameSettings;
- m_StopNaNFS = frameSettings.IsEnabled(FrameSettingsField.StopNaN);
- m_DepthOfFieldFS = frameSettings.IsEnabled(FrameSettingsField.DepthOfField);
- m_MotionBlurFS = frameSettings.IsEnabled(FrameSettingsField.MotionBlur);
- m_PaniniProjectionFS = frameSettings.IsEnabled(FrameSettingsField.PaniniProjection);
- m_BloomFS = frameSettings.IsEnabled(FrameSettingsField.Bloom);
- m_LensFlareDataDataDrivenFS = frameSettings.IsEnabled(FrameSettingsField.LensFlareDataDriven);
- m_ChromaticAberrationFS = frameSettings.IsEnabled(FrameSettingsField.ChromaticAberration);
- m_LensDistortionFS = frameSettings.IsEnabled(FrameSettingsField.LensDistortion);
- m_VignetteFS = frameSettings.IsEnabled(FrameSettingsField.Vignette);
- m_ColorGradingFS = frameSettings.IsEnabled(FrameSettingsField.ColorGrading);
- m_TonemappingFS = frameSettings.IsEnabled(FrameSettingsField.Tonemapping);
- m_FilmGrainFS = frameSettings.IsEnabled(FrameSettingsField.FilmGrain);
- m_DitheringFS = frameSettings.IsEnabled(FrameSettingsField.Dithering);
- m_AntialiasingFS = frameSettings.IsEnabled(FrameSettingsField.Antialiasing);
+ m_StopNaNFS = frameSettings.IsEnabled(FrameSettingsField.StopNaN) && m_PostProcessEnabled;
+ m_DepthOfFieldFS = frameSettings.IsEnabled(FrameSettingsField.DepthOfField) && m_PostProcessEnabled;
+ m_MotionBlurFS = frameSettings.IsEnabled(FrameSettingsField.MotionBlur) && m_PostProcessEnabled;
+ m_PaniniProjectionFS = frameSettings.IsEnabled(FrameSettingsField.PaniniProjection) && m_PostProcessEnabled;
+ m_BloomFS = frameSettings.IsEnabled(FrameSettingsField.Bloom) && m_PostProcessEnabled;
+ m_LensFlareDataDataDrivenFS = frameSettings.IsEnabled(FrameSettingsField.LensFlareDataDriven) && m_PostProcessEnabled;
+ m_ChromaticAberrationFS = frameSettings.IsEnabled(FrameSettingsField.ChromaticAberration) && m_PostProcessEnabled;
+ m_LensDistortionFS = frameSettings.IsEnabled(FrameSettingsField.LensDistortion) && m_PostProcessEnabled;
+ m_VignetteFS = frameSettings.IsEnabled(FrameSettingsField.Vignette) && m_PostProcessEnabled;
+ m_ColorGradingFS = frameSettings.IsEnabled(FrameSettingsField.ColorGrading) && m_PostProcessEnabled;
+ m_TonemappingFS = frameSettings.IsEnabled(FrameSettingsField.Tonemapping) && m_PostProcessEnabled;
+ m_FilmGrainFS = frameSettings.IsEnabled(FrameSettingsField.FilmGrain) && m_PostProcessEnabled;
+ m_DitheringFS = frameSettings.IsEnabled(FrameSettingsField.Dithering) && m_PostProcessEnabled;
+ m_AntialiasingFS = frameSettings.IsEnabled(FrameSettingsField.Antialiasing) || camera.IsTAAUEnabled();
// Override full screen anti-aliasing when doing path tracing (which is naturally anti-aliased already)
m_AntialiasingFS &= !m_PathTracing.enable.value;
@@ -460,7 +462,7 @@ TextureHandle RenderPostProcess(RenderGraph renderGraph,
// Note: whether a pass is really executed or not is generally inside the Do* functions.
// with few exceptions.
- if (m_PostProcessEnabled)
+ if (m_PostProcessEnabled || m_AntialiasingFS)
{
source = StopNaNsPass(renderGraph, hdCamera, source);
@@ -468,10 +470,7 @@ TextureHandle RenderPostProcess(RenderGraph renderGraph,
if (m_DLSSPassEnabled && DynamicResolutionHandler.instance.upsamplerSchedule == DynamicResolutionHandler.UpsamplerScheduleType.BeforePost)
{
- var upsamplignSceneResults = SceneUpsamplePass(renderGraph, hdCamera, source, depthBuffer, motionVectors);
- source = upsamplignSceneResults.color;
- depthBuffer = upsamplignSceneResults.depthBuffer;
- motionVectors = upsamplignSceneResults.motionVectors;
+ source = DoDLSSPass(renderGraph, hdCamera, inputColor, depthBuffer, motionVectors);
SetCurrentResolutionGroup(renderGraph, hdCamera, ResolutionGroup.AfterDynamicResUpscale);
}
@@ -482,7 +481,11 @@ TextureHandle RenderPostProcess(RenderGraph renderGraph,
{
if (hdCamera.antialiasing == HDAdditionalCameraData.AntialiasingMode.TemporalAntialiasing)
{
- source = DoTemporalAntialiasing(renderGraph, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, source, postDoF: false, "TAA Destination");
+ source = DoTemporalAntialiasing(renderGraph, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, source, prepassOutput.stencilBuffer, postDoF: false, "TAA Destination");
+ if (hdCamera.IsTAAUEnabled())
+ {
+ SetCurrentResolutionGroup(renderGraph, hdCamera, ResolutionGroup.AfterDynamicResUpscale);
+ }
RestoreNonjitteredMatrices(renderGraph, hdCamera);
}
else if (hdCamera.antialiasing == HDAdditionalCameraData.AntialiasingMode.SubpixelMorphologicalAntiAliasing)
@@ -493,7 +496,7 @@ TextureHandle RenderPostProcess(RenderGraph renderGraph,
source = CustomPostProcessPass(renderGraph, hdCamera, source, depthBuffer, normalBuffer, motionVectors, m_GlobalSettings.beforePostProcessCustomPostProcesses, HDProfileId.CustomPostProcessBeforePP);
- source = DepthOfFieldPass(renderGraph, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, source, depthMinMaxAvgMSAA);
+ source = DepthOfFieldPass(renderGraph, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, source, depthMinMaxAvgMSAA, prepassOutput.stencilBuffer);
// Motion blur after depth of field for aesthetic reasons (better to see motion
// blurred bokeh rather than out of focus motion blur)
@@ -531,6 +534,12 @@ TextureHandle RenderPostProcess(RenderGraph renderGraph,
FinalPass(renderGraph, hdCamera, afterPostProcessBuffer, alphaTexture, dest, source, m_BlueNoise, flipYInPostProcess);
+ bool currFrameIsTAAUpsampled = hdCamera.IsTAAUEnabled();
+ bool cameraWasRunningTAA = hdCamera.previousFrameWasTAAUpsampled;
+ hdCamera.previousFrameWasTAAUpsampled = currFrameIsTAAUpsampled;
+
+ hdCamera.resetPostProcessingHistory = (cameraWasRunningTAA != currFrameIsTAAUpsampled);
+
renderGraph.EndProfilingSampler(ProfilingSampler.Get(HDProfileId.PostProcessing));
// Reset the post process size if needed, so any passes that read this data during Render Graph execute will have the expected data
@@ -1380,38 +1389,24 @@ TextureHandle CustomPostProcessPass(RenderGraph renderGraph, HDCamera hdCamera,
#region Temporal Anti-aliasing
- void GrabTemporalAntialiasingHistoryTextures(HDCamera camera, out RTHandle previous, out RTHandle next, bool postDoF = false)
+ void GrabTemporalAntialiasingHistoryTextures(HDCamera camera, out RTHandle previous, out RTHandle next, Vector2 customScale, bool postDoF = false)
{
- RTHandle Allocator(string id, int frameIndex, RTHandleSystem rtHandleSystem)
- {
- return rtHandleSystem.Alloc(
- Vector2.one, TextureXR.slices, DepthBits.None, dimension: TextureXR.dimension,
- filterMode: FilterMode.Bilinear, colorFormat: GetPostprocessTextureFormat(),
- enableRandomWrite: true, useDynamicScale: true, name: $"{id} TAA History"
- );
- }
-
int historyType = (int)(postDoF ?
HDCameraFrameHistoryType.TemporalAntialiasingPostDoF : HDCameraFrameHistoryType.TemporalAntialiasing);
+ var taaAllocator = new HDCamera.CustomHistoryAllocator(customScale, GetPostprocessTextureFormat(), "TAA History");
+
next = camera.GetCurrentFrameRT(historyType)
- ?? camera.AllocHistoryFrameRT(historyType, Allocator, 2);
+ ?? camera.AllocHistoryFrameRT(historyType, taaAllocator.Allocator, 2);
previous = camera.GetPreviousFrameRT(historyType);
}
- void GrabVelocityMagnitudeHistoryTextures(HDCamera camera, out RTHandle previous, out RTHandle next)
+ void GrabVelocityMagnitudeHistoryTextures(HDCamera camera, Vector2 customScale, out RTHandle previous, out RTHandle next)
{
- RTHandle Allocator(string id, int frameIndex, RTHandleSystem rtHandleSystem)
- {
- return rtHandleSystem.Alloc(
- Vector2.one, TextureXR.slices, DepthBits.None, dimension: TextureXR.dimension,
- filterMode: FilterMode.Bilinear, colorFormat: GraphicsFormat.R16_SFloat,
- enableRandomWrite: true, useDynamicScale: true, name: $"{id} Velocity magnitude"
- );
- }
+ var taaAllocator = new HDCamera.CustomHistoryAllocator(customScale, GraphicsFormat.R16_SFloat, "Velocity magnitude");
next = camera.GetCurrentFrameRT((int)HDCameraFrameHistoryType.TAAMotionVectorMagnitude)
- ?? camera.AllocHistoryFrameRT((int)HDCameraFrameHistoryType.TAAMotionVectorMagnitude, Allocator, 2);
+ ?? camera.AllocHistoryFrameRT((int)HDCameraFrameHistoryType.TAAMotionVectorMagnitude, taaAllocator.Allocator, 2);
previous = camera.GetPreviousFrameRT((int)HDCameraFrameHistoryType.TAAMotionVectorMagnitude);
}
@@ -1430,13 +1425,21 @@ class TemporalAntiAliasingData
public bool resetPostProcessingHistory;
public Vector4 previousScreenSize;
public Vector4 taaParameters;
+ public Vector4 taaParameters1;
public Vector4 taaFilterWeights;
+ public Vector4 taaFilterWeights1;
public bool motionVectorRejection;
+ public Vector4 taauParams;
+ public Rect finalViewport;
+ public Rect prevFinalViewport;
+ public Vector4 taaScales;
+ public bool runsTAAU;
public TextureHandle source;
public TextureHandle destination;
public TextureHandle motionVecTexture;
public TextureHandle depthBuffer;
+ public TextureHandle stencilBuffer;
public TextureHandle depthMipChain;
public TextureHandle prevHistory;
public TextureHandle nextHistory;
@@ -1444,8 +1447,21 @@ class TemporalAntiAliasingData
public TextureHandle nextMVLen;
}
+ static readonly Vector2Int[] TAASampleOffsets = new Vector2Int[]
+ {
+ new Vector2Int(0, 0),
+ new Vector2Int(0, 1),
+ new Vector2Int(1, 0),
+ new Vector2Int(-1, 0),
+ new Vector2Int(0, -1),
+ new Vector2Int(-1, 1),
+ new Vector2Int(1, -1),
+ new Vector2Int(1, 1),
+ new Vector2Int(-1, -1)
+ };
+
void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, TemporalAntiAliasingData passData, HDCamera camera,
- TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle depthBufferMipChain, TextureHandle sourceTexture, bool postDoF, string outputName)
+ TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle depthBufferMipChain, TextureHandle sourceTexture, TextureHandle stencilTexture, bool postDoF, string outputName)
{
passData.resetPostProcessingHistory = camera.resetPostProcessingHistory;
@@ -1456,21 +1472,30 @@ void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, Tem
// The anti flicker becomes much more aggressive on higher values
float temporalContrastForMaxAntiFlicker = 0.7f - Mathf.Lerp(0.0f, 0.3f, Mathf.SmoothStep(0.5f, 1.0f, camera.taaAntiFlicker));
- passData.taaParameters = new Vector4(camera.taaHistorySharpening, postDoF ? maxAntiflicker : Mathf.Lerp(minAntiflicker, maxAntiflicker, camera.taaAntiFlicker), motionRejectionMultiplier, temporalContrastForMaxAntiFlicker);
+ bool TAAU = camera.IsTAAUEnabled();
+
+ passData.taaParameters = new Vector4(TAAU && postDoF ? 0.25f : camera.taaHistorySharpening, postDoF ? maxAntiflicker : Mathf.Lerp(minAntiflicker, maxAntiflicker, camera.taaAntiFlicker), motionRejectionMultiplier, temporalContrastForMaxAntiFlicker);
+
+ // Precompute weights used for the Blackman-Harris filter.
+ float totalWeight = 0;
+ for (int i = 0; i < 9; ++i)
+ {
+ float x = TAASampleOffsets[i].x - camera.taaJitter.x;
+ float y = TAASampleOffsets[i].y - camera.taaJitter.y;
+ float d = (x * x + y * y);
- // Precompute weights used for the Blackman-Harris filter. TODO: Note that these are slightly wrong as they don't take into account the jitter size. This needs to be fixed at some point.
- float crossWeights = Mathf.Exp(-2.29f * 2);
- float plusWeights = Mathf.Exp(-2.29f);
- float centerWeight = 1;
+ taaSampleWeights[i] = Mathf.Exp((-0.5f / (0.22f)) * d);
+ totalWeight += taaSampleWeights[i];
+ }
- float totalWeight = centerWeight + (4 * plusWeights);
- if (camera.TAAQuality == HDAdditionalCameraData.TAAQualityLevel.High)
+ for (int i = 0; i < 9; ++i)
{
- totalWeight += crossWeights * 4;
+ taaSampleWeights[i] /= totalWeight;
}
- // Weights will be x: central, y: plus neighbours, z: cross neighbours, w: total
- passData.taaFilterWeights = new Vector4(centerWeight / totalWeight, plusWeights / totalWeight, crossWeights / totalWeight, totalWeight);
+ passData.taaParameters1 = new Vector4(1.0f - camera.taaBaseBlendFactor, taaSampleWeights[0], (int)StencilUsage.ExcludeFromTAA, 0);
+ passData.taaFilterWeights = new Vector4(taaSampleWeights[1], taaSampleWeights[2], taaSampleWeights[3], taaSampleWeights[4]);
+ passData.taaFilterWeights1 = new Vector4(taaSampleWeights[5], taaSampleWeights[6], taaSampleWeights[7], taaSampleWeights[8]);
passData.temporalAAMaterial = m_TemporalAAMaterial;
passData.temporalAAMaterial.shaderKeywords = null;
@@ -1496,7 +1521,12 @@ void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, Tem
passData.temporalAAMaterial.EnableKeyword("ENABLE_MV_REJECTION");
}
- if (postDoF)
+ passData.runsTAAU = TAAU;
+ if (TAAU && !postDoF)
+ {
+ passData.temporalAAMaterial.EnableKeyword("TAA_UPSCALE");
+ }
+ else if (postDoF)
{
passData.temporalAAMaterial.EnableKeyword("POST_DOF");
}
@@ -1519,10 +1549,26 @@ void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, Tem
}
}
- GrabTemporalAntialiasingHistoryTextures(camera, out var prevHistory, out var nextHistory, postDoF);
+ if (TAAU)
+ {
+ passData.temporalAAMaterial.EnableKeyword("DIRECT_STENCIL_SAMPLE");
+ }
+
+ RTHandle prevHistory, nextHistory;
+ Vector2 historyScale = Vector2.one;
+
+ if (TAAU)
+ {
+ historyScale = new Vector2((float)camera.finalViewport.width / camera.actualWidth, (float)camera.finalViewport.height / camera.actualHeight);
+ }
+
+ GrabTemporalAntialiasingHistoryTextures(camera, out prevHistory, out nextHistory, historyScale, postDoF);
+
Vector2Int prevViewPort = camera.historyRTHandleProperties.previousViewportSize;
passData.previousScreenSize = new Vector4(prevViewPort.x, prevViewPort.y, 1.0f / prevViewPort.x, 1.0f / prevViewPort.y);
+ if (TAAU)
+ passData.previousScreenSize = new Vector4(camera.finalViewport.width, camera.finalViewport.height, 1.0f / camera.finalViewport.width, 1.0f / camera.finalViewport.height);
passData.source = builder.ReadTexture(sourceTexture);
passData.depthBuffer = builder.ReadTexture(depthBuffer);
@@ -1536,21 +1582,52 @@ void PrepareTAAPassData(RenderGraph renderGraph, RenderGraphBuilder builder, Tem
passData.nextHistory = builder.WriteTexture(renderGraph.ImportTexture(nextHistory));
// Note: In case we run TAA for a second time (post-dof), we can use the same velocity history (and not write the output)
- GrabVelocityMagnitudeHistoryTextures(camera, out var prevMVLen, out var nextMVLen);
+ RTHandle prevMVLen, nextMVLen;
+ GrabVelocityMagnitudeHistoryTextures(camera, historyScale, out prevMVLen, out nextMVLen);
+
passData.prevMVLen = builder.ReadTexture(renderGraph.ImportTexture(prevMVLen));
passData.nextMVLen = (!postDoF) ? builder.WriteTexture(renderGraph.ImportTexture(nextMVLen)) : TextureHandle.nullHandle;
- passData.destination = builder.WriteTexture(GetPostprocessOutputHandle(renderGraph, outputName));;
-
- TextureHandle dest = GetPostprocessOutputHandle(renderGraph, "Post-DoF TAA Destination");
+ TextureHandle dest;
+ if (TAAU && DynamicResolutionHandler.instance.HardwareDynamicResIsEnabled())
+ {
+ dest = GetPostprocessUpsampledOutputHandle(renderGraph, outputName);
+ }
+ else
+ {
+ dest = GetPostprocessOutputHandle(renderGraph, outputName);
+ }
passData.destination = builder.WriteTexture(dest);
+
+ bool needToUseCurrFrameSizeForHistory = camera.resetPostProcessingHistory || TAAU != camera.previousFrameWasTAAUpsampled;
+
+ passData.prevFinalViewport = (camera.prevFinalViewport.width < 0 || needToUseCurrFrameSizeForHistory) ? camera.finalViewport : camera.prevFinalViewport;
+ var mainRTScales = RTHandles.CalculateRatioAgainstMaxSize(camera.actualWidth, camera.actualHeight);
+
+ var historyRenderingViewport = TAAU ? new Vector2(passData.prevFinalViewport.width, passData.prevFinalViewport.height) :
+ (needToUseCurrFrameSizeForHistory ? RTHandles.rtHandleProperties.currentViewportSize : camera.historyRTHandleProperties.previousViewportSize);
+
+ if (TAAU && postDoF)
+ {
+ // We are already upsampled here.
+ mainRTScales = RTHandles.CalculateRatioAgainstMaxSize((int)camera.finalViewport.width, (int)camera.finalViewport.height);
+ }
+ Vector4 scales = new Vector4(historyRenderingViewport.x / prevHistory.rt.width, historyRenderingViewport.y / prevHistory.rt.height, mainRTScales.x, mainRTScales.y);
+ passData.taaScales = scales;
+
+ passData.finalViewport = camera.finalViewport;
+ var resScale = DynamicResolutionHandler.instance.GetCurrentScale();
+ float stdDev = 0.4f;
+ passData.taauParams = new Vector4(1.0f / (stdDev * stdDev), 1.0f / resScale, 0.5f / resScale, resScale);
+
+ passData.stencilBuffer = stencilTexture;
}
- TextureHandle DoTemporalAntialiasing(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle depthBufferMipChain, TextureHandle sourceTexture, bool postDoF, string outputName)
+ TextureHandle DoTemporalAntialiasing(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle depthBufferMipChain, TextureHandle sourceTexture, TextureHandle stencilBuffer, bool postDoF, string outputName)
{
using (var builder = renderGraph.AddRenderPass("Temporal Anti-Aliasing", out var passData, ProfilingSampler.Get(HDProfileId.TemporalAntialiasing)))
{
- PrepareTAAPassData(renderGraph, builder, passData, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, sourceTexture, postDoF, outputName);
+ PrepareTAAPassData(renderGraph, builder, passData, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, sourceTexture, stencilBuffer, postDoF, outputName);
builder.SetRenderFunc(
(TemporalAntiAliasingData data, RenderGraphContext ctx) =>
@@ -1558,16 +1635,30 @@ TextureHandle DoTemporalAntialiasing(RenderGraph renderGraph, HDCamera hdCamera,
RTHandle source = data.source;
RTHandle nextMVLenTexture = data.nextMVLen;
RTHandle prevMVLenTexture = data.prevMVLen;
+ RTHandle prevHistory = (RTHandle)data.prevHistory;
+ RTHandle nextHistory = (RTHandle)data.nextHistory;
+
+ const int taaPass = 0;
+ const int excludeTaaPass = 1;
+ const int taauPass = 2;
+ const int copyHistoryPass = 3;
if (data.resetPostProcessingHistory)
{
var historyMpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock();
- historyMpb.SetTexture(HDShaderIDs._BlitTexture, source);
- var rtScaleSource = source.rtHandleProperties.rtHandleScale;
- historyMpb.SetVector(HDShaderIDs._BlitScaleBias, new Vector4(rtScaleSource.x, rtScaleSource.y, 0.0f, 0.0f));
- historyMpb.SetFloat(HDShaderIDs._BlitMipLevel, 0);
- HDUtils.DrawFullScreen(ctx.cmd, HDUtils.GetBlitMaterial(source.rt.dimension), data.prevHistory, historyMpb, 0);
- HDUtils.DrawFullScreen(ctx.cmd, HDUtils.GetBlitMaterial(source.rt.dimension), data.nextHistory, historyMpb, 0);
+ historyMpb.SetTexture(HDShaderIDs._InputTexture, source);
+ historyMpb.SetVector(HDShaderIDs._TaaScales, data.taaScales);
+ if (data.runsTAAU)
+ {
+ Rect r = data.finalViewport;
+ HDUtils.DrawFullScreen(ctx.cmd, r, data.temporalAAMaterial, data.prevHistory, historyMpb, copyHistoryPass);
+ HDUtils.DrawFullScreen(ctx.cmd, r, data.temporalAAMaterial, data.nextHistory, historyMpb, copyHistoryPass);
+ }
+ else
+ {
+ HDUtils.DrawFullScreen(ctx.cmd, data.temporalAAMaterial, data.prevHistory, historyMpb, copyHistoryPass);
+ HDUtils.DrawFullScreen(ctx.cmd, data.temporalAAMaterial, data.nextHistory, historyMpb, copyHistoryPass);
+ }
}
var mpb = ctx.renderGraphPool.GetTempMaterialPropertyBlock();
@@ -1586,18 +1677,47 @@ TextureHandle DoTemporalAntialiasing(RenderGraph renderGraph, HDCamera hdCamera,
var taaHistorySize = data.previousScreenSize;
mpb.SetVector(HDShaderIDs._TaaPostParameters, data.taaParameters);
+ mpb.SetVector(HDShaderIDs._TaaPostParameters1, data.taaParameters1);
mpb.SetVector(HDShaderIDs._TaaHistorySize, taaHistorySize);
mpb.SetVector(HDShaderIDs._TaaFilterWeights, data.taaFilterWeights);
+ mpb.SetVector(HDShaderIDs._TaaFilterWeights1, data.taaFilterWeights1);
+ mpb.SetVector(HDShaderIDs._TaauParameters, data.taauParams);
+ mpb.SetVector(HDShaderIDs._TaaScales, data.taaScales);
+
+ if (data.runsTAAU)
+ {
+ CoreUtils.SetRenderTarget(ctx.cmd, data.destination);
+ }
+ else
+ {
+ CoreUtils.SetRenderTarget(ctx.cmd, data.destination, data.depthBuffer);
+ }
- CoreUtils.SetRenderTarget(ctx.cmd, data.destination, data.depthBuffer);
ctx.cmd.SetRandomWriteTarget(1, data.nextHistory);
if (nextMVLenTexture != null && data.motionVectorRejection)
{
ctx.cmd.SetRandomWriteTarget(2, nextMVLenTexture);
}
- ctx.cmd.DrawProcedural(Matrix4x4.identity, data.temporalAAMaterial, 0, MeshTopology.Triangles, 3, 1, mpb);
- ctx.cmd.DrawProcedural(Matrix4x4.identity, data.temporalAAMaterial, 1, MeshTopology.Triangles, 3, 1, mpb);
+ Rect rect;
+ if (data.runsTAAU)
+ {
+ rect = data.finalViewport;
+
+ RTHandle stencil = data.stencilBuffer;
+ if (stencil.rt.stencilFormat == GraphicsFormat.None) // We are accessing MSAA resolved version and not the depth stencil buffer directly.
+ mpb.SetTexture(HDShaderIDs._StencilTexture, stencil);
+ else
+ mpb.SetTexture(HDShaderIDs._StencilTexture, stencil, RenderTextureSubElement.Stencil);
+
+
+ HDUtils.DrawFullScreen(ctx.cmd, rect, data.temporalAAMaterial, data.destination, mpb, taauPass);
+ }
+ else
+ {
+ ctx.cmd.DrawProcedural(Matrix4x4.identity, data.temporalAAMaterial, taaPass, MeshTopology.Triangles, 3, 1, mpb);
+ ctx.cmd.DrawProcedural(Matrix4x4.identity, data.temporalAAMaterial, excludeTaaPass, MeshTopology.Triangles, 3, 1, mpb);
+ }
ctx.cmd.ClearRandomWriteTargets();
});
@@ -2635,7 +2755,7 @@ class DepthofFieldData
public bool taaEnabled;
}
- TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle depthBufferMipChain, TextureHandle source, TextureHandle depthMinMaxAvgMSAA)
+ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle depthBuffer, TextureHandle motionVectors, TextureHandle depthBufferMipChain, TextureHandle source, TextureHandle depthMinMaxAvgMSAA, TextureHandle stencilTexture)
{
bool postDoFTAAEnabled = false;
bool isSceneView = hdCamera.camera.cameraType == CameraType.SceneView;
@@ -2808,10 +2928,10 @@ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, Textu
passData.pingFarRGB = builder.CreateTransientTexture(GetPostprocessOutputHandle(renderGraph, "DoF Source Pyramid", GetPostprocessTextureFormat(), true));
float scaleFactor = 1.0f / passData.parameters.minMaxCoCTileSize;
- passData.pingNearRGB = builder.CreateTransientTexture(new TextureDesc(Vector2.one * scaleFactor, true, true)
+ passData.pingNearRGB = builder.CreateTransientTexture(new TextureDesc(Vector2.one * scaleFactor, IsDynamicResUpscaleTargetEnabled(), true)
{ colorFormat = GraphicsFormat.R16G16B16A16_SFloat, useMipMap = false, enableRandomWrite = true, name = "CoC Min Max Tiles" });
- passData.pongNearRGB = builder.CreateTransientTexture(new TextureDesc(Vector2.one * scaleFactor, true, true)
+ passData.pongNearRGB = builder.CreateTransientTexture(new TextureDesc(Vector2.one * scaleFactor, IsDynamicResUpscaleTargetEnabled(), true)
{ colorFormat = GraphicsFormat.R16G16B16A16_SFloat, useMipMap = false, enableRandomWrite = true, name = "CoC Min Max Tiles" });
builder.SetRenderFunc(
@@ -2828,7 +2948,7 @@ TextureHandle DepthOfFieldPass(RenderGraph renderGraph, HDCamera hdCamera, Textu
// When physically based DoF is enabled, TAA runs two times, first to stabilize the color buffer before DoF and then after DoF to accumulate more aperture samples
if (taaEnabled && m_DepthOfField.physicallyBased)
{
- source = DoTemporalAntialiasing(renderGraph, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, source, postDoF: true, "Post-DoF TAA Destination");
+ source = DoTemporalAntialiasing(renderGraph, hdCamera, depthBuffer, motionVectors, depthBufferMipChain, source, stencilTexture, postDoF: true, "Post-DoF TAA Destination");
hdCamera.dofHistoryIsValid = true;
postDoFTAAEnabled = true;
}
@@ -3301,145 +3421,6 @@ TextureHandle MotionBlurPass(RenderGraph renderGraph, HDCamera hdCamera, Texture
#region Upsample Scene
- class SceneUpsamplingData
- {
- public struct Textures
- {
- public TextureHandle color;
- public TextureHandle depthBuffer;
- public TextureHandle motionVectors;
- }
- public UpsampleSceneParameters parameters;
- public bool upsampleColor;
- public Textures inputTextures = new Textures();
- public Textures outputTextures = new Textures();
- }
-
- struct UpsampleSceneParameters
- {
- public ComputeShader upsampleSceneCS;
- public int mainUpsampleKernel;
- public int viewCount;
- public float width;
- public float height;
- }
-
- UpsampleSceneParameters PrepareUpsampleSceneParameters(HDCamera camera)
- {
- var parameters = new UpsampleSceneParameters();
-
- parameters.upsampleSceneCS = defaultResources.shaders.upsampleSceneCS;
- parameters.mainUpsampleKernel = parameters.upsampleSceneCS.FindKernel("MainUpsample");
- parameters.viewCount = camera.viewCount;
- parameters.width = camera.finalViewport.width;
- parameters.height = camera.finalViewport.height;
- return parameters;
- }
-
- static void DoUpsampleScene(
- UpsampleSceneParameters parameters, CommandBuffer cmd,
- RTHandle sourceColor, RTHandle sourceDepth, RTHandle sourceMotionVectors,
- RTHandle outputColor, RTHandle outputDepth, RTHandle outputMotionVectors)
- {
- var mainKernel = parameters.mainUpsampleKernel;
- if (mainKernel < 0)
- throw new Exception(String.Format(
- "Invalid kernel specified for UpsampleSceneCS"));
-
- var cs = parameters.upsampleSceneCS;
- if (sourceColor != null)
- cmd.SetComputeTextureParam(cs, mainKernel, HDShaderIDs._InputTexture, sourceColor);
- cmd.SetComputeTextureParam(cs, mainKernel, HDShaderIDs._InputDepth, sourceDepth);
- cmd.SetComputeTextureParam(cs, mainKernel, HDShaderIDs._CameraMotionVectorsTexture, sourceMotionVectors);
-
- cmd.SetComputeTextureParam(cs, mainKernel, HDShaderIDs._OutputTexture, outputColor);
- cmd.SetComputeTextureParam(cs, mainKernel, HDShaderIDs._OutputDepthTexture, outputDepth);
- cmd.SetComputeTextureParam(cs, mainKernel, HDShaderIDs._OutputMotionVectorTexture, outputMotionVectors);
-
- cmd.SetComputeVectorParam(cs, HDShaderIDs._ViewPortSize, new Vector4(parameters.width, parameters.height, 1.0f / parameters.width, 1.0f / parameters.height));
-
- const int xThreads = 8;
- const int yThreads = 4;
- int dispatchX = HDUtils.DivRoundUp(Mathf.RoundToInt(parameters.width), xThreads);
- int dispatchY = HDUtils.DivRoundUp(Mathf.RoundToInt(parameters.height), yThreads);
- cmd.DispatchCompute(cs, mainKernel, dispatchX, dispatchY, parameters.viewCount);
- }
-
- SceneUpsamplingData.Textures SceneUpsamplePass(RenderGraph renderGraph, HDCamera hdCamera, TextureHandle inputColor, TextureHandle inputDepth, TextureHandle inputMotionVectors)
- {
- SceneUpsamplingData.Textures outTextures;
-
- TextureHandle upsampledColor = TextureHandle.nullHandle;
- bool upsampleColorInScenePass = true;
- if (m_DLSSPassEnabled)
- {
- upsampledColor = DoDLSSPass(renderGraph, hdCamera, inputColor, inputDepth, inputMotionVectors);
- upsampleColorInScenePass = false;
- }
-
- using (var builder = renderGraph.AddRenderPass("Scene Upsampling", out var passData, ProfilingSampler.Get(HDProfileId.SceneUpsampling)))
- {
- passData.parameters = PrepareUpsampleSceneParameters(hdCamera);
- passData.upsampleColor = upsampleColorInScenePass;
-
- if (passData.upsampleColor)
- passData.inputTextures.color = builder.ReadTexture(inputColor);
-
- passData.inputTextures.depthBuffer = builder.ReadTexture(inputDepth);
- passData.inputTextures.motionVectors = builder.ReadTexture(inputMotionVectors);
-
- if (passData.upsampleColor)
- {
- passData.outputTextures.color = renderGraph.CreateTexture(new TextureDesc(Vector2.one, false, true)
- {
- name = "Resolved Color Buffer",
- colorFormat = renderGraph.GetTextureDesc(inputColor).colorFormat,
- useMipMap = false,
- enableRandomWrite = true
- });
-
- passData.outputTextures.color = builder.WriteTexture(passData.outputTextures.color);
- }
- else
- {
- passData.outputTextures.color = upsampledColor;
- }
-
- passData.outputTextures.depthBuffer = renderGraph.CreateTexture(new TextureDesc(Vector2.one, false, true)
- {
- name = "Resolved Depth Buffer",
- colorFormat = GraphicsFormat.R32_SFloat,
- useMipMap = false,
- enableRandomWrite = true
- });
- passData.outputTextures.depthBuffer = builder.WriteTexture(passData.outputTextures.depthBuffer);
-
- passData.outputTextures.motionVectors = renderGraph.CreateTexture(new TextureDesc(Vector2.one, false, true)
- {
- name = "Resolved Motion Vectors",
- colorFormat = renderGraph.GetTextureDesc(inputMotionVectors).colorFormat,
- useMipMap = false,
- enableRandomWrite = true
- });
- passData.outputTextures.motionVectors = builder.WriteTexture(passData.outputTextures.motionVectors);
-
- builder.SetRenderFunc(
- (SceneUpsamplingData data, RenderGraphContext ctx) =>
- {
- DoUpsampleScene(
- data.parameters, ctx.cmd,
- data.upsampleColor ? (RTHandle)data.inputTextures.color : null,
- data.inputTextures.depthBuffer,
- data.inputTextures.motionVectors,
- data.outputTextures.color,
- data.outputTextures.depthBuffer,
- data.outputTextures.motionVectors);
- });
- outTextures = passData.outputTextures;
- }
- return outTextures;
- }
-
private void SetCurrentResolutionGroup(RenderGraph renderGraph, HDCamera camera, ResolutionGroup newResGroup)
{
if (resGroup == newResGroup)
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs
index 5ac9282b2e3..4702767ab6f 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs
@@ -1188,7 +1188,7 @@ protected override void Render(ScriptableRenderContext renderContext, Camera[] c
}
dynResHandler.SetCurrentCameraRequest(cameraRequestedDynamicRes);
- dynResHandler.runUpscalerFilterOnFullResolution = hdCam != null && hdCam.cameraCanRenderDLSS;
+ dynResHandler.runUpscalerFilterOnFullResolution = (hdCam != null && hdCam.cameraCanRenderDLSS) || DynamicResolutionHandler.instance.filter == DynamicResUpscaleFilter.TAAU;
RTHandles.SetHardwareDynamicResolutionState(dynResHandler.HardwareDynamicResIsEnabled());
diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDStringConstants.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDStringConstants.cs
index 512e1ee6f9b..4378d22a22d 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDStringConstants.cs
+++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDStringConstants.cs
@@ -281,8 +281,12 @@ static class HDShaderIDs
public static readonly int _TaaJitterStrength = Shader.PropertyToID("_TaaJitterStrength");
public static readonly int _TaaPostParameters = Shader.PropertyToID("_TaaPostParameters");
+ public static readonly int _TaaPostParameters1 = Shader.PropertyToID("_TaaPostParameters1");
public static readonly int _TaaHistorySize = Shader.PropertyToID("_TaaHistorySize");
public static readonly int _TaaFilterWeights = Shader.PropertyToID("_TaaFilterWeights");
+ public static readonly int _TaaFilterWeights1 = Shader.PropertyToID("_TaaFilterWeights1");
+ public static readonly int _TaauParameters = Shader.PropertyToID("_TaauParameters");
+ public static readonly int _TaaScales = Shader.PropertyToID("_TaaScales");
public static readonly int _WorldSpaceCameraPos1 = Shader.PropertyToID("_WorldSpaceCameraPos1");
public static readonly int _ViewMatrix1 = Shader.PropertyToID("_ViewMatrix1");
diff --git a/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl b/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl
index 1d4aa728324..aec44d3ec73 100644
--- a/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl
+++ b/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl
@@ -407,7 +407,7 @@ float2 ClampAndScaleUVForBilinearPostProcessTexture(float2 UV, float2 texelSize)
return ClampAndScaleUV(UV, texelSize, 0.5f, _RTHandlePostProcessScale.xy);
}
-// This is assuming an upsampled texture used in post processing, with original screen size and a half a texel offset for the clamping.
+// This is assuming an upsampled texture used in post processing, with original screen size and numberOfTexels offset for the clamping.
float2 ClampAndScaleUVPostProcessTexture(float2 UV, float2 texelSize, float numberOfTexels)
{
return ClampAndScaleUV(UV, texelSize, numberOfTexels, _RTHandlePostProcessScale.xy);
@@ -423,6 +423,21 @@ float2 ClampAndScaleUVPostProcessTextureForPoint(float2 UV)
return min(UV, 1.0f) * _RTHandlePostProcessScale.xy;
}
+// IMPORTANT: This is expecting the corner not the center.
+float2 FromOutputPosSSToPreupsampleUV(int2 posSS)
+{
+ return (posSS + 0.5f) * _PostProcessScreenSize.zw;
+}
+
+// IMPORTANT: This is expecting the corner not the center.
+float2 FromOutputPosSSToPreupsamplePosSS(float2 posSS)
+{
+ float2 uv = FromOutputPosSSToPreupsampleUV(posSS);
+ return floor(uv * _ScreenSize.xy);
+}
+
+
+
uint Get1DAddressFromPixelCoord(uint2 pixCoord, uint2 screenSize, uint eye)
{
// We need to shift the index to look up the right eye info.
diff --git a/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Hardware.asset b/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Hardware.asset
new file mode 100644
index 00000000000..e8aceb345d4
--- /dev/null
+++ b/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Hardware.asset
@@ -0,0 +1,464 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3}
+ m_Name: HDRP_Test_Def_TAAU_Hardware
+ m_EditorClassIdentifier:
+ m_RenderPipelineSettings:
+ supportShadowMask: 1
+ supportSSR: 0
+ supportSSRTransparent: 0
+ supportSSAO: 1
+ supportSSGI: 0
+ supportSubsurfaceScattering: 1
+ sssSampleBudget:
+ m_Values: 140000002800000050000000
+ m_SchemaId:
+ m_Id: With3Levels
+ supportVolumetrics: 1
+ supportVolumetricClouds: 0
+ supportLightLayers: 0
+ supportDistortion: 1
+ supportTransparentBackface: 1
+ supportTransparentDepthPrepass: 1
+ supportTransparentDepthPostpass: 1
+ colorBufferFormat: 74
+ supportCustomPass: 1
+ customBufferFormat: 12
+ supportedLitShaderMode: 2
+ planarReflectionResolution:
+ m_Values: 000100000004000000040000
+ m_SchemaId:
+ m_Id: With3Levels
+ supportDecals: 1
+ supportDecalLayers: 0
+ supportSurfaceGradient: 0
+ decalNormalBufferHP: 0
+ msaaSampleCount: 1
+ supportMotionVectors: 1
+ supportRuntimeAOVAPI: 0
+ supportDitheringCrossFade: 1
+ supportTerrainHole: 0
+ supportProbeVolume: 0
+ probeVolumeMemoryBudget: 1024
+ probeVolumeSHBands: 1
+ supportRayTracing: 0
+ supportedRayTracingMode: 3
+ lightLoopSettings:
+ cookieAtlasSize: 2048
+ cookieFormat: 74
+ cookieAtlasLastValidMip: 0
+ cookieTexArraySize: 1
+ planarReflectionAtlasSize: 1024
+ reflectionProbeCacheSize: 64
+ reflectionCubemapSize: 256
+ reflectionCacheCompressed: 0
+ reflectionProbeFormat: 74
+ skyReflectionSize: 256
+ skyLightingOverrideLayerMask:
+ serializedVersion: 2
+ m_Bits: 0
+ supportFabricConvolution: 0
+ maxDirectionalLightsOnScreen: 16
+ maxPunctualLightsOnScreen: 512
+ maxAreaLightsOnScreen: 64
+ maxEnvLightsOnScreen: 64
+ maxDecalsOnScreen: 512
+ maxPlanarReflectionOnScreen: 16
+ maxLightsPerClusterCell: 8
+ maxLocalVolumetricFogSize: 32
+ maxLocalVolumetricFogOnScreen: 64
+ hdShadowInitParams:
+ maxShadowRequests: 128
+ directionalShadowsDepthBits: 32
+ shadowFilteringQuality: 1
+ punctualLightShadowAtlas:
+ shadowAtlasResolution: 4096
+ shadowAtlasDepthBits: 32
+ useDynamicViewportRescale: 1
+ areaLightShadowAtlas:
+ shadowAtlasResolution: 4096
+ shadowAtlasDepthBits: 32
+ useDynamicViewportRescale: 1
+ cachedPunctualLightShadowAtlas: 2048
+ cachedAreaLightShadowAtlas: 1024
+ shadowResolutionDirectional:
+ m_Values: 00010000000200000004000000080000
+ m_SchemaId:
+ m_Id: With4Levels
+ shadowResolutionPunctual:
+ m_Values: 00010000000200000004000000080000
+ m_SchemaId:
+ m_Id: With4Levels
+ shadowResolutionArea:
+ m_Values: 00010000000200000004000000080000
+ m_SchemaId:
+ m_Id: With4Levels
+ maxDirectionalShadowMapResolution: 2048
+ maxPunctualShadowMapResolution: 2048
+ maxAreaShadowMapResolution: 2048
+ supportScreenSpaceShadows: 0
+ maxScreenSpaceShadowSlots: 4
+ screenSpaceShadowBufferFormat: 48
+ decalSettings:
+ drawDistance: 1000
+ atlasWidth: 4096
+ atlasHeight: 4096
+ perChannelMask: 0
+ postProcessSettings:
+ m_LutSize: 32
+ lutFormat: 48
+ bufferFormat: 74
+ dynamicResolutionSettings:
+ enabled: 1
+ useMipBias: 1
+ enableDLSS: 0
+ DLSSPerfQualitySetting: 0
+ DLSSUseOptimalSettings: 1
+ DLSSSharpness: 0
+ maxPercentage: 100
+ minPercentage: 100
+ dynResType: 1
+ upsampleFilter: 5
+ forceResolution: 1
+ forcedPercentage: 50
+ lowResTransparencyMinimumThreshold: 0
+ lowresTransparentSettings:
+ enabled: 1
+ checkerboardDepthBuffer: 1
+ upsampleType: 1
+ xrSettings:
+ singlePass: 1
+ occlusionMesh: 1
+ cameraJitter: 0
+ postProcessQualitySettings:
+ NearBlurSampleCount: 030000000500000008000000
+ NearBlurMaxRadius:
+ - 2
+ - 4
+ - 7
+ FarBlurSampleCount: 04000000070000000e000000
+ FarBlurMaxRadius:
+ - 5
+ - 8
+ - 13
+ DoFResolution: 040000000200000001000000
+ DoFHighQualityFiltering: 000101
+ DoFPhysicallyBased: 000000
+ MotionBlurSampleCount: 04000000080000000c000000
+ BloomRes: 040000000200000002000000
+ BloomHighQualityFiltering: 000101
+ BloomHighQualityPrefiltering: 000001
+ ChromaticAberrationMaxSamples: 03000000060000000c000000
+ lightSettings:
+ useContactShadow:
+ m_Values: 000001
+ m_SchemaId:
+ m_Id: With3Levels
+ maximumLODLevel:
+ m_Values: 000000000000000000000000
+ m_SchemaId:
+ m_Id: With3Levels
+ lodBias:
+ m_Values:
+ - 1
+ - 1
+ - 1
+ m_SchemaId:
+ m_Id: With3Levels
+ lightingQualitySettings:
+ AOStepCount: 040000000600000010000000
+ AOFullRes: 000001
+ AOMaximumRadiusPixels: 200000002800000050000000
+ AOBilateralUpsample: 000101
+ AODirectionCount: 010000000200000004000000
+ ContactShadowSampleCount: 060000000a00000010000000
+ SSRMaxRaySteps: 100000002000000040000000
+ SSGIRaySteps: 200000004000000080000000
+ SSGIFilterRadius: 100000000e0000000c000000
+ RTAORayLength:
+ - 0.5
+ - 3
+ - 20
+ RTAOSampleCount: 010000000200000008000000
+ RTAODenoise: 010101
+ RTAODenoiserRadius:
+ - 0.25
+ - 0.5
+ - 0.65
+ RTGIRayLength:
+ - 50
+ - 50
+ - 50
+ RTGIFullResolution: 000001
+ RTGIClampValue:
+ - 0.5
+ - 0.8
+ - 1.5
+ RTGIUpScaleRadius: 040000000400000004000000
+ RTGIRaySteps: 200000003000000040000000
+ RTGIDenoise: 010101
+ RTGIHalfResDenoise: 010000
+ RTGIDenoiserRadius:
+ - 0.75
+ - 0.5
+ - 0.25
+ RTGISecondDenoise: 010101
+ RTRMinSmoothness:
+ - 0.6
+ - 0.4
+ - 0
+ RTRSmoothnessFadeStart:
+ - 0.7
+ - 0.5
+ - 0
+ RTRRayLength:
+ - 50
+ - 50
+ - 50
+ RTRClampValue:
+ - 0.8
+ - 1
+ - 1.2
+ RTRFullResolution: 000001
+ RTRRayMaxIterations: 200000003000000040000000
+ RTRDenoise: 010101
+ RTRDenoiserRadius: 080000000c00000010000000
+ RTRSmoothDenoising: 010000
+ Fog_ControlMode: 000000000000000000000000
+ Fog_Budget:
+ - 0.166
+ - 0.33
+ - 0.666
+ Fog_DepthRatio:
+ - 0.666
+ - 0.666
+ - 0.5
+ m_ObsoleteLightLayerName0:
+ m_ObsoleteLightLayerName1:
+ m_ObsoleteLightLayerName2:
+ m_ObsoleteLightLayerName3:
+ m_ObsoleteLightLayerName4:
+ m_ObsoleteLightLayerName5:
+ m_ObsoleteLightLayerName6:
+ m_ObsoleteLightLayerName7:
+ m_ObsoleteDecalLayerName0:
+ m_ObsoleteDecalLayerName1:
+ m_ObsoleteDecalLayerName2:
+ m_ObsoleteDecalLayerName3:
+ m_ObsoleteDecalLayerName4:
+ m_ObsoleteDecalLayerName5:
+ m_ObsoleteDecalLayerName6:
+ m_ObsoleteDecalLayerName7:
+ m_ObsoleteSupportRuntimeDebugDisplay: 0
+ allowShaderVariantStripping: 1
+ enableSRPBatcher: 1
+ availableMaterialQualityLevels: -1
+ m_DefaultMaterialQualityLevel: 4
+ diffusionProfileSettings: {fileID: 0}
+ virtualTexturingSettings:
+ streamingCpuCacheSizeInMegaBytes: 256
+ streamingGpuCacheSettings:
+ - format: 0
+ sizeInMegaBytes: 128
+ m_UseRenderGraph: 1
+ m_Version: 20
+ m_ObsoleteFrameSettings:
+ overrides: 0
+ enableShadow: 0
+ enableContactShadows: 0
+ enableShadowMask: 0
+ enableSSR: 0
+ enableSSAO: 0
+ enableSubsurfaceScattering: 0
+ enableTransmission: 0
+ enableAtmosphericScattering: 0
+ enableVolumetrics: 0
+ enableReprojectionForVolumetrics: 0
+ enableLightLayers: 0
+ enableExposureControl: 1
+ diffuseGlobalDimmer: 0
+ specularGlobalDimmer: 0
+ shaderLitMode: 0
+ enableDepthPrepassWithDeferredRendering: 0
+ enableTransparentPrepass: 0
+ enableMotionVectors: 0
+ enableObjectMotionVectors: 0
+ enableDecals: 0
+ enableRoughRefraction: 0
+ enableTransparentPostpass: 0
+ enableDistortion: 0
+ enablePostprocess: 0
+ enableOpaqueObjects: 0
+ enableTransparentObjects: 0
+ enableRealtimePlanarReflection: 0
+ enableMSAA: 0
+ enableAsyncCompute: 0
+ runLightListAsync: 0
+ runSSRAsync: 0
+ runSSAOAsync: 0
+ runContactShadowsAsync: 0
+ runVolumeVoxelizationAsync: 0
+ lightLoopSettings:
+ overrides: 0
+ enableDeferredTileAndCluster: 0
+ enableComputeLightEvaluation: 0
+ enableComputeLightVariants: 0
+ enableComputeMaterialVariants: 0
+ enableFptlForForwardOpaque: 0
+ enableBigTilePrepass: 0
+ isFptlEnabled: 0
+ m_ObsoleteBakedOrCustomReflectionFrameSettings:
+ overrides: 0
+ enableShadow: 0
+ enableContactShadows: 0
+ enableShadowMask: 0
+ enableSSR: 0
+ enableSSAO: 0
+ enableSubsurfaceScattering: 0
+ enableTransmission: 0
+ enableAtmosphericScattering: 0
+ enableVolumetrics: 0
+ enableReprojectionForVolumetrics: 0
+ enableLightLayers: 0
+ enableExposureControl: 1
+ diffuseGlobalDimmer: 0
+ specularGlobalDimmer: 0
+ shaderLitMode: 0
+ enableDepthPrepassWithDeferredRendering: 0
+ enableTransparentPrepass: 0
+ enableMotionVectors: 0
+ enableObjectMotionVectors: 0
+ enableDecals: 0
+ enableRoughRefraction: 0
+ enableTransparentPostpass: 0
+ enableDistortion: 0
+ enablePostprocess: 0
+ enableOpaqueObjects: 0
+ enableTransparentObjects: 0
+ enableRealtimePlanarReflection: 0
+ enableMSAA: 0
+ enableAsyncCompute: 0
+ runLightListAsync: 0
+ runSSRAsync: 0
+ runSSAOAsync: 0
+ runContactShadowsAsync: 0
+ runVolumeVoxelizationAsync: 0
+ lightLoopSettings:
+ overrides: 0
+ enableDeferredTileAndCluster: 0
+ enableComputeLightEvaluation: 0
+ enableComputeLightVariants: 0
+ enableComputeMaterialVariants: 0
+ enableFptlForForwardOpaque: 0
+ enableBigTilePrepass: 0
+ isFptlEnabled: 0
+ m_ObsoleteRealtimeReflectionFrameSettings:
+ overrides: 0
+ enableShadow: 0
+ enableContactShadows: 0
+ enableShadowMask: 0
+ enableSSR: 0
+ enableSSAO: 0
+ enableSubsurfaceScattering: 0
+ enableTransmission: 0
+ enableAtmosphericScattering: 0
+ enableVolumetrics: 0
+ enableReprojectionForVolumetrics: 0
+ enableLightLayers: 0
+ enableExposureControl: 1
+ diffuseGlobalDimmer: 0
+ specularGlobalDimmer: 0
+ shaderLitMode: 0
+ enableDepthPrepassWithDeferredRendering: 0
+ enableTransparentPrepass: 0
+ enableMotionVectors: 0
+ enableObjectMotionVectors: 0
+ enableDecals: 0
+ enableRoughRefraction: 0
+ enableTransparentPostpass: 0
+ enableDistortion: 0
+ enablePostprocess: 0
+ enableOpaqueObjects: 0
+ enableTransparentObjects: 0
+ enableRealtimePlanarReflection: 0
+ enableMSAA: 0
+ enableAsyncCompute: 0
+ runLightListAsync: 0
+ runSSRAsync: 0
+ runSSAOAsync: 0
+ runContactShadowsAsync: 0
+ runVolumeVoxelizationAsync: 0
+ lightLoopSettings:
+ overrides: 0
+ enableDeferredTileAndCluster: 0
+ enableComputeLightEvaluation: 0
+ enableComputeLightVariants: 0
+ enableComputeMaterialVariants: 0
+ enableFptlForForwardOpaque: 0
+ enableBigTilePrepass: 0
+ isFptlEnabled: 0
+ m_ObsoleteDefaultVolumeProfile: {fileID: 0}
+ m_ObsoleteDefaultLookDevProfile: {fileID: 0}
+ m_ObsoleteFrameSettingsMovedToDefaultSettings:
+ bitDatas:
+ data1: 0
+ data2: 0
+ lodBias: 0
+ lodBiasMode: 0
+ lodBiasQualityLevel: 0
+ maximumLODLevel: 0
+ maximumLODLevelMode: 0
+ maximumLODLevelQualityLevel: 0
+ sssQualityMode: 0
+ sssQualityLevel: 0
+ sssCustomSampleBudget: 0
+ msaaMode: 0
+ materialQuality: 0
+ m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings:
+ bitDatas:
+ data1: 0
+ data2: 0
+ lodBias: 0
+ lodBiasMode: 0
+ lodBiasQualityLevel: 0
+ maximumLODLevel: 0
+ maximumLODLevelMode: 0
+ maximumLODLevelQualityLevel: 0
+ sssQualityMode: 0
+ sssQualityLevel: 0
+ sssCustomSampleBudget: 0
+ msaaMode: 0
+ materialQuality: 0
+ m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings:
+ bitDatas:
+ data1: 0
+ data2: 0
+ lodBias: 0
+ lodBiasMode: 0
+ lodBiasQualityLevel: 0
+ maximumLODLevel: 0
+ maximumLODLevelMode: 0
+ maximumLODLevelQualityLevel: 0
+ sssQualityMode: 0
+ sssQualityLevel: 0
+ sssCustomSampleBudget: 0
+ msaaMode: 0
+ materialQuality: 0
+ m_ObsoleteRenderPipelineResources: {fileID: 0}
+ m_ObsoleteRenderPipelineRayTracingResources: {fileID: 0}
+ m_ObsoleteBeforeTransparentCustomPostProcesses: []
+ m_ObsoleteBeforePostProcessCustomPostProcesses: []
+ m_ObsoleteAfterPostProcessCustomPostProcesses: []
+ m_ObsoleteBeforeTAACustomPostProcesses: []
+ m_ObsoleteShaderVariantLogLevel: 0
+ m_ObsoleteLensAttenuation: 0
+ m_ObsoleteDiffusionProfileSettingsList: []
diff --git a/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Hardware.asset.meta b/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Hardware.asset.meta
new file mode 100644
index 00000000000..54fc66c05ea
--- /dev/null
+++ b/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Hardware.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 595b7210a76055442ae0f4f98f9f2633
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Software.asset b/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Software.asset
new file mode 100644
index 00000000000..577ff4c2803
--- /dev/null
+++ b/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Software.asset
@@ -0,0 +1,464 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &11400000
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 0}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3}
+ m_Name: HDRP_Test_Def_TAAU_Software
+ m_EditorClassIdentifier:
+ m_RenderPipelineSettings:
+ supportShadowMask: 1
+ supportSSR: 0
+ supportSSRTransparent: 0
+ supportSSAO: 1
+ supportSSGI: 0
+ supportSubsurfaceScattering: 1
+ sssSampleBudget:
+ m_Values: 140000002800000050000000
+ m_SchemaId:
+ m_Id: With3Levels
+ supportVolumetrics: 1
+ supportVolumetricClouds: 0
+ supportLightLayers: 0
+ supportDistortion: 1
+ supportTransparentBackface: 1
+ supportTransparentDepthPrepass: 1
+ supportTransparentDepthPostpass: 1
+ colorBufferFormat: 74
+ supportCustomPass: 1
+ customBufferFormat: 12
+ supportedLitShaderMode: 2
+ planarReflectionResolution:
+ m_Values: 000100000004000000040000
+ m_SchemaId:
+ m_Id: With3Levels
+ supportDecals: 1
+ supportDecalLayers: 0
+ supportSurfaceGradient: 0
+ decalNormalBufferHP: 0
+ msaaSampleCount: 1
+ supportMotionVectors: 1
+ supportRuntimeAOVAPI: 0
+ supportDitheringCrossFade: 1
+ supportTerrainHole: 0
+ supportProbeVolume: 0
+ probeVolumeMemoryBudget: 1024
+ probeVolumeSHBands: 1
+ supportRayTracing: 0
+ supportedRayTracingMode: 3
+ lightLoopSettings:
+ cookieAtlasSize: 2048
+ cookieFormat: 74
+ cookieAtlasLastValidMip: 0
+ cookieTexArraySize: 1
+ planarReflectionAtlasSize: 1024
+ reflectionProbeCacheSize: 64
+ reflectionCubemapSize: 256
+ reflectionCacheCompressed: 0
+ reflectionProbeFormat: 74
+ skyReflectionSize: 256
+ skyLightingOverrideLayerMask:
+ serializedVersion: 2
+ m_Bits: 0
+ supportFabricConvolution: 0
+ maxDirectionalLightsOnScreen: 16
+ maxPunctualLightsOnScreen: 512
+ maxAreaLightsOnScreen: 64
+ maxEnvLightsOnScreen: 64
+ maxDecalsOnScreen: 512
+ maxPlanarReflectionOnScreen: 16
+ maxLightsPerClusterCell: 8
+ maxLocalVolumetricFogSize: 32
+ maxLocalVolumetricFogOnScreen: 64
+ hdShadowInitParams:
+ maxShadowRequests: 128
+ directionalShadowsDepthBits: 32
+ shadowFilteringQuality: 1
+ punctualLightShadowAtlas:
+ shadowAtlasResolution: 4096
+ shadowAtlasDepthBits: 32
+ useDynamicViewportRescale: 1
+ areaLightShadowAtlas:
+ shadowAtlasResolution: 4096
+ shadowAtlasDepthBits: 32
+ useDynamicViewportRescale: 1
+ cachedPunctualLightShadowAtlas: 2048
+ cachedAreaLightShadowAtlas: 1024
+ shadowResolutionDirectional:
+ m_Values: 00010000000200000004000000080000
+ m_SchemaId:
+ m_Id: With4Levels
+ shadowResolutionPunctual:
+ m_Values: 00010000000200000004000000080000
+ m_SchemaId:
+ m_Id: With4Levels
+ shadowResolutionArea:
+ m_Values: 00010000000200000004000000080000
+ m_SchemaId:
+ m_Id: With4Levels
+ maxDirectionalShadowMapResolution: 2048
+ maxPunctualShadowMapResolution: 2048
+ maxAreaShadowMapResolution: 2048
+ supportScreenSpaceShadows: 0
+ maxScreenSpaceShadowSlots: 4
+ screenSpaceShadowBufferFormat: 48
+ decalSettings:
+ drawDistance: 1000
+ atlasWidth: 4096
+ atlasHeight: 4096
+ perChannelMask: 0
+ postProcessSettings:
+ m_LutSize: 32
+ lutFormat: 48
+ bufferFormat: 74
+ dynamicResolutionSettings:
+ enabled: 1
+ useMipBias: 1
+ enableDLSS: 0
+ DLSSPerfQualitySetting: 0
+ DLSSUseOptimalSettings: 1
+ DLSSSharpness: 0
+ maxPercentage: 100
+ minPercentage: 100
+ dynResType: 0
+ upsampleFilter: 5
+ forceResolution: 1
+ forcedPercentage: 50
+ lowResTransparencyMinimumThreshold: 0
+ lowresTransparentSettings:
+ enabled: 1
+ checkerboardDepthBuffer: 1
+ upsampleType: 1
+ xrSettings:
+ singlePass: 1
+ occlusionMesh: 1
+ cameraJitter: 0
+ postProcessQualitySettings:
+ NearBlurSampleCount: 030000000500000008000000
+ NearBlurMaxRadius:
+ - 2
+ - 4
+ - 7
+ FarBlurSampleCount: 04000000070000000e000000
+ FarBlurMaxRadius:
+ - 5
+ - 8
+ - 13
+ DoFResolution: 040000000200000001000000
+ DoFHighQualityFiltering: 000101
+ DoFPhysicallyBased: 000000
+ MotionBlurSampleCount: 04000000080000000c000000
+ BloomRes: 040000000200000002000000
+ BloomHighQualityFiltering: 000101
+ BloomHighQualityPrefiltering: 000001
+ ChromaticAberrationMaxSamples: 03000000060000000c000000
+ lightSettings:
+ useContactShadow:
+ m_Values: 000001
+ m_SchemaId:
+ m_Id: With3Levels
+ maximumLODLevel:
+ m_Values: 000000000000000000000000
+ m_SchemaId:
+ m_Id: With3Levels
+ lodBias:
+ m_Values:
+ - 1
+ - 1
+ - 1
+ m_SchemaId:
+ m_Id: With3Levels
+ lightingQualitySettings:
+ AOStepCount: 040000000600000010000000
+ AOFullRes: 000001
+ AOMaximumRadiusPixels: 200000002800000050000000
+ AOBilateralUpsample: 000101
+ AODirectionCount: 010000000200000004000000
+ ContactShadowSampleCount: 060000000a00000010000000
+ SSRMaxRaySteps: 100000002000000040000000
+ SSGIRaySteps: 200000004000000080000000
+ SSGIFilterRadius: 100000000e0000000c000000
+ RTAORayLength:
+ - 0.5
+ - 3
+ - 20
+ RTAOSampleCount: 010000000200000008000000
+ RTAODenoise: 010101
+ RTAODenoiserRadius:
+ - 0.25
+ - 0.5
+ - 0.65
+ RTGIRayLength:
+ - 50
+ - 50
+ - 50
+ RTGIFullResolution: 000001
+ RTGIClampValue:
+ - 0.5
+ - 0.8
+ - 1.5
+ RTGIUpScaleRadius: 040000000400000004000000
+ RTGIRaySteps: 200000003000000040000000
+ RTGIDenoise: 010101
+ RTGIHalfResDenoise: 010000
+ RTGIDenoiserRadius:
+ - 0.75
+ - 0.5
+ - 0.25
+ RTGISecondDenoise: 010101
+ RTRMinSmoothness:
+ - 0.6
+ - 0.4
+ - 0
+ RTRSmoothnessFadeStart:
+ - 0.7
+ - 0.5
+ - 0
+ RTRRayLength:
+ - 50
+ - 50
+ - 50
+ RTRClampValue:
+ - 0.8
+ - 1
+ - 1.2
+ RTRFullResolution: 000001
+ RTRRayMaxIterations: 200000003000000040000000
+ RTRDenoise: 010101
+ RTRDenoiserRadius: 080000000c00000010000000
+ RTRSmoothDenoising: 010000
+ Fog_ControlMode: 000000000000000000000000
+ Fog_Budget:
+ - 0.166
+ - 0.33
+ - 0.666
+ Fog_DepthRatio:
+ - 0.666
+ - 0.666
+ - 0.5
+ m_ObsoleteLightLayerName0:
+ m_ObsoleteLightLayerName1:
+ m_ObsoleteLightLayerName2:
+ m_ObsoleteLightLayerName3:
+ m_ObsoleteLightLayerName4:
+ m_ObsoleteLightLayerName5:
+ m_ObsoleteLightLayerName6:
+ m_ObsoleteLightLayerName7:
+ m_ObsoleteDecalLayerName0:
+ m_ObsoleteDecalLayerName1:
+ m_ObsoleteDecalLayerName2:
+ m_ObsoleteDecalLayerName3:
+ m_ObsoleteDecalLayerName4:
+ m_ObsoleteDecalLayerName5:
+ m_ObsoleteDecalLayerName6:
+ m_ObsoleteDecalLayerName7:
+ m_ObsoleteSupportRuntimeDebugDisplay: 0
+ allowShaderVariantStripping: 1
+ enableSRPBatcher: 1
+ availableMaterialQualityLevels: -1
+ m_DefaultMaterialQualityLevel: 4
+ diffusionProfileSettings: {fileID: 0}
+ virtualTexturingSettings:
+ streamingCpuCacheSizeInMegaBytes: 256
+ streamingGpuCacheSettings:
+ - format: 0
+ sizeInMegaBytes: 128
+ m_UseRenderGraph: 1
+ m_Version: 20
+ m_ObsoleteFrameSettings:
+ overrides: 0
+ enableShadow: 0
+ enableContactShadows: 0
+ enableShadowMask: 0
+ enableSSR: 0
+ enableSSAO: 0
+ enableSubsurfaceScattering: 0
+ enableTransmission: 0
+ enableAtmosphericScattering: 0
+ enableVolumetrics: 0
+ enableReprojectionForVolumetrics: 0
+ enableLightLayers: 0
+ enableExposureControl: 1
+ diffuseGlobalDimmer: 0
+ specularGlobalDimmer: 0
+ shaderLitMode: 0
+ enableDepthPrepassWithDeferredRendering: 0
+ enableTransparentPrepass: 0
+ enableMotionVectors: 0
+ enableObjectMotionVectors: 0
+ enableDecals: 0
+ enableRoughRefraction: 0
+ enableTransparentPostpass: 0
+ enableDistortion: 0
+ enablePostprocess: 0
+ enableOpaqueObjects: 0
+ enableTransparentObjects: 0
+ enableRealtimePlanarReflection: 0
+ enableMSAA: 0
+ enableAsyncCompute: 0
+ runLightListAsync: 0
+ runSSRAsync: 0
+ runSSAOAsync: 0
+ runContactShadowsAsync: 0
+ runVolumeVoxelizationAsync: 0
+ lightLoopSettings:
+ overrides: 0
+ enableDeferredTileAndCluster: 0
+ enableComputeLightEvaluation: 0
+ enableComputeLightVariants: 0
+ enableComputeMaterialVariants: 0
+ enableFptlForForwardOpaque: 0
+ enableBigTilePrepass: 0
+ isFptlEnabled: 0
+ m_ObsoleteBakedOrCustomReflectionFrameSettings:
+ overrides: 0
+ enableShadow: 0
+ enableContactShadows: 0
+ enableShadowMask: 0
+ enableSSR: 0
+ enableSSAO: 0
+ enableSubsurfaceScattering: 0
+ enableTransmission: 0
+ enableAtmosphericScattering: 0
+ enableVolumetrics: 0
+ enableReprojectionForVolumetrics: 0
+ enableLightLayers: 0
+ enableExposureControl: 1
+ diffuseGlobalDimmer: 0
+ specularGlobalDimmer: 0
+ shaderLitMode: 0
+ enableDepthPrepassWithDeferredRendering: 0
+ enableTransparentPrepass: 0
+ enableMotionVectors: 0
+ enableObjectMotionVectors: 0
+ enableDecals: 0
+ enableRoughRefraction: 0
+ enableTransparentPostpass: 0
+ enableDistortion: 0
+ enablePostprocess: 0
+ enableOpaqueObjects: 0
+ enableTransparentObjects: 0
+ enableRealtimePlanarReflection: 0
+ enableMSAA: 0
+ enableAsyncCompute: 0
+ runLightListAsync: 0
+ runSSRAsync: 0
+ runSSAOAsync: 0
+ runContactShadowsAsync: 0
+ runVolumeVoxelizationAsync: 0
+ lightLoopSettings:
+ overrides: 0
+ enableDeferredTileAndCluster: 0
+ enableComputeLightEvaluation: 0
+ enableComputeLightVariants: 0
+ enableComputeMaterialVariants: 0
+ enableFptlForForwardOpaque: 0
+ enableBigTilePrepass: 0
+ isFptlEnabled: 0
+ m_ObsoleteRealtimeReflectionFrameSettings:
+ overrides: 0
+ enableShadow: 0
+ enableContactShadows: 0
+ enableShadowMask: 0
+ enableSSR: 0
+ enableSSAO: 0
+ enableSubsurfaceScattering: 0
+ enableTransmission: 0
+ enableAtmosphericScattering: 0
+ enableVolumetrics: 0
+ enableReprojectionForVolumetrics: 0
+ enableLightLayers: 0
+ enableExposureControl: 1
+ diffuseGlobalDimmer: 0
+ specularGlobalDimmer: 0
+ shaderLitMode: 0
+ enableDepthPrepassWithDeferredRendering: 0
+ enableTransparentPrepass: 0
+ enableMotionVectors: 0
+ enableObjectMotionVectors: 0
+ enableDecals: 0
+ enableRoughRefraction: 0
+ enableTransparentPostpass: 0
+ enableDistortion: 0
+ enablePostprocess: 0
+ enableOpaqueObjects: 0
+ enableTransparentObjects: 0
+ enableRealtimePlanarReflection: 0
+ enableMSAA: 0
+ enableAsyncCompute: 0
+ runLightListAsync: 0
+ runSSRAsync: 0
+ runSSAOAsync: 0
+ runContactShadowsAsync: 0
+ runVolumeVoxelizationAsync: 0
+ lightLoopSettings:
+ overrides: 0
+ enableDeferredTileAndCluster: 0
+ enableComputeLightEvaluation: 0
+ enableComputeLightVariants: 0
+ enableComputeMaterialVariants: 0
+ enableFptlForForwardOpaque: 0
+ enableBigTilePrepass: 0
+ isFptlEnabled: 0
+ m_ObsoleteDefaultVolumeProfile: {fileID: 0}
+ m_ObsoleteDefaultLookDevProfile: {fileID: 0}
+ m_ObsoleteFrameSettingsMovedToDefaultSettings:
+ bitDatas:
+ data1: 0
+ data2: 0
+ lodBias: 0
+ lodBiasMode: 0
+ lodBiasQualityLevel: 0
+ maximumLODLevel: 0
+ maximumLODLevelMode: 0
+ maximumLODLevelQualityLevel: 0
+ sssQualityMode: 0
+ sssQualityLevel: 0
+ sssCustomSampleBudget: 0
+ msaaMode: 0
+ materialQuality: 0
+ m_ObsoleteBakedOrCustomReflectionFrameSettingsMovedToDefaultSettings:
+ bitDatas:
+ data1: 0
+ data2: 0
+ lodBias: 0
+ lodBiasMode: 0
+ lodBiasQualityLevel: 0
+ maximumLODLevel: 0
+ maximumLODLevelMode: 0
+ maximumLODLevelQualityLevel: 0
+ sssQualityMode: 0
+ sssQualityLevel: 0
+ sssCustomSampleBudget: 0
+ msaaMode: 0
+ materialQuality: 0
+ m_ObsoleteRealtimeReflectionFrameSettingsMovedToDefaultSettings:
+ bitDatas:
+ data1: 0
+ data2: 0
+ lodBias: 0
+ lodBiasMode: 0
+ lodBiasQualityLevel: 0
+ maximumLODLevel: 0
+ maximumLODLevelMode: 0
+ maximumLODLevelQualityLevel: 0
+ sssQualityMode: 0
+ sssQualityLevel: 0
+ sssCustomSampleBudget: 0
+ msaaMode: 0
+ materialQuality: 0
+ m_ObsoleteRenderPipelineResources: {fileID: 0}
+ m_ObsoleteRenderPipelineRayTracingResources: {fileID: 0}
+ m_ObsoleteBeforeTransparentCustomPostProcesses: []
+ m_ObsoleteBeforePostProcessCustomPostProcesses: []
+ m_ObsoleteAfterPostProcessCustomPostProcesses: []
+ m_ObsoleteBeforeTAACustomPostProcesses: []
+ m_ObsoleteShaderVariantLogLevel: 0
+ m_ObsoleteLensAttenuation: 0
+ m_ObsoleteDiffusionProfileSettingsList: []
diff --git a/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Software.asset.meta b/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Software.asset.meta
new file mode 100644
index 00000000000..20889903cd4
--- /dev/null
+++ b/com.unity.testing.hdrp/RP_Assets/HDRP_Test_Def_TAAU_Software.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 253d374c89bd7ca4bb61beb4c14905e0
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant: