From 7ea6a33d5be688666abc3d4742a7b4be06fd14b0 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Mon, 19 May 2025 17:27:05 +0000 Subject: [PATCH 01/11] [Port] [6000.0] Force high memory budget during dilation --- .../Editor/Lighting/ProbeVolume/ProbeGIBaking.cs | 8 ++++++-- .../Runtime/Common/DynamicArray.cs | 3 +-- .../Runtime/Lighting/ProbeVolume/ProbeBrickPool.cs | 1 + .../Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs | 5 +++++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs index 245fb5c2547..6c00db09336 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs @@ -1413,11 +1413,14 @@ static void ApplyPostBakeOperations() if (m_BakingSet.hasDilation) { // This subsequent block needs to happen AFTER we call WriteBakingCells. - // Otherwise in cases where we change the spacing between probes, we end up loading cells with a certain layout in ForceSHBand + // Otherwise, in cases where we change the spacing between probes, we end up loading cells with a certain layout in ForceSHBand // And then we unload cells using the wrong layout in PerformDilation (after WriteBakingCells updates the baking set object) which leads to a broken internal state. // Don't use Disk streaming to avoid having to wait for it when doing dilation. probeRefVolume.ForceNoDiskStreaming(true); + // Increase the memory budget to make sure we can fit the current cell and all its neighbors when doing dilation. + var prevMemoryBudget = probeRefVolume.memoryBudget; + probeRefVolume.ForceMemoryBudget(ProbeVolumeTextureMemoryBudget.MemoryBudgetHigh); // Force maximum sh bands to perform baking, we need to store what sh bands was selected from the settings as we need to restore it after. var prevSHBands = probeRefVolume.shBands; probeRefVolume.ForceSHBand(ProbeVolumeSHBands.SphericalHarmonicsL2); @@ -1428,8 +1431,9 @@ static void ApplyPostBakeOperations() using (new BakingCompleteProfiling(BakingCompleteProfiling.Stages.PerformDilation)) PerformDilation(); - // Need to restore the original state + // Restore the original state. probeRefVolume.ForceNoDiskStreaming(false); + probeRefVolume.ForceMemoryBudget(prevMemoryBudget); probeRefVolume.ForceSHBand(prevSHBands); } else diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Common/DynamicArray.cs b/Packages/com.unity.render-pipelines.core/Runtime/Common/DynamicArray.cs index 764d44b06e2..cfbdae31bce 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Common/DynamicArray.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Common/DynamicArray.cs @@ -685,8 +685,7 @@ public static class DynamicArrayExtensions } } - // C# SUCKS - // Had to copy paste because it's apparently impossible to pass a sort delegate where T is Comparable, otherwise some boxing happens and allocates... + // A copy/paste because it's apparently impossible to pass a sort delegate where T is Comparable, otherwise some boxing happens and allocates... // So two identical versions of the function, one with delegate but no Comparable and the other with just the comparable. static int Partition(Span data, int left, int right, DynamicArray.SortComparer comparer) where T : new() { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeBrickPool.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeBrickPool.cs index 3a3ef283152..e6e254f5446 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeBrickPool.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeBrickPool.cs @@ -281,6 +281,7 @@ internal bool Allocate(int numberOfBrickChunks, List outAllocat if (!ignoreErrorLog) Debug.LogError("Cannot allocate more brick chunks, probe volume brick pool is full."); + Deallocate(outAllocations); outAllocations.Clear(); return false; // failure case, pool is full } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs index b3b2882ab6e..71906191fb2 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeReferenceVolume.cs @@ -1078,6 +1078,11 @@ public void SetVertexSamplingEnabled(bool value) m_VertexSampling = value; } + internal void ForceMemoryBudget(ProbeVolumeTextureMemoryBudget budget) + { + m_MemoryBudget = budget; + } + // This is used for steps such as dilation that require the maximum order allowed to be loaded at all times. Should really never be used as a general purpose function. internal void ForceSHBand(ProbeVolumeSHBands shBands) { From 5384abda4903126cee08891de0deda8009b09072 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Mon, 19 May 2025 17:27:15 +0000 Subject: [PATCH 02/11] [Port] [6000.0] HDRP: Re-enable allocation-checks on Metal. --- .../Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs | 4 +++- .../TestRunner/HDRP_GraphicTestRunner.cs | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs index 16755bdce15..08822da2021 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.Prepass.cs @@ -28,6 +28,8 @@ public partial class HDRenderPipeline const int m_MaxXRViewsCount = 4; + const int kIntelVendorId = 0x8086; + void InitializePrepass(HDRenderPipelineAsset hdAsset) { m_MSAAResolveMaterial = CoreUtils.CreateEngineMaterial(runtimeShaders.depthValuesPS); @@ -1404,7 +1406,7 @@ void DecalNormalPatch(RenderGraph renderGraph, HDCamera hdCamera, ref PrepassOut { // Integrated Intel GPU on Mac don't support the texture format use for normal (RGBA_8UNORM) for SetRandomWriteTarget // So on Metal for now we don't patch normal buffer if we detect an intel GPU - if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal && SystemInfo.graphicsDeviceName.Contains("Intel")) + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal && SystemInfo.graphicsDeviceVendorID == kIntelVendorId) { return; } diff --git a/Tests/SRPTests/Packages/com.unity.testing.hdrp/TestRunner/HDRP_GraphicTestRunner.cs b/Tests/SRPTests/Packages/com.unity.testing.hdrp/TestRunner/HDRP_GraphicTestRunner.cs index 509336f51ec..edaefeb9ace 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.hdrp/TestRunner/HDRP_GraphicTestRunner.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.hdrp/TestRunner/HDRP_GraphicTestRunner.cs @@ -230,7 +230,7 @@ public IEnumerator Run(GraphicsTestCase testCase) // For some reason, tests on mac os have started failing with render graph enabled by default. // Some tests have 400+ gcalloc in them. Unfortunately it's not reproductible outside of command line so it's impossible to debug. // That's why we don't test on macos anymore. - if (settings.checkMemoryAllocation && SystemInfo.graphicsDeviceType != GraphicsDeviceType.Metal) + if (settings.checkMemoryAllocation) { yield return ImageAssert.CheckGCAllocWithCallstack(camera, settings?.ImageComparisonSettings); } From b5b833756053d6a0499655ef1302e16488f0b020 Mon Sep 17 00:00:00 2001 From: Venkatesh Subramania Pillai Date: Tue, 20 May 2025 11:39:10 +0000 Subject: [PATCH 03/11] Backport for Case UUM-104198 --- .../Scenes/089_Sprite_MBP_Animation.meta | 8 + .../Scenes/089_Sprite_MBP_Animation.unity | 1546 +++++++++++++++++ .../089_Sprite_MBP_Animation.unity.meta | 7 + .../SetMaterialPropertyBlockOnUpdate.cs | 41 + .../SetMaterialPropertyBlockOnUpdate.cs.meta | 2 + .../Sprite_Fire_Additive_0 (1).controller | 72 + ...Sprite_Fire_Additive_0 (1).controller.meta | 8 + .../Sprite_Fire_Additive_1.controller | 72 + .../Sprite_Fire_Additive_1.controller.meta | 8 + .../Sprite_Fire_Additive_2.controller | 72 + .../Sprite_Fire_Additive_2.controller.meta | 8 + .../Sprite_Fire_Additive_3 (1).controller | 95 + ...Sprite_Fire_Additive_3 (1).controller.meta | 8 + .../Sprite_Fire_Additive_Animated.png | Bin 0 -> 92009 bytes .../Sprite_Fire_Additive_Animated.png.meta | 586 +++++++ .../Sprite_Fire_Anim.anim | 81 + .../Sprite_Fire_Anim.anim.meta | 8 + .../ProjectSettings/EditorBuildSettings.asset | 3 + 18 files changed, 2625 insertions(+) create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnUpdate.cs create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnUpdate.cs.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_0 (1).controller create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_0 (1).controller.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_1.controller create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_1.controller.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_2.controller create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_2.controller.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_3 (1).controller create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_3 (1).controller.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_Animated.png create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_Animated.png.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Anim.anim create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Anim.anim.meta diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.meta new file mode 100644 index 00000000000..59ef2db88a1 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fe993f1f12cd3cf49bb1b3364ed1803a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity new file mode 100644 index 00000000000..94120ec8f4e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity @@ -0,0 +1,1546 @@ +%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: 10 + 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: 3 + 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_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + 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_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: 3 + 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 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &19107634 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 19107636} + - component: {fileID: 19107635} + m_Layer: 0 + m_Name: Gem_Atlas_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &19107635 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 19107634} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -5452404639209050584, guid: 0ec5b29f4ed9ac84685e5c344282c0bf, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.07, y: 1.17} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &19107636 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 19107634} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.5, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &89943473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 89943475} + - component: {fileID: 89943474} + - component: {fileID: 89943476} + m_Layer: 0 + m_Name: Sprite_Fire_Additive_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &89943474 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 89943473} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 652107442, guid: b07c028762ba2f24ab2aae8c19afcedb, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.72, y: 2.38} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 2 + m_SpriteSortPoint: 0 +--- !u!4 &89943475 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 89943473} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1, y: -0.2, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 625315505} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!95 &89943476 +Animator: + serializedVersion: 7 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 89943473} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: bdf475f9861b00c48bfa04eb6a87451a, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_AnimatePhysics: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &358425489 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 358425491} + - component: {fileID: 358425490} + m_Layer: 0 + m_Name: Gem_Atlas_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &358425490 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 358425489} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 8483082138732512798, guid: 0ec5b29f4ed9ac84685e5c344282c0bf, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.22, y: 1.2} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &358425491 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 358425489} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &402672543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 402672546} + - component: {fileID: 402672545} + - component: {fileID: 402672544} + m_Layer: 0 + m_Name: Sprite_Fire_Additive_3_Animated + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!95 &402672544 +Animator: + serializedVersion: 7 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 402672543} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 18aaba82ed6dbd247bde8bc60a9898d2, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_AnimatePhysics: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!212 &402672545 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 402672543} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 131858358, guid: b07c028762ba2f24ab2aae8c19afcedb, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.9, y: 2.53} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &402672546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 402672543} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2, y: -2.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &625315503 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 625315505} + - component: {fileID: 625315504} + m_Layer: 0 + m_Name: Mask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!331 &625315504 +SpriteMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625315503} + 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: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, 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_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 1026716091, guid: cce1ffd4828d03348b19e94ba66be4c3, type: 3} + m_MaskAlphaCutoff: 0.2 + m_FrontSortingLayerID: 0 + m_BackSortingLayerID: 0 + m_FrontSortingLayer: 0 + m_BackSortingLayer: 0 + m_FrontSortingOrder: 0 + m_BackSortingOrder: 0 + m_IsCustomRangeActive: 0 + m_SpriteSortPoint: 0 + m_MaskSource: 0 +--- !u!4 &625315505 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 625315503} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: 0} + m_LocalScale: {x: 2, y: 2, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 882542524} + - {fileID: 89943475} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &794361096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 794361100} + - component: {fileID: 794361099} + - component: {fileID: 794361098} + - component: {fileID: 794361097} + - component: {fileID: 794361101} + - component: {fileID: 794361103} + - component: {fileID: 794361102} + - component: {fileID: 794361104} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &794361097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794361096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb8c9150cdd48fb408001e9aeee226f6, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::SetMaterialPropertyBlockOnUpdate + m_spriteRenderer: {fileID: 810519565} + m_apply: 1 +--- !u!114 &794361098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794361096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb8c9150cdd48fb408001e9aeee226f6, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::SetMaterialPropertyBlockOnUpdate + m_spriteRenderer: {fileID: 912241776} + m_apply: 0 +--- !u!114 &794361099 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794361096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb8c9150cdd48fb408001e9aeee226f6, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::SetMaterialPropertyBlockOnUpdate + m_spriteRenderer: {fileID: 19107635} + m_apply: 1 +--- !u!4 &794361100 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794361096} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.08064, y: -0.64219, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &794361101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794361096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb8c9150cdd48fb408001e9aeee226f6, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::SetMaterialPropertyBlockOnUpdate + m_spriteRenderer: {fileID: 1056512286} + m_apply: 1 +--- !u!114 &794361102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794361096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb8c9150cdd48fb408001e9aeee226f6, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::SetMaterialPropertyBlockOnUpdate + m_spriteRenderer: {fileID: 89943474} + m_apply: 0 +--- !u!114 &794361103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794361096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb8c9150cdd48fb408001e9aeee226f6, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::SetMaterialPropertyBlockOnUpdate + m_spriteRenderer: {fileID: 882542523} + m_apply: 1 +--- !u!114 &794361104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794361096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cb8c9150cdd48fb408001e9aeee226f6, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::SetMaterialPropertyBlockOnUpdate + m_spriteRenderer: {fileID: 402672545} + m_apply: 0 +--- !u!1 &810519564 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 810519566} + - component: {fileID: 810519565} + m_Layer: 0 + m_Name: Gem_Atlas_5 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &810519565 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 810519564} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 6086253875049130666, guid: 0ec5b29f4ed9ac84685e5c344282c0bf, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.24, y: 1.19} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &810519566 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 810519564} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &882542522 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 882542524} + - component: {fileID: 882542523} + - component: {fileID: 882542525} + m_Layer: 0 + m_Name: Sprite_Fire_Additive_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &882542523 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882542522} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 2060993720, guid: b07c028762ba2f24ab2aae8c19afcedb, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.78, y: 2.52} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 1 + m_SpriteSortPoint: 0 +--- !u!4 &882542524 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882542522} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1, y: -0.2, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 625315505} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!95 &882542525 +Animator: + serializedVersion: 7 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 882542522} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: aaf66b68699ed64499f9ff62a39b8484, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_AnimatePhysics: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!1 &912241775 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 912241777} + - component: {fileID: 912241776} + m_Layer: 0 + m_Name: Gem_Atlas_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &912241776 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 912241775} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -1058190115970830684, guid: 0ec5b29f4ed9ac84685e5c344282c0bf, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.2, y: 1.07} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &912241777 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 912241775} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1056512284 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1056512287} + - component: {fileID: 1056512286} + - component: {fileID: 1056512285} + m_Layer: 0 + m_Name: Sprite_Fire_Additive_3_Animated_Color + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!95 &1056512285 +Animator: + serializedVersion: 7 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056512284} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 18aaba82ed6dbd247bde8bc60a9898d2, type: 2} + m_CullingMode: 0 + m_UpdateMode: 1 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_AnimatePhysics: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!212 &1056512286 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056512284} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 131858358, guid: b07c028762ba2f24ab2aae8c19afcedb, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.9, y: 2.53} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1056512287 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1056512284} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2, y: -2.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1296061818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1296061820} + - component: {fileID: 1296061819} + m_Layer: 0 + m_Name: Gem_Atlas_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1296061819 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1296061818} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -1073606098527010786, guid: 0ec5b29f4ed9ac84685e5c344282c0bf, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.13, y: 1.15} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1296061820 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1296061818} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1452826193 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1452826195} + - component: {fileID: 1452826194} + m_Layer: 0 + m_Name: Gem_Atlas_4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1452826194 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1452826193} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -7278019675062726547, guid: 0ec5b29f4ed9ac84685e5c344282c0bf, + type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.18, y: 1.05} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1452826195 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1452826193} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.5, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2103671723 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2103671727} + - component: {fileID: 2103671726} + - component: {fileID: 2103671725} + - component: {fileID: 2103671724} + - component: {fileID: 2103671728} + - component: {fileID: 2103671729} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2103671724 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103671723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 0 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!81 &2103671725 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103671723} + m_Enabled: 1 +--- !u!20 &2103671726 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103671723} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 1} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &2103671727 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103671723} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2103671728 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103671723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 1280 + TargetHeight: 720 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.005 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 2 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 0 + XRCompatible: 0 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 0 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!114 &2103671729 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2103671723} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d91d872554d0444a9ebbb8f43ca3775, type: 3} + m_Name: + m_EditorClassIdentifier: Universal2DGraphicsTests::LoadFromResource +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 2103671727} + - {fileID: 358425491} + - {fileID: 19107636} + - {fileID: 1296061820} + - {fileID: 912241777} + - {fileID: 1452826195} + - {fileID: 810519566} + - {fileID: 625315505} + - {fileID: 402672546} + - {fileID: 1056512287} + - {fileID: 794361100} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity.meta new file mode 100644 index 00000000000..ab408882aaa --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6b171e9d6c5830346986426b97513fce +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnUpdate.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnUpdate.cs new file mode 100644 index 00000000000..763eefc0ca1 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnUpdate.cs @@ -0,0 +1,41 @@ +using UnityEngine; + +public class SetMaterialPropertyBlockOnUpdate : MonoBehaviour +{ + private void Start() { + m_propertyBlock = new MaterialPropertyBlock(); + m_anim = m_spriteRenderer.gameObject.GetComponent(); + if (m_anim) + m_anim.PlayInFixedTime("Sprite_Fire_Anim", 0, 0.2f); + } + + private void Update() { + + if (null == m_spriteRenderer) + return; + + if (m_apply && m_propertyBlock.isEmpty) + { + m_propertyBlock.SetColor("_Color", Color.green); + m_spriteRenderer.SetPropertyBlock(m_propertyBlock); + } + else if (!m_apply && !m_propertyBlock.isEmpty) + { + m_propertyBlock.Clear(); + m_spriteRenderer.SetPropertyBlock(m_propertyBlock); + } + + if (m_anim) + m_anim.PlayInFixedTime("Sprite_Fire_Anim", 0, 0.2f); + } + +//-------------------------------------------------------------------------------------------------------------------------------------------------------------- + + MaterialPropertyBlock m_propertyBlock; + +//-------------------------------------------------------------------------------------------------------------------------------------------------------------- + + Animator m_anim; + [SerializeField] private SpriteRenderer m_spriteRenderer; + [SerializeField] private bool m_apply = false; +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnUpdate.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnUpdate.cs.meta new file mode 100644 index 00000000000..2a03a112ecb --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/SetMaterialPropertyBlockOnUpdate.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: cb8c9150cdd48fb408001e9aeee226f6 \ No newline at end of file diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_0 (1).controller b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_0 (1).controller new file mode 100644 index 00000000000..b96d84dfb69 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_0 (1).controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-1077850774977184363 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Anim + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 34cb1fa453103994ba29955a9885763a, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Additive_0 (1) + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 3090921898850901258} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1107 &3090921898850901258 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -1077850774977184363} + m_Position: {x: 200, y: 0, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -1077850774977184363} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_0 (1).controller.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_0 (1).controller.meta new file mode 100644 index 00000000000..73e7591dc67 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_0 (1).controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 774cbaedda288664b8dd6ec91b5ca9d3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_1.controller b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_1.controller new file mode 100644 index 00000000000..ed83000385d --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_1.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-8079889910850793453 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Anim + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 34cb1fa453103994ba29955a9885763a, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &-2560262118764050184 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -8079889910850793453} + m_Position: {x: 200, y: 0, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -8079889910850793453} +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Additive_1 + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -2560262118764050184} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_1.controller.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_1.controller.meta new file mode 100644 index 00000000000..85f12f1d63e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_1.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aaf66b68699ed64499f9ff62a39b8484 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_2.controller b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_2.controller new file mode 100644 index 00000000000..57b391c8467 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_2.controller @@ -0,0 +1,72 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Additive_2 + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 4065868487215320794} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &1932231984408505642 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Anim + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 34cb1fa453103994ba29955a9885763a, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1107 &4065868487215320794 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 1932231984408505642} + m_Position: {x: 200, y: 0, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 1932231984408505642} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_2.controller.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_2.controller.meta new file mode 100644 index 00000000000..45e63be2cef --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_2.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bdf475f9861b00c48bfa04eb6a87451a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_3 (1).controller b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_3 (1).controller new file mode 100644 index 00000000000..5cce888e20c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_3 (1).controller @@ -0,0 +1,95 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-6462714794891237215 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Anim + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 1840323351437260148} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 34cb1fa453103994ba29955a9885763a, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Additive_3 (1) + serializedVersion: 5 + m_AnimatorParameters: [] + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 5975083577900485028} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &1840323351437260148 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 0} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 1 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.25 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &5975083577900485028 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -6462714794891237215} + m_Position: {x: 430, y: 120, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -6462714794891237215} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_3 (1).controller.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_3 (1).controller.meta new file mode 100644 index 00000000000..aba97111866 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_3 (1).controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18aaba82ed6dbd247bde8bc60a9898d2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_Animated.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_Animated.png new file mode 100644 index 0000000000000000000000000000000000000000..2ec2f8a21f8600a351deb38b27394c2e552ff793 GIT binary patch literal 92009 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 literal 0 HcmV?d00001 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_Animated.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_Animated.png.meta new file mode 100644 index 00000000000..c851778f9e0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Additive_Animated.png.meta @@ -0,0 +1,586 @@ +fileFormatVersion: 2 +guid: 0477d6698c265a649a6a01373703a6b2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + 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 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 2 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: WindowsStoreApps + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: CloudRendering + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Switch + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreXboxOne + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: GameCoreScarlett + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: PS4 + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: PS5 + maxTextureSize: 8192 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: + - serializedVersion: 2 + name: Sprite_Fire_Additive_0 + rect: + serializedVersion: 2 + x: 72 + y: 265 + width: 157 + height: 214 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: 60.5, y: -93} + - {x: 63.5, y: -87} + - {x: 64.5, y: -83} + - {x: 65.5, y: -57} + - {x: 67.5, y: -53} + - {x: 67.5, y: -36} + - {x: 59.5, y: -16} + - {x: 51.5, y: 1} + - {x: 46.5, y: 7} + - {x: 38.5, y: 12} + - {x: 25.5, y: 18} + - {x: 8.5, y: 24} + - {x: 6.5, y: 38} + - {x: 8.5, y: 46} + - {x: 8.5, y: 56} + - {x: 5.5, y: 62} + - {x: -5.5, y: 70} + - {x: -11.5, y: 78} + - {x: -12.5, y: 85} + - {x: -20.5, y: 94} + - {x: -22.5, y: 95} + - {x: -34.5, y: 95} + - {x: -40.5, y: 88} + - {x: -45.5, y: 82} + - {x: -48.5, y: 78} + - {x: -52.5, y: 69} + - {x: -55.5, y: 62} + - {x: -57.5, y: 34} + - {x: -62.5, y: 27} + - {x: -69.5, y: 10} + - {x: -69.5, y: -17} + - {x: -67.5, y: -29} + - {x: -59.5, y: -46} + - {x: -52.5, y: -54} + - {x: -43.5, y: -57} + - {x: -33.5, y: -56} + - {x: -24.5, y: -52} + - {x: -19.5, y: -47} + - {x: -10.5, y: -32} + - {x: 4.5, y: -33} + - {x: 9.5, y: -39} + - {x: 9.5, y: -53} + - {x: 10.5, y: -57} + - {x: 17.5, y: -67} + - {x: 13.5, y: -85} + - {x: 4.5, y: -86} + - {x: 1.5, y: -89} + - {x: 2.5, y: -93} + - {x: 16.5, y: -91} + - {x: 23.5, y: -96} + - {x: 29.5, y: -99} + - {x: 51.5, y: -99} + physicsShape: [] + tessellationDetail: 0.4 + bones: [] + spriteID: b104135ae5d43514a9d4ae07fd74cada + internalID: -1383448332 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Sprite_Fire_Additive_1 + rect: + serializedVersion: 2 + x: 301 + y: 258 + width: 178 + height: 252 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: 41, y: -114} + - {x: 48, y: -109} + - {x: 50, y: -105} + - {x: 56, y: -90} + - {x: 57, y: -80} + - {x: 56, y: -78} + - {x: 47, y: -66} + - {x: 50, y: -48} + - {x: 54, y: -45} + - {x: 66, y: -45} + - {x: 71, y: -43} + - {x: 77, y: -37} + - {x: 80, y: -33} + - {x: 80, y: -17} + - {x: 79, y: -14} + - {x: 76, y: -7} + - {x: 69, y: 2} + - {x: 72, y: 18} + - {x: 71, y: 36} + - {x: 68, y: 40} + - {x: 59, y: 49} + - {x: 58, y: 54} + - {x: 62, y: 59} + - {x: 67, y: 69} + - {x: 67, y: 86} + - {x: 64, y: 95} + - {x: 61, y: 102} + - {x: 52, y: 112} + - {x: 46, y: 115} + - {x: 27, y: 115} + - {x: 23, y: 113} + - {x: 16, y: 107} + - {x: 16, y: 95} + - {x: 18, y: 80} + - {x: 14, y: 74} + - {x: 3, y: 70} + - {x: -4, y: 67} + - {x: -13, y: 67} + - {x: -30, y: 79} + - {x: -37, y: 83} + - {x: -62, y: 83} + - {x: -69, y: 80} + - {x: -73, y: 75} + - {x: -75, y: 72} + - {x: -75, y: 65} + - {x: -74, y: 59} + - {x: -70, y: 54} + - {x: -62, y: 35} + - {x: -56, y: 31} + - {x: -39, y: 23} + - {x: -33, y: 17} + - {x: -31, y: 1} + - {x: -39, y: -5} + - {x: -47, y: -5} + - {x: -57, y: -8} + - {x: -60, y: -9} + - {x: -67, y: -17} + - {x: -70, y: -21} + - {x: -69, y: -36} + - {x: -64, y: -41} + - {x: -58, y: -46} + - {x: -54, y: -47} + - {x: -48, y: -54} + - {x: -48, y: -75} + - {x: -46, y: -81} + - {x: -41, y: -85} + - {x: -36, y: -87} + - {x: -26, y: -87} + - {x: -12, y: -85} + - {x: -5, y: -90} + - {x: -2, y: -96} + - {x: 3, y: -108} + - {x: 13, y: -116} + - {x: 17, y: -117} + - {x: 36, y: -117} + physicsShape: [] + tessellationDetail: 0.4 + bones: [] + spriteID: 4fd6658a3cb353b4e97e401b911f4694 + internalID: 2060993720 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Sprite_Fire_Additive_2 + rect: + serializedVersion: 2 + x: 35 + y: 11 + width: 172 + height: 238 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: -33, y: -100} + - {x: -21, y: -84} + - {x: -13, y: -78} + - {x: -5, y: -80} + - {x: 3, y: -92} + - {x: 15, y: -99} + - {x: 28, y: -99} + - {x: 37, y: -97} + - {x: 55, y: -96} + - {x: 61, y: -95} + - {x: 70, y: -82} + - {x: 71, y: -76} + - {x: 70, y: -61} + - {x: 55, y: -49} + - {x: 54, y: -42} + - {x: 74, y: -21} + - {x: 77, y: -13} + - {x: 77, y: -2} + - {x: 74, y: 5} + - {x: 64, y: 14} + - {x: 70, y: 26} + - {x: 73, y: 38} + - {x: 73, y: 53} + - {x: 71, y: 58} + - {x: 63, y: 65} + - {x: 54, y: 64} + - {x: 33, y: 55} + - {x: 18, y: 55} + - {x: 11, y: 59} + - {x: 9, y: 69} + - {x: 12, y: 76} + - {x: 20, y: 84} + - {x: 22, y: 89} + - {x: 22, y: 102} + - {x: 12, y: 110} + - {x: -2, y: 110} + - {x: -10, y: 109} + - {x: -30, y: 96} + - {x: -38, y: 80} + - {x: -45, y: 61} + - {x: -51, y: 46} + - {x: -59, y: 37} + - {x: -62, y: 32} + - {x: -61, y: 19} + - {x: -52, y: 11} + - {x: -31, y: -1} + - {x: -22, y: -8} + - {x: -21, y: -16} + - {x: -26, y: -24} + - {x: -40, y: -33} + - {x: -64, y: -45} + - {x: -75, y: -55} + - {x: -78, y: -65} + - {x: -78, y: -78} + - {x: -68, y: -94} + - {x: -58, y: -104} + - {x: -53, y: -107} + - {x: -39, y: -107} + physicsShape: [] + tessellationDetail: 0.4 + bones: [] + spriteID: 63a17d19b68525d4a98500e7d772ab4b + internalID: 652107442 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Sprite_Fire_Additive_3 + rect: + serializedVersion: 2 + x: 279 + y: 10 + width: 190 + height: 253 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: 66, y: -108.5} + - {x: 73, y: -100.5} + - {x: 78, y: -84.5} + - {x: 79, y: -80.5} + - {x: 79, y: -65.5} + - {x: 70, y: -54.5} + - {x: 76, y: -46.5} + - {x: 81, y: -33.5} + - {x: 83, y: -27.5} + - {x: 83, y: -12.5} + - {x: 82, y: -10.5} + - {x: 80, y: -5.5} + - {x: 72, y: 1.5} + - {x: 69, y: 2.5} + - {x: 62, y: 4.5} + - {x: 51, y: 3.5} + - {x: 41, y: -0.5} + - {x: 18, y: -13.5} + - {x: 12, y: -11.5} + - {x: 0, y: -2.5} + - {x: -2, y: 3.5} + - {x: -1, y: 10.5} + - {x: 15, y: 21.5} + - {x: 20, y: 27.5} + - {x: 27, y: 37.5} + - {x: 33, y: 48.5} + - {x: 32, y: 62.5} + - {x: 17, y: 81.5} + - {x: 6, y: 92.5} + - {x: -7, y: 97.5} + - {x: -22, y: 112.5} + - {x: -32, y: 116.5} + - {x: -52, y: 116.5} + - {x: -59, y: 113.5} + - {x: -81, y: 91.5} + - {x: -84, y: 84.5} + - {x: -85, y: 80.5} + - {x: -85, y: 69.5} + - {x: -83, y: 64.5} + - {x: -75, y: 56.5} + - {x: -72, y: 55.5} + - {x: -62, y: 55.5} + - {x: -54, y: 57.5} + - {x: -51, y: 53.5} + - {x: -57, y: 32.5} + - {x: -57, y: 30.5} + - {x: -80, y: 7.5} + - {x: -84, y: -0.5} + - {x: -86, y: -10.5} + - {x: -86, y: -26.5} + - {x: -85, y: -32.5} + - {x: -77, y: -43.5} + - {x: -71, y: -49.5} + - {x: -67, y: -61.5} + - {x: -66, y: -71.5} + - {x: -61, y: -79.5} + - {x: -51, y: -88.5} + - {x: -44, y: -94.5} + - {x: -33, y: -99.5} + - {x: -20, y: -99.5} + - {x: -12, y: -90.5} + - {x: -7, y: -79.5} + - {x: -3, y: -75.5} + - {x: 4, y: -73.5} + - {x: 10, y: -70.5} + - {x: 19, y: -71.5} + - {x: 24, y: -73.5} + - {x: 31, y: -80.5} + - {x: 34, y: -87.5} + - {x: 36, y: -103.5} + - {x: 40, y: -111.5} + - {x: 48, y: -112.5} + - {x: 56, y: -112.5} + physicsShape: [] + tessellationDetail: 0.4 + bones: [] + spriteID: ed3672787f35b4448b81fe5a7301c0e5 + internalID: 131858358 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: + - key: SpriteEditor.SliceSettings + value: '{"sliceOnImport":false,"gridCellCount":{"x":1.0,"y":1.0},"gridSpriteSize":{"x":64.0,"y":64.0},"gridSpriteOffset":{"x":0.0,"y":0.0},"gridSpritePadding":{"x":0.0,"y":0.0},"pivot":{"x":0.0,"y":0.0},"autoSlicingMethod":0,"spriteAlignment":0,"slicingType":0,"keepEmptyRects":false,"isAlternate":false}' + nameFileIdTable: + Sprite_Fire_Additive_0: -1383448332 + Sprite_Fire_Additive_1: 2060993720 + Sprite_Fire_Additive_2: 652107442 + Sprite_Fire_Additive_3: 131858358 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Anim.anim b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Anim.anim new file mode 100644 index 00000000000..7b2261a0301 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Anim.anim @@ -0,0 +1,81 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprite_Fire_Anim + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: + - serializedVersion: 2 + curve: + - time: 0 + value: {fileID: -1383448332, guid: 0477d6698c265a649a6a01373703a6b2, type: 3} + - time: 0.083333336 + value: {fileID: 2060993720, guid: 0477d6698c265a649a6a01373703a6b2, type: 3} + - time: 0.16666667 + value: {fileID: 652107442, guid: 0477d6698c265a649a6a01373703a6b2, type: 3} + - time: 0.25 + value: {fileID: 131858358, guid: 0477d6698c265a649a6a01373703a6b2, type: 3} + attribute: m_Sprite + path: + classID: 212 + script: {fileID: 0} + flags: 2 + m_SampleRate: 12 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: + - {fileID: -1383448332, guid: 0477d6698c265a649a6a01373703a6b2, type: 3} + - {fileID: 2060993720, guid: 0477d6698c265a649a6a01373703a6b2, type: 3} + - {fileID: 652107442, guid: 0477d6698c265a649a6a01373703a6b2, type: 3} + - {fileID: 131858358, guid: 0477d6698c265a649a6a01373703a6b2, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.33333334 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Anim.anim.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Anim.anim.meta new file mode 100644 index 00000000000..cc9b27440c0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/089_Sprite_MBP_Animation/Sprite_Fire_Anim.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 34cb1fa453103994ba29955a9885763a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset index 7c1d529ab75..bfbdc39ffe0 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset @@ -281,6 +281,9 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity guid: f5c31dad7aab75241a867c300ce2bc5e + - enabled: 1 + path: Assets/Scenes/089_Sprite_MBP_Animation.unity + guid: 6b171e9d6c5830346986426b97513fce m_configObjects: com.unity.xr.management.loader_settings: {fileID: 11400000, guid: 20e925b8abdd424429b17f709e9d00f8, type: 2} From 8593ab9564bd7eb3082116e7b9d1c2247179f097 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Tue, 20 May 2025 17:53:04 +0000 Subject: [PATCH 04/11] [Port] [6000.0] [Upscaling] Fix FSR2 crash & DX11 missing depth, upgrade from v2.2.0 to v2.2.1 --- .../Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs index cc23e11f955..6157f9d5bf3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/RenderPipeline/HDRenderPipelineUI.Skin.cs @@ -311,7 +311,7 @@ public class Styles public const string FSR2WinTargetWarning = "HDRP does not support AMD Fidelity FX2 for the current build target and graphics device API. To enable FSR2, set your build target to Windows x86_64 and DirectX12."; public const string FSR2SwitchTarget64Button = "Fix"; public const string FSR2FeatureDetectedMsg = "Unity detected AMD Fidelity FX 2 Super Resolution and will ignore the Fallback Upscale Filter."; - public const string FSR2FeatureNotDetectedMsg = "Unity cannot detect Unity detected AMD Fidelity FX 2 Super Resolution and will use the Fallback Upscale Filter instead."; + public const string FSR2FeatureNotDetectedMsg = "Unity cannot detect AMD Fidelity FX 2 Super Resolution and will use the Fallback Upscale Filter instead."; public const string STPSwDrsWarningMsg = "STP cannot support dynamic resolution without hardware dynamic resolution mode. You can use the forced screen percentage feature to guarantee a fixed resoution for STP or HDRP will fall back to the next best supported upscaling filter instead."; From 853e9e8ac30195f81d9151b7ea79bd1b03e7babe Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Tue, 20 May 2025 17:53:04 +0000 Subject: [PATCH 05/11] [Port] [6000.0] UUM-103836 Trying to use invalid GBuffers in Wireframe pass --- .../ScreenSpace/DecalGBufferRenderPass.cs | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalGBufferRenderPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalGBufferRenderPass.cs index 1b39d9d2fb5..857185bb531 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalGBufferRenderPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Decal/ScreenSpace/DecalGBufferRenderPass.cs @@ -172,18 +172,22 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer InitPassData(cameraData, ref passData); - TextureHandle[] gBufferHandles = resourceData.gBuffer; - builder.SetRenderAttachment(gBufferHandles[0], 0, AccessFlags.Write); - builder.SetRenderAttachment(gBufferHandles[1], 1, AccessFlags.Write); - builder.SetRenderAttachment(gBufferHandles[2], 2, AccessFlags.Write); - builder.SetRenderAttachment(gBufferHandles[3], 3, AccessFlags.Write); + // GBuffers 0 - 4 + for (int i = 0; i <= m_DeferredLights.GBufferLightingIndex; i++) + { + if (resourceData.gBuffer[i].IsValid()) + { + builder.SetRenderAttachment(resourceData.gBuffer[i], i, AccessFlags.Write); + } + } builder.SetRenderAttachmentDepth(resourceData.activeDepthTexture, AccessFlags.Read); if (renderGraph.nativeRenderPassesEnabled) { - builder.SetInputAttachment(gBufferHandles[4], 0, AccessFlags.Read); - if (m_DecalLayers) - builder.SetInputAttachment(gBufferHandles[5], 1, AccessFlags.Read); + if (resourceData.gBuffer[4].IsValid()) + builder.SetInputAttachment(resourceData.gBuffer[4], 0, AccessFlags.Read); + if (m_DecalLayers && resourceData.gBuffer[5].IsValid()) + builder.SetInputAttachment(resourceData.gBuffer[5], 1, AccessFlags.Read); } else if (cameraDepthTexture.IsValid()) builder.UseTexture(cameraDepthTexture, AccessFlags.Read); From 25aeccbef3c83c92f579ce3ede0df2fddd75f4af Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Wed, 21 May 2025 14:09:32 +0000 Subject: [PATCH 06/11] [Port] [6000.0] DOCG-7040: replace "deformer" with "water decal" --- .../Documentation~/HDRP-Features.md | 2 +- .../Documentation~/HDRP-Sample-Content.md | 2 +- ...-properties-related-to-the-water-system.md | 2 +- .../water-deform-a-water-surface.md | 22 +++++++++---------- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md index 6ba9dc953c6..a94887282ba 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Features.md @@ -425,7 +425,7 @@ Use HDRP's water system to create and control realistic water surfaces. HDRP's w - Multiple presets. - Simulation-based caustics. - Underwater rendering. -- Deformer. +- Deformation. - Foam. - Water Excluder. - A mirrored simulation on the CPU for high-fidelity game interactions. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Sample-Content.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Sample-Content.md index 443b6b05394..9e322871102 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Sample-Content.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Sample-Content.md @@ -78,7 +78,7 @@ This sample includes examples on how to create a [Fullscreen Shader](create-a-fu The Water samples contain the following scenes you can use to learn about HDRP's [Water](water.md) features: - Pool: Demonstrates ripples and buoyancy. -- Glacier: Demonstrates current, water deformers, floating objects, and a simulation mask. +- Glacier: Demonstrates current, deformation, water decals, floating objects, and a simulation mask. - Island: Demonstrates waves, foam, and the water excluder. - Rain: Demonstrates how to add pertubations to the normals using shader graph. - Waterline: Demonstrates how to override rendering of the waterline using a [Custom Pass](Custom-Pass.md). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/settings-and-properties-related-to-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/settings-and-properties-related-to-the-water-system.md index 2daa2dab29f..12993e688fa 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/settings-and-properties-related-to-the-water-system.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/settings-and-properties-related-to-the-water-system.md @@ -84,7 +84,7 @@ To see properties related to Fade, Caustics Intensity, and Caus | Yes | Yes | Yes | N/A | **Displacement Term** | Controls the intensity of the displacement-based scattering. The bigger the horizontal displacement, the more the water receives scattering. You can adjust this for artistic purposes. | | No | Yes | Yes | N/A | **Direct Light Tip Term** | Controls the intensity of the direct light scattering on the tip of the waves. The effect is more perceivable at grazing angles. | | Yes | Yes | Yes | N/A | **Direct Light Body Term** | Controls the intensity of the direct light scattering on the body of the waves. The effect is more perceivable at grazing angles. | -| Yes | Yes | Yes | N/A | **Maximum Height Override** | Specifies a maximum wave height that overrides the simulation to support scattering properly for deformers. | +| Yes | Yes | Yes | N/A | **Maximum Height Override** | Specifies a maximum wave height that overrides the simulation to support scattering properly for vertical deformation. | | Yes | Yes | Yes | **Caustics** | N/A | N/A | | Yes | Yes | Yes | N/A | **Caustics Resolution** | Specifies the resolution at which the water caustics are rendered (simulation only). | | Yes | Yes | Yes | N/A | **Simulation Band** | Controls which simulation band is used for the caustics evaluation. The first (index 0) and second band (index 1) come from the swell simulation and the third (index 2) one from the ripples. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-deform-a-water-surface.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-deform-a-water-surface.md index e66d614fee3..2d3401c8180 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-deform-a-water-surface.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-deform-a-water-surface.md @@ -71,30 +71,30 @@ The properties used in the water decal material **Inspector** window change base ## Box -Use the following properties to control the Box deformer type. +Use the following properties to control the Box type in the Water Decal template shader graph. | **Property** | **Description** | | ---------------------- | ------------------------------------------------------------ | -| **Box Blend Distance** | Control the range in meters over which HDRP blends this deformer between its height and amplitude. For example, if you set these values to half the values in the Region size property, it results in a pyramid shape. | -| **Cubic blend** | Set the blend between the water surface and the deformer’s amplitude to a cubic profile. When disabled, the blend is linear. | +| **Box Blend Distance** | Control the range in meters over which HDRP blends this water decal between its height and amplitude. For example, if you set these values to half the values in the Region size property, it results in a pyramid shape. | +| **Cubic blend** | Set the blend between the water surface and the water decal’s amplitude to a cubic profile. When disabled, the blend is linear. | ## Bow Wave -Use the following property to control the Bow Wave deformer type. +Use the following property to control the Bow Wave type in the Water Decal template shader graph. | **Property** | **Description** | | ---------------------- | -------------------------------------------------------- | | **Bow Wave Elevation** | Controls the maximum height, in meters, of the bow wave. | -To make a bow wave move with a boat’s bow, set the Bow Wave as a child of the boat GameObject. However, the Bow Wave deformer can only move within the area defined in the **Inspector** window of the water surface, in **Deformation** > **Area Size**. To preserve the deformation’s resolution, you can use a script to make the `deformationAreaOffset` follow the boat position. +To make a bow wave move with a boat’s bow, set the Bow Wave as a child of the boat GameObject. However, the Bow Wave water decal can only move within the area defined in the **Inspector** window of the water surface, in **Deformation** > **Area Size**. To preserve the deformation’s resolution, you can use a script to make the `deformationAreaOffset` follow the boat position. ## Shore Wave -Use the following properties to control the Shore Wave deformer type. +Use the following properties to control the Shore Wave type in the Water Decal template shader graph. | **Property** | **Description** | | ----------------------- | ------------------------------------------------------------ | @@ -105,19 +105,19 @@ Use the following properties to control the Shore Wave deformer type. | **Blend Range** | Specifies the range on the local Z axis where the shore waves have their maximal amplitude. | | **Breaking Range** | Controls the range on the X axis where the shore wave should break. The wave reaches its maximum amplitude at the start of the range, generates surface foam inside it and loses 70% of its amplitude at the end of the range. | | **Deep Foam Range** | Controls the range on the X axis where the shore wave generates deep foam. This property has no effect if [foam](water-foam-in-the-water-system.md) is disabled. | -| **Surface Foam Dimmer** | Controls the dimmer for the surface foam generated by the deformer. Does this property require Foam setup? If so, explain that and link out to [Foam in the water system](water-foam-in-the-water-system.md). | -| **Deep Foam Dimmer** | Controls the dimmer for the deep foam generated by the deformer. This property has no effect if [foam](water-foam-in-the-water-system.md) is disabled. | +| **Surface Foam Dimmer** | Controls the dimmer for the surface foam generated by the water decal. Does this property require Foam setup? If so, explain that and link out to [Foam in the water system](water-foam-in-the-water-system.md). | +| **Deep Foam Dimmer** | Controls the dimmer for the deep foam generated by the water decal. This property has no effect if [foam](water-foam-in-the-water-system.md) is disabled. | ## Texture -These properties are specific to the Texture deformer type. +These properties are specific to the Texture type in the Water Decal template shader graph. | **Property** | **Description** | |-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Range Remap** | Specifies the range of the deformer in the [-1, 1] interval. The input texture values will be remapped from [0,1] to the specified range. | -| **Texture** | The texture used by the deformer. This is a single channel texture that contains the amplitude of the deformation relative to the deformer’s amplitude.
This texture can be a regular texture or a Render Texture, which can be updated at runtime by modifying a render target with a compute shader for example. For a Render Texture, use the R16_UNorm format. | +| **Range Remap** | Specifies the range of the water decal in the [-1, 1] interval. The input texture values will be remapped from [0,1] to the specified range. | +| **Texture** | The texture used by the water decal. This is a single channel texture that contains the amplitude of the deformation relative to the water decal’s amplitude.
This texture can be a regular texture or a Render Texture, which can be updated at runtime by modifying a render target with a compute shader for example. For a Render Texture, use the R16_UNorm format. | ## Additional resources From 29d3495ff041b2f91d475273e4c93f3ada2aba20 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 22 May 2025 14:52:55 +0000 Subject: [PATCH 07/11] [Port] [6000.0] [VFX] Fix rendering of volumetric output connected to particle strips --- .../Shaders/VFXVolumetricFogUpdate.template | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Packages/com.unity.visualeffectgraph/Shaders/VFXVolumetricFogUpdate.template b/Packages/com.unity.visualeffectgraph/Shaders/VFXVolumetricFogUpdate.template index 6b9874808a5..e0d49b878ff 100644 --- a/Packages/com.unity.visualeffectgraph/Shaders/VFXVolumetricFogUpdate.template +++ b/Packages/com.unity.visualeffectgraph/Shaders/VFXVolumetricFogUpdate.template @@ -9,6 +9,10 @@ ${VFXInclude("Shaders/VFXParticleCommon.template")} // Indirect draw is always enabled for volumetric fog output RWStructuredBuffer indirectBuffer; +#if HAS_STRIPS_DATA +StructuredBuffer stripDataBuffer; +#endif + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Builtin/BuiltinData.hlsl" #include "Packages/com.unity.render-pipelines.high-definition/Runtime/ShaderLibrary/ShaderVariables.hlsl" From 8eccef7bfceaf7d18167608a873c1a34b8c3a546 Mon Sep 17 00:00:00 2001 From: Olivier Prat Date: Thu, 22 May 2025 15:50:06 +0000 Subject: [PATCH 08/11] [6000.0] UUM-103975 : Missing packed material data in CreateDrawBatches --- .../Runtime/GPUDriven/GPUResidentBatcher.cs | 15 +-- .../GPUDriven/InstanceCullingBatcher.cs | 123 +++++++++++++----- 2 files changed, 95 insertions(+), 43 deletions(-) diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentBatcher.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentBatcher.cs index dfc25d400ad..2a3c5227cae 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentBatcher.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentBatcher.cs @@ -196,12 +196,7 @@ private void UpdateRendererInstancesAndBatches(in GPUDrivenRendererGroupData ren Profiler.BeginSample("InstanceCullingBatcher.BuildBatch"); { - m_InstanceCullingBatcher.BuildBatch( - instances, - rendererData.materialID, - rendererData.meshID, - rendererData, true); - + m_InstanceCullingBatcher.BuildBatch(instances, rendererData, true); } Profiler.EndSample(); @@ -234,15 +229,11 @@ private void UpdateRendererBatches(in GPUDrivenRendererGroupData rendererData, I Profiler.BeginSample("InstanceCullingBatcher.BuildBatch"); { - m_InstanceCullingBatcher.BuildBatch( - instances.AsArray(), - rendererData.materialID, - rendererData.meshID, - rendererData, false); - instances.Dispose(); + m_InstanceCullingBatcher.BuildBatch(instances.AsArray(), rendererData, false); } Profiler.EndSample(); + instances.Dispose(); } Profiler.EndSample(); } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs index ff4cd2a3bb2..75378aee01c 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs @@ -8,11 +8,6 @@ using Unity.Burst; using UnityEngine.Profiling; -[assembly: RegisterGenericJobType(typeof(UnityEngine.Rendering.RegisterNewInstancesJob))] -[assembly: RegisterGenericJobType(typeof(UnityEngine.Rendering.RegisterNewInstancesJob))] -[assembly: RegisterGenericJobType(typeof(UnityEngine.Rendering.FindNonRegisteredInstancesJob))] -[assembly: RegisterGenericJobType(typeof(UnityEngine.Rendering.FindNonRegisteredInstancesJob))] - namespace UnityEngine.Rendering { internal delegate void OnCullingCompleteCallback(JobHandle jobHandle, in BatchCullingContext cullingContext, in BatchCullingOutput cullingOutput); @@ -191,48 +186,109 @@ public void Execute(int startIndex, int count) } [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - internal struct FindNonRegisteredInstancesJob : IJobParallelForBatch where T : unmanaged + internal struct FindNonRegisteredMeshesJob : IJobParallelForBatch { public const int k_BatchSize = 128; [ReadOnly] public NativeArray instanceIDs; - [ReadOnly] public NativeParallelHashMap hashMap; + [ReadOnly] public NativeParallelHashMap hashMap; [WriteOnly] public NativeList.ParallelWriter outInstancesWriter; public unsafe void Execute(int startIndex, int count) { - int* notFoundinstanceIDs = stackalloc int[k_BatchSize]; - int length = 0; + int* notFoundinstanceIDsPtr = stackalloc int[k_BatchSize]; + var notFoundinstanceIDs = new UnsafeList(notFoundinstanceIDsPtr, k_BatchSize); + + notFoundinstanceIDs.Length = 0; for (int i = startIndex; i < startIndex + count; ++i) { int instanceID = instanceIDs[i]; if (!hashMap.ContainsKey(instanceID)) - notFoundinstanceIDs[length++] = instanceID; + notFoundinstanceIDs.AddNoResize(instanceID); } - outInstancesWriter.AddRangeNoResize(notFoundinstanceIDs, length); + outInstancesWriter.AddRangeNoResize(notFoundinstanceIDsPtr, notFoundinstanceIDs.Length); } } [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] - internal struct RegisterNewInstancesJob : IJobParallelFor where T : unmanaged + internal struct FindNonRegisteredMaterialsJob : IJobParallelForBatch { public const int k_BatchSize = 128; [ReadOnly] public NativeArray instanceIDs; - [ReadOnly] public NativeArray batchIDs; + [ReadOnly] public NativeArray packedMaterialDatas; + [ReadOnly] public NativeParallelHashMap hashMap; - [WriteOnly] public NativeParallelHashMap.ParallelWriter hashMap; + [WriteOnly] public NativeList.ParallelWriter outInstancesWriter; + [WriteOnly] public NativeList.ParallelWriter outPackedMaterialDatasWriter; - public unsafe void Execute(int index) + public unsafe void Execute(int startIndex, int count) + { + int* notFoundinstanceIDsPtr = stackalloc int[k_BatchSize]; + var notFoundinstanceIDs = new UnsafeList(notFoundinstanceIDsPtr, k_BatchSize); + + GPUDrivenPackedMaterialData* notFoundPackedMaterialDatasPtr = stackalloc GPUDrivenPackedMaterialData[k_BatchSize]; + var notFoundPackedMaterialDatas = new UnsafeList(notFoundPackedMaterialDatasPtr, k_BatchSize); + + notFoundinstanceIDs.Length = 0; + notFoundPackedMaterialDatas.Length = 0; + + for (int i = startIndex; i < startIndex + count; ++i) + { + int instanceID = instanceIDs[i]; + + if (!hashMap.ContainsKey(instanceID)) + { + notFoundinstanceIDs.AddNoResize(instanceID); + notFoundPackedMaterialDatas.AddNoResize(packedMaterialDatas[i]); + } + } + + outInstancesWriter.AddRangeNoResize(notFoundinstanceIDsPtr, notFoundinstanceIDs.Length); + outPackedMaterialDatasWriter.AddRangeNoResize(notFoundPackedMaterialDatasPtr, notFoundPackedMaterialDatas.Length); + } + } + + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + internal struct RegisterNewMeshesJob : IJobParallelFor + { + public const int k_BatchSize = 128; + + [ReadOnly] public NativeArray instanceIDs; + [ReadOnly] public NativeArray batchIDs; + + [WriteOnly] public NativeParallelHashMap.ParallelWriter hashMap; + + public void Execute(int index) { hashMap.TryAdd(instanceIDs[index], batchIDs[index]); } } + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] + internal struct RegisterNewMaterialsJob : IJobParallelFor + { + public const int k_BatchSize = 128; + + [ReadOnly] public NativeArray instanceIDs; + [ReadOnly] public NativeArray packedMaterialDatas; + [ReadOnly] public NativeArray batchIDs; + + [WriteOnly] public NativeParallelHashMap.ParallelWriter batchMaterialHashMap; + [WriteOnly] public NativeParallelHashMap.ParallelWriter packedMaterialHashMap; + + public void Execute(int index) + { + var instanceID = instanceIDs[index]; + batchMaterialHashMap.TryAdd(instanceID, batchIDs[index]); + packedMaterialHashMap.TryAdd(instanceID, packedMaterialDatas[index]); + } + } + [BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)] internal struct RemoveDrawInstanceIndicesJob : IJob { @@ -468,7 +524,7 @@ public void ProcessRenderer(int i) { var materialID = rendererData.materialID[materialIndex]; bool isFound = packedMaterialDataHash.TryGetValue(materialID, out packedMaterialData); - Assert.IsTrue(isFound); + Assert.IsTrue(isFound, "Packed material data not found."); } supportsIndirect &= packedMaterialData.isIndirectSupported; @@ -1011,41 +1067,45 @@ public void PostCullBeginCameraRendering(RenderRequestBatcherContext context) private void RegisterBatchMeshes(NativeArray meshIDs) { var newMeshIDs = new NativeList(meshIDs.Length, Allocator.TempJob); - new FindNonRegisteredInstancesJob + new FindNonRegisteredMeshesJob { instanceIDs = meshIDs, hashMap = m_BatchMeshHash, outInstancesWriter = newMeshIDs.AsParallelWriter() } - .ScheduleBatch(meshIDs.Length, FindNonRegisteredInstancesJob.k_BatchSize).Complete(); + .ScheduleBatch(meshIDs.Length, FindNonRegisteredMeshesJob.k_BatchSize).Complete(); var newBatchMeshIDs = new NativeArray(newMeshIDs.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory); m_BRG.RegisterMeshes(newMeshIDs.AsArray(), newBatchMeshIDs); int totalMeshesNum = m_BatchMeshHash.Count() + newBatchMeshIDs.Length; m_BatchMeshHash.Capacity = Math.Max(m_BatchMeshHash.Capacity, Mathf.CeilToInt(totalMeshesNum / 1023.0f) * 1024); - new RegisterNewInstancesJob + new RegisterNewMeshesJob { instanceIDs = newMeshIDs.AsArray(), batchIDs = newBatchMeshIDs, hashMap = m_BatchMeshHash.AsParallelWriter() } - .Schedule(newMeshIDs.Length, RegisterNewInstancesJob.k_BatchSize).Complete(); + .Schedule(newMeshIDs.Length, RegisterNewMeshesJob.k_BatchSize).Complete(); newMeshIDs.Dispose(); newBatchMeshIDs.Dispose(); } - private void RegisterBatchMaterials(in NativeArray usedMaterialIDs) + private void RegisterBatchMaterials(in NativeArray usedMaterialIDs, in NativeArray usedPackedMaterialDatas) { + Debug.Assert(usedMaterialIDs.Length == usedPackedMaterialDatas.Length, "Each material ID should correspond to one packed material data."); var newMaterialIDs = new NativeList(usedMaterialIDs.Length, Allocator.TempJob); - new FindNonRegisteredInstancesJob + var newPackedMaterialDatas = new NativeList(usedMaterialIDs.Length, Allocator.TempJob); + new FindNonRegisteredMaterialsJob { instanceIDs = usedMaterialIDs, + packedMaterialDatas = usedPackedMaterialDatas, hashMap = m_BatchMaterialHash, - outInstancesWriter = newMaterialIDs.AsParallelWriter() + outInstancesWriter = newMaterialIDs.AsParallelWriter(), + outPackedMaterialDatasWriter = newPackedMaterialDatas.AsParallelWriter() } - .ScheduleBatch(usedMaterialIDs.Length, FindNonRegisteredInstancesJob.k_BatchSize).Complete(); + .ScheduleBatch(usedMaterialIDs.Length, FindNonRegisteredMaterialsJob.k_BatchSize).Complete(); var newBatchMaterialIDs = new NativeArray(newMaterialIDs.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory); m_BRG.RegisterMaterials(newMaterialIDs.AsArray(), newBatchMaterialIDs); @@ -1054,15 +1114,18 @@ private void RegisterBatchMaterials(in NativeArray usedMaterialIDs) m_BatchMaterialHash.Capacity = Math.Max(m_BatchMaterialHash.Capacity, Mathf.CeilToInt(totalMaterialsNum / 1023.0f) * 1024); m_PackedMaterialHash.Capacity = m_BatchMaterialHash.Capacity; - new RegisterNewInstancesJob + new RegisterNewMaterialsJob { instanceIDs = newMaterialIDs.AsArray(), + packedMaterialDatas = newPackedMaterialDatas.AsArray(), batchIDs = newBatchMaterialIDs, - hashMap = m_BatchMaterialHash.AsParallelWriter() + batchMaterialHashMap = m_BatchMaterialHash.AsParallelWriter(), + packedMaterialHashMap = m_PackedMaterialHash.AsParallelWriter() } - .Schedule(newMaterialIDs.Length, RegisterNewInstancesJob.k_BatchSize).Complete(); + .Schedule(newMaterialIDs.Length, RegisterNewMaterialsJob.k_BatchSize).Complete(); newMaterialIDs.Dispose(); + newPackedMaterialDatas.Dispose(); newBatchMaterialIDs.Dispose(); } @@ -1078,15 +1141,13 @@ public JobHandle SchedulePackedMaterialCacheUpdate(NativeArray materialIDs, public void BuildBatch( NativeArray instances, - NativeArray usedMaterialIDs, - NativeArray usedMeshIDs, in GPUDrivenRendererGroupData rendererData, bool registerMaterialsAndMeshes) { if (registerMaterialsAndMeshes) { - RegisterBatchMaterials(usedMaterialIDs); - RegisterBatchMeshes(usedMeshIDs); + RegisterBatchMaterials(rendererData.materialID, rendererData.packedMaterialData); + RegisterBatchMeshes(rendererData.meshID); } new CreateDrawBatchesJob From b5cb46cda4e736cbbb7157ba0390a8913d3654d4 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 22 May 2025 15:50:06 +0000 Subject: [PATCH 09/11] [Port] [6000.0] [VFX] Fixed matrix 4x4 was overflowing in a context block --- .../Editor/UIResources/uss/PropertyRM.uss | 8 +++++--- .../Editor/UIResources/uss/VFXDataAnchor.uss | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Packages/com.unity.visualeffectgraph/Editor/UIResources/uss/PropertyRM.uss b/Packages/com.unity.visualeffectgraph/Editor/UIResources/uss/PropertyRM.uss index 23b7686058d..5e83b2e7879 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/UIResources/uss/PropertyRM.uss +++ b/Packages/com.unity.visualeffectgraph/Editor/UIResources/uss/PropertyRM.uss @@ -107,9 +107,11 @@ .propertyrm #spacebutton.None { background-image : url("project:///Packages/com.unity.visualeffectgraph/Editor/UIResources/VFX/d_NoneSpace@2x.png"); } -.propertyrm VFXMatrix4x4Field Label { - width: 18px; - margin-left: 4px; + +.propertyrm #matrixContainer Label { + width: 20px; + margin-right: 2px; + -unity-text-align: middle-right; } .propertyrm #spacebutton:hover { diff --git a/Packages/com.unity.visualeffectgraph/Editor/UIResources/uss/VFXDataAnchor.uss b/Packages/com.unity.visualeffectgraph/Editor/UIResources/uss/VFXDataAnchor.uss index af340652d11..e1fd03968e0 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/UIResources/uss/VFXDataAnchor.uss +++ b/Packages/com.unity.visualeffectgraph/Editor/UIResources/uss/VFXDataAnchor.uss @@ -175,6 +175,10 @@ VFXDataAnchor.Output #type -unity-text-align: middle-center; } +.VFXDataAnchor .propertyrm #matrixContainer FloatInput { + width: 30px; +} + .VFXOutputDataAnchor #icon { width: 13px; From 81463d7501eccfafc9696862981371ba08f06ed9 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Fri, 23 May 2025 15:39:56 +0000 Subject: [PATCH 10/11] [Port] [6000.0] Update .buginfo for `Post-processing and Compositing` --- .../Editor/PostProcessing/.buginfo | 2 +- .../Runtime/PostProcessing/.buginfo | 2 +- .../Editor/PostProcessing/.buginfo | 2 +- .../Runtime/PostProcessing/.buginfo | 2 +- Packages/com.unity.render-pipelines.universal/.buginfo | 8 +++++++- .../Shaders/PostProcessing/.buginfo | 1 + 6 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/.buginfo diff --git a/Packages/com.unity.render-pipelines.core/Editor/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/PostProcessing/.buginfo index d595eb6c6aa..24a842b92f3 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/PostProcessing/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Editor/PostProcessing/.buginfo @@ -1 +1 @@ -area: Post-processing and UI Features \ No newline at end of file +area: Post-processing and Compositing \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/.buginfo index fbd5f8466e1..24a842b92f3 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/PostProcessing/.buginfo @@ -1 +1 @@ -area: Post-processing and UI Features +area: Post-processing and Compositing \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.high-definition/Editor/PostProcessing/.buginfo index d595eb6c6aa..24a842b92f3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/PostProcessing/.buginfo +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/PostProcessing/.buginfo @@ -1 +1 @@ -area: Post-processing and UI Features \ No newline at end of file +area: Post-processing and Compositing \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/.buginfo index d595eb6c6aa..24a842b92f3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/.buginfo +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/PostProcessing/.buginfo @@ -1 +1 @@ -area: Post-processing and UI Features \ No newline at end of file +area: Post-processing and Compositing \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/.buginfo b/Packages/com.unity.render-pipelines.universal/.buginfo index 0343123ae4b..87a13392321 100644 --- a/Packages/com.unity.render-pipelines.universal/.buginfo +++ b/Packages/com.unity.render-pipelines.universal/.buginfo @@ -17,4 +17,10 @@ Tools: - ^.*Analytic?.*$ - ^.*LightExplorer?.*$ - ^.*MaterialUpgrader?.*$ - area: Graphics Tools \ No newline at end of file + area: Graphics Tools + +post-processing-and-compositing: + when: + path: + - ^.*PostProcessPass?.*$ + area: Post-processing and Compositing \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/.buginfo b/Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/.buginfo new file mode 100644 index 00000000000..24a842b92f3 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Shaders/PostProcessing/.buginfo @@ -0,0 +1 @@ +area: Post-processing and Compositing \ No newline at end of file From 4fe1c4bbdf9fd3fe54145dd74d4c938ca40bdeb3 Mon Sep 17 00:00:00 2001 From: Vimal Rethinachalam Date: Fri, 23 May 2025 15:39:56 +0000 Subject: [PATCH 11/11] 6000.0: Fix IndexOutOfRangeException Exception by allocating size with respect to visible lights length --- .../Runtime/Passes/AdditionalLightsShadowCasterPass.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs index 326bc83f126..52c6d560c72 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs @@ -686,7 +686,7 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, U s_EmptyAdditionalShadowFadeParams = new Vector4(shadowFadeScale, shadowFadeBias, 0, 0); var visibleLights = lightData.visibleLights; - if (m_VisibleLightIndexToAdditionalLightIndex.Length < visibleLights.Length) + if (s_EmptyAdditionalLightIndexToShadowParams.Length < visibleLights.Length) { m_VisibleLightIndexToAdditionalLightIndex = new short[visibleLights.Length]; m_VisibleLightIndexToIsCastingShadows = new bool[visibleLights.Length];