diff --git a/Packages/com.unity.render-pipelines.core/.buginfo b/Packages/com.unity.render-pipelines.core/.buginfo index 9074ad17503..c567d7cad5e 100644 --- a/Packages/com.unity.render-pipelines.core/.buginfo +++ b/Packages/com.unity.render-pipelines.core/.buginfo @@ -1,5 +1,5 @@ rule1: - area: SRP Architecture & API + area: SRP Foundation rule2: when: diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Images/LightAnchorAnimation.gif b/Packages/com.unity.render-pipelines.core/Documentation~/Images/LightAnchorAnimation.gif deleted file mode 100644 index 2e4ea72c416..00000000000 Binary files a/Packages/com.unity.render-pipelines.core/Documentation~/Images/LightAnchorAnimation.gif and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Images/videos/light-anchor-animation.mp4 b/Packages/com.unity.render-pipelines.core/Documentation~/Images/videos/light-anchor-animation.mp4 new file mode 100644 index 00000000000..1b7784f1e57 Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Documentation~/Images/videos/light-anchor-animation.mp4 differ diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Look-Dev-Environment-Library.md b/Packages/com.unity.render-pipelines.core/Documentation~/Look-Dev-Environment-Library.md index 975f6a8e3ae..8b836adba35 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/Look-Dev-Environment-Library.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/Look-Dev-Environment-Library.md @@ -4,7 +4,7 @@ An Environment Library is an Asset that contains a list of environments that you -![](Images/LookDevEnvironmentLibrary1.png) +![Environment Library asset.](Images/LookDevEnvironmentLibrary1.png) ## Creating an Environment Library @@ -26,13 +26,13 @@ To add, remove, or duplicate environments, use the toolbar at the bottom of the | **Button** | **Function** | **Description** | | ------------------------------------------------------------ | ------------- | ------------------------------------------------------------ | -| ![](Images/LookDevEnvironmentLibrary2.png) | **Add** | Click this button to add a new environment to the bottom of the list. | -| ![](Images/LookDevEnvironmentLibrary3.png) | **Remove** | Click this button to remove the environment currently selected. Note that the environment that you have selected is the one with the blue frame. | -| ![](Images/LookDevEnvironmentLibrary4.png) | **Duplicate** | Click this button to duplicate the currently selected environment and add it as a new environment to the bottom of the list. | +| ![This button adds a new environment to the bottom of the list.](Images/LookDevEnvironmentLibrary2.png) | **Add** | Click this button to add a new environment to the bottom of the list. | +| ![This button removes the currently selected environment.](Images/LookDevEnvironmentLibrary3.png) | **Remove** | Click this button to remove the environment currently selected. Note that the environment that you have selected is the one with the blue frame. | +| ![This button duplicates the currently selected environment.](Images/LookDevEnvironmentLibrary4.png) | **Duplicate** | Click this button to duplicate the currently selected environment and add it as a new environment to the bottom of the list. | ## Properties -![](Images/LookDevEnvironmentLibrary5.png) +![Environment Library properties](Images/LookDevEnvironmentLibrary5.png) | **Property** | **Description** | | ------------------- | ------------------------------------------------------------ | diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Look-Dev.md b/Packages/com.unity.render-pipelines.core/Documentation~/Look-Dev.md index 5bf6be3a328..4b9f4763648 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/Look-Dev.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/Look-Dev.md @@ -46,7 +46,7 @@ Use the toolbar in the top-left of the window to change which viewing mode Look ### Single viewport -![](Images/LookDev1.png) +![Buttons for switching between viewports 1 and 2.](Images/LookDev1.png) By default, Look Dev displays a single viewport which contains the Prefab or GameObject you are working with. If you are in another viewing mode, you can click either the number **1** or number **2** button to go back to single view. Each button corresponds to a viewport in Look Dev. Select button **1** to use viewport 1, and button 2 to use viewport **2**. @@ -54,7 +54,7 @@ By default, Look Dev displays a single viewport which contains the Prefab or Gam ### Multi-viewport -![](Images/LookDev2.png) +![Buttons for changing the multi-viewport mode.](Images/LookDev2.png) Use multiple viewports to compare different environments and settings for the same Asset. You can arrange viewports: @@ -73,23 +73,21 @@ When using multiple viewports, it only makes sense to compare different Prefabs Vertical and horizontal side-by-side viewports show an identical view of your Asset. -![](Images/LookDev3.png) +![Vertical side-by-side viewport view.](Images/LookDev3.png) ##### Split-screen In a split-screen view, there is a red/blue manipulation Gizmo that separates the two viewports. For information on how to use this Gizmo, see [Using the manipulation Gizmo](#ManipulationGizmo). -![](Images/LookDev4.png) +![Split-screen viewport view.](Images/LookDev4.png) #### Multi-viewport Camera By default, Look Dev synchronizes the camera movement for both views. To decouple the Cameras from one another, and manipulate them independently, click the **Synchronized Cameras** button in-between the two numbered Camera buttons. -![](Images/LookDev5.png) - To align the cameras with each other, or reset them, click on the drop-down arrow next to the viewport **2** icon: -![](Images/LookDev6.png) +![Drop-down options of multi-viewport cameras.](Images/LookDev6.png) @@ -101,13 +99,11 @@ The manipulation Gizmo represents the separation plane between the two viewports To move the separator, click and drag the straight line of the Gizmo to the location you want. -![](Images/LookDev7.png) - #### Changing the orientation and length To change the orientation and length of the manipulator Gizmo, click and drag the circle at either end of the manipulator. Changing the length of the Gizmo lets you set the orientation and [blending](#Blending) values more precisely. -![](Images/LookDev8.png)) +![Click and drag the circle at either end of the gizmo to change its orientation and length.](Images/LookDev8.png) #### Changing the split in increments @@ -121,7 +117,7 @@ The central white circle on the separator allows you to blend between the two vi The white circle automatically snaps back into the center when you drag it back. This helps you get back to the default blending value quickly. -![](Images/LookDev9.png) +![The white circle on the separator lets you change the blending behavior.](Images/LookDev9.png) ### HDRI environments in Look Dev diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/Rendering-Debugger.md b/Packages/com.unity.render-pipelines.core/Documentation~/Rendering-Debugger.md index 988b773307f..f761d66735f 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/Rendering-Debugger.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/Rendering-Debugger.md @@ -127,7 +127,7 @@ public class CustomDebugPanel : MonoBehaviour Add the script to a GameObject. You should see a new **My Custom Panel** panel in the **Rendering Debugger** window. -![](Images/rendering-debugger.png) +![Screenshot of the Rendering Debugger window showing a new custom panel.](Images/rendering-debugger.png) ### Add a control to an existing panel diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/View-Lighting-Tool.md b/Packages/com.unity.render-pipelines.core/Documentation~/View-Lighting-Tool.md index ef36cc257bc..a224d2763e7 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/View-Lighting-Tool.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/View-Lighting-Tool.md @@ -17,13 +17,13 @@ Use the **Orbit** and **Elevation** to control the orientation of the light, in You can use the **Anchor Position Override** to provide a GameObject’s [Transform](https://docs.unity3d.com/ScriptReference/Transform.html) as an anchor point for the Light. This is useful if you want the Light to follow a specific GameObject in the Scene. -![](Images/LightAnchorAnimation.gif) + **Note**: The above example uses the Main Camera as the reference Camera that adjusts the light rotation. The Common presets might create a different result in the Scene View if your view isn't aligned with the Main Camera. You can set a **Position Offset** for this custom Anchor. This is useful if the Transform position of the custom Anchor isn't centered appropriately for the light to orbit correctly around the custom Anchor. -![](Images/LightAnchor0.png) +![Light Anchor component screenshot. Orbit and Elevation properties display example values that change the orientation of a light.](Images/LightAnchor0.png) The Light Anchor component also includes a list of **Presets** that you can use to set the Light's orientation relative to the main Camera. diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-setting.md b/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-setting.md index d3a57390314..c4505bc83f5 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-setting.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-setting.md @@ -37,7 +37,7 @@ public class MySettings : IRenderPipelineGraphicsSettings public Material myMaterial; } ``` -![](Images/customsettings-addsetting.png)
+![Screenshot of the Project Settings window. The Graphics section contains the new custom settings from the example script.](Images/customsettings-addsetting.png)
The **Edit** > **Project Settings** > **Graphics** window with the new custom setting from the example script. ## Set the default asset for a reference property diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-settings.md b/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-settings.md index 1365a8648f4..d0d515da02f 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-settings.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/add-custom-graphics-settings.md @@ -37,7 +37,7 @@ public class MySettings : IRenderPipelineGraphicsSettings } ``` -![](Images/customsettings-settingsgroup.png)
+![Screenshot of the Project Settings window. The Graphics section contains the new custom settings group from the example script.](Images/customsettings-settingsgroup.png)
The **Edit** > **Project Settings** > **Graphics** window with the new custom settings group from the example script. ## Change the display order of settings groups diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/adding-properties.md b/Packages/com.unity.render-pipelines.core/Documentation~/adding-properties.md index b6554fb9261..26a649ba9d8 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/adding-properties.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/adding-properties.md @@ -30,4 +30,4 @@ For example: Unity shows the new properties in the **Core Render Pipeline** settings section: -![](Images/core_render_pipeline_preference_provider.png) +![Screenshot of the Preferences window showing the new properties in the Core Render Pipeline settings section.](Images/core_render_pipeline_preference_provider.png) diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/customize-ui-for-a-setting.md b/Packages/com.unity.render-pipelines.core/Documentation~/customize-ui-for-a-setting.md index bf340bb3b79..59bd163b680 100644 --- a/Packages/com.unity.render-pipelines.core/Documentation~/customize-ui-for-a-setting.md +++ b/Packages/com.unity.render-pipelines.core/Documentation~/customize-ui-for-a-setting.md @@ -55,16 +55,16 @@ public class MySettingsPropertyDrawer : PropertyDrawer To add items to the **More** (⋮) menu of a settings group, follow these steps: -1. Create a class that implements the [`IRenderPipelineGraphicsSettingsContextMenu`](https://docs.unity3d.com/6000.1/Documentation/ScriptReference/Rendering.IRenderPipelineGraphicsSettingsContextMenu.html) interface. +1. Create a class that implements the [`IRenderPipelineGraphicsSettingsContextMenu2`](https://docs.unity3d.com/6000.1/Documentation/ScriptReference/Rendering.IRenderPipelineGraphicsSettingsContextMenu2_1.html) interface. 2. Implement the `PopulateContextMenu` method. 3. To add an item, use the `AddItem` API. For example: ```c# -public class MySettingsContextMenu : IRenderPipelineGraphicsSettingsContextMenu +public class MySettingsContextMenu : IRenderPipelineGraphicsSettingsContextMenu2 { - void IRenderPipelineGraphicsSettingsContextMenu.PopulateContextMenu(MySettings setting, PropertyDrawer _, ref GenericMenu menu) + void IRenderPipelineGraphicsSettingsContextMenu2.PopulateContextMenu(MySettings setting, SerializedProperty _, ref GenericMenu menu) { menu.AddItem(new GUIContent("My custom menu item"), false, () => { Debug.Log("Menu item was selected."); }); } @@ -74,4 +74,5 @@ public class MySettingsContextMenu : IRenderPipelineGraphicsSettingsContextMenu< ## Additional resources - [PropertyDrawer](xref:UnityEditor.PropertyDrawer) -- [IRenderPipelineGraphicsSettingsContextMenu](https://docs.unity3d.com/6000.1/Documentation/ScriptReference/Rendering.IRenderPipelineGraphicsSettingsContextMenu.html) +- [IRenderPipelineGraphicsSettingsContextMenu2](https://docs.unity3d.com/6000.2/Documentation/ScriptReference/Rendering.IRenderPipelineGraphicsSettingsContextMenu2.html) +- [IRenderPipelineGraphicsSettingsContextMenu2](https://docs.unity3d.com/6000.2/Documentation/ScriptReference/Rendering.IRenderPipelineGraphicsSettingsContextMenu2_1.html) diff --git a/Packages/com.unity.render-pipelines.core/Editor/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/.buginfo index 4e2adcc5b61..1bbc9ead8a3 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Editor/.buginfo @@ -1,5 +1,5 @@ rule1: - area: SRP Architecture & API + area: SRP Foundation rule2: when: @@ -15,7 +15,7 @@ rule3: - ^.*CoreRenderPipelinePreferences.*$ - ^.*InspectorCurveEditor.*$ - ^.*RemoveAdditionalDataUtils.*$ - area: SRP Workflow + area: SRP Settings rule4: when: diff --git a/Packages/com.unity.render-pipelines.core/Editor/Camera/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/Camera/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Camera/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Editor/Camera/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Editor/Deprecated.cs b/Packages/com.unity.render-pipelines.core/Editor/Deprecated.cs index cea5bdd6459..e2431b6ecaa 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Deprecated.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Deprecated.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering; +using UnityEngine.UIElements; namespace UnityEditor.Rendering { @@ -182,7 +183,28 @@ public DefaultVolumeProfileEditor(Editor baseEditor, VolumeProfile profile) } } + public abstract partial class DefaultVolumeProfileSettingsPropertyDrawer + { + /// + /// Context menu implementation for Default Volume Profile. + /// + /// Default Volume Profile Settings type + /// Render Pipeline type + [Obsolete("Use DefaultVolumeProfileSettingsPropertyDrawer.DefaultVolumeProfileSettingsContextMenu2 instead #from(6000.0)")] + public abstract class DefaultVolumeProfileSettingsContextMenu : IRenderPipelineGraphicsSettingsContextMenu + where TSetting : class, IDefaultVolumeProfileSettings + where TRenderPipeline : RenderPipeline + { + /// + /// Path where new Default Volume Profile will be created. + /// + [Obsolete("Not used anymore. #from(6000.0)")] + protected abstract string defaultVolumeProfilePath { get; } + [Obsolete("Not used anymore. #from(6000.0)")] + void IRenderPipelineGraphicsSettingsContextMenu.PopulateContextMenu(TSetting setting, PropertyDrawer property, ref GenericMenu menu){ } + } + } /// /// Builtin Drawer for Maskfield Debug Items. diff --git a/Packages/com.unity.render-pipelines.core/Editor/Gizmo/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/Gizmo/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Gizmo/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Editor/Gizmo/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/Icons/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Icons/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file 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 922c77f8979..b126b6cf3c0 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 @@ -748,8 +748,7 @@ static bool SetBakingContext(List perSceneData) for (int i = 0; i < perSceneData.Count; ++i) { var data = perSceneData[i]; - var scene = data.gameObject.scene; - var sceneGUID = scene.GetGUID(); + var sceneGUID = data.sceneGUID; var bakingSet = ProbeVolumeBakingSet.GetBakingSetForScene(sceneGUID); if (bakingSet == null) @@ -757,7 +756,8 @@ static bool SetBakingContext(List perSceneData) if (isBakingSingleScene) continue; - Debug.LogError($"Scene '{scene.name}' does not belong to any Baking Set. Please add it to a Baking Set in the Adaptive Probe Volumes tab of the Lighting Window."); + var sceneName = data.gameObject.scene.name; + Debug.LogError($"Scene '{sceneName}' does not belong to any Baking Set. Please add it to a Baking Set in the Adaptive Probe Volumes tab of the Lighting Window."); return false; } @@ -938,8 +938,11 @@ internal static bool PrepareBaking() static bool InitializeBake() { - if (ProbeVolumeLightingTab.instance?.PrepareAPVBake() == false) return false; - if (!ProbeReferenceVolume.instance.isInitialized || !ProbeReferenceVolume.instance.enabledBySRP) return false; + if (ProbeVolumeLightingTab.instance?.PrepareAPVBake(ProbeReferenceVolume.instance) == false) + return false; + + if (!ProbeReferenceVolume.instance.isInitialized || !ProbeReferenceVolume.instance.enabledBySRP) + return false; using var scope = new BakingSetupProfiling(BakingSetupProfiling.Stages.PrepareWorldSubdivision); @@ -954,13 +957,16 @@ static bool InitializeBake() } } - if (ProbeReferenceVolume.instance.perSceneDataList.Count == 0) return false; + if (ProbeReferenceVolume.instance.perSceneDataList.Count == 0) + return false; var sceneDataList = GetPerSceneDataList(); - if (sceneDataList.Count == 0) return false; + if (sceneDataList.Count == 0) + return false; var pvList = GetProbeVolumeList(); - if (pvList.Count == 0) return false; // We have no probe volumes. + if (pvList.Count == 0) + return false; // We have no probe volumes. CachePVHashes(pvList); diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs index fcd6253a80e..e0275f52108 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs @@ -102,7 +102,7 @@ static ProbeVolumeBakingSet defaultSet } } - public static ProbeVolumeLightingTab instance; + public static ProbeVolumeLightingTab instance = new(); public static bool singleSceneMode => instance?.m_SingleSceneMode ?? true; @@ -957,9 +957,8 @@ static bool BakeAllReflectionProbes() return (bool)k_Lightmapping_BakeAllReflectionProbesSnapshots.Invoke(null, null); } - internal bool PrepareAPVBake() + internal bool PrepareAPVBake(ProbeReferenceVolume prv) { - var prv = ProbeReferenceVolume.instance; if (!prv.isInitialized || !prv.enabledBySRP) return false; @@ -979,9 +978,11 @@ internal bool PrepareAPVBake() { if(!activeSet.DialogNoProbeVolumeInSetShown()) { - if(EditorUtility.DisplayDialog("No Adaptive Probe Volume in Scene", "Adaptive Probe Volumes are enabled for this Project, but none exist in the Scene.\n\n" + - "Do you wish to add an Adaptive Probe Volume to the Active Scene?", "Yes", "No")) - CreateProbeVolume(); + if (!Application.isBatchMode) + if (EditorUtility.DisplayDialog("No Adaptive Probe Volume in Scene", + "Adaptive Probe Volumes are enabled for this Project, but none exist in the Scene.\n\n" + + "Do you wish to add an Adaptive Probe Volume to the Active Scene?", "Yes", "No")) + CreateProbeVolume(); activeSet.SetDialogNoProbeVolumeInSetShown(true); } } @@ -989,7 +990,13 @@ internal bool PrepareAPVBake() { if (GetFirstProbeVolumeInNonActiveScene() != null) { - int res = EditorUtility.DisplayDialogComplex("Create Baking Set?", "You are using the Single Scene Baking Mode and have more than one Scene loaded. It is not possible to generate lighting.\n\n" + + const string warning = "You are using the Single Scene Baking Mode and have more than one Scene loaded. It is not possible to generate lighting."; + if (Application.isBatchMode) + { + Debug.LogWarning(warning + " Consider creating a Baking Set."); + return false; + } + int res = EditorUtility.DisplayDialogComplex("Create Baking Set?", warning + "\n\n" + "Do you want to create a Baking Set instead?", "Yes", "Cancel", "Bake anyway"); if (res == 0) ConvertTempBakingSet(); @@ -1020,7 +1027,7 @@ internal bool PrepareAPVBake() if (AdaptiveProbeVolumes.partialBakeSceneList.Count == activeSet.sceneGUIDs.Count) AdaptiveProbeVolumes.partialBakeSceneList = null; - if (ProbeReferenceVolume.instance.supportLightingScenarios && !activeSet.m_LightingScenarios.Contains(activeSet.lightingScenario) && activeSet.m_LightingScenarios.Count > 0) + if (prv.supportLightingScenarios && !activeSet.m_LightingScenarios.Contains(activeSet.lightingScenario) && activeSet.m_LightingScenarios.Count > 0) activeSet.SetActiveScenario(activeSet.m_LightingScenarios[0], false); // Layout has changed and is incompatible. @@ -1028,14 +1035,26 @@ internal bool PrepareAPVBake() { if (AdaptiveProbeVolumes.partialBakeSceneList != null) { - if (EditorUtility.DisplayDialog("Incompatible Layout", "You are partially baking the set with an incompatible cell layout. Proceeding will invalidate all previously bake data.\n\n" + "Do you wish to continue?", "Yes", "No")) + const string warning = "You are partially baking the set with an incompatible cell layout."; + if (Application.isBatchMode) + { + Debug.LogWarning(warning); + return false; + } + if (EditorUtility.DisplayDialog("Incompatible Layout", warning + " Proceeding will invalidate all previously bake data.\n\n" + "Do you wish to continue?", "Yes", "No")) ClearBakedData(); else return false; } - else if (ProbeReferenceVolume.instance.supportLightingScenarios && activeSet.scenarios.Count != (activeSet.scenarios.ContainsKey(activeSet.lightingScenario) ? 1 : 0)) + else if (prv.supportLightingScenarios && activeSet.scenarios.Count != (activeSet.scenarios.ContainsKey(activeSet.lightingScenario) ? 1 : 0)) { - if (EditorUtility.DisplayDialog("Incompatible Layout", "You are baking scenarios with incompatible cell layouts. Proceeding will invalidate all previously bake data.\n\n" + "Do you wish to continue?", "Yes", "No")) + const string warning = "You are baking scenarios with incompatible cell layouts."; + if (Application.isBatchMode) + { + Debug.LogWarning(warning); + return false; + } + if (EditorUtility.DisplayDialog("Incompatible Layout", warning + " Proceeding will invalidate all previously bake data.\n\n" + "Do you wish to continue?", "Yes", "No")) ClearBakedData(); else return false; diff --git a/Packages/com.unity.render-pipelines.core/Editor/Settings/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/Settings/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Settings/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Editor/Settings/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Editor/Settings/PropertyDrawers/DefaultVolumeProfileSettingsPropertyDrawer.cs b/Packages/com.unity.render-pipelines.core/Editor/Settings/PropertyDrawers/DefaultVolumeProfileSettingsPropertyDrawer.cs index b030fc73132..bd307155ce0 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Settings/PropertyDrawers/DefaultVolumeProfileSettingsPropertyDrawer.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Settings/PropertyDrawers/DefaultVolumeProfileSettingsPropertyDrawer.cs @@ -8,7 +8,7 @@ namespace UnityEditor.Rendering /// /// Base implementation for drawing Default Volume Profile UI in Graphics Settings. /// - public abstract class DefaultVolumeProfileSettingsPropertyDrawer : PropertyDrawer + public abstract partial class DefaultVolumeProfileSettingsPropertyDrawer : PropertyDrawer { // UUM-77758: Due to how PropertyDrawers are created and cached, there is no way to retrieve them reliably // later. We know that only one DefaultVolumeProfile exists at any given time, so we can access it through @@ -118,7 +118,7 @@ protected void DestroyDefaultVolumeProfileEditor() /// /// Default Volume Profile Settings type /// Render Pipeline type - public abstract class DefaultVolumeProfileSettingsContextMenu : IRenderPipelineGraphicsSettingsContextMenu + public abstract class DefaultVolumeProfileSettingsContextMenu2 : IRenderPipelineGraphicsSettingsContextMenu2 where TSetting : class, IDefaultVolumeProfileSettings where TRenderPipeline : RenderPipeline { @@ -127,7 +127,7 @@ public abstract class DefaultVolumeProfileSettingsContextMenu protected abstract string defaultVolumeProfilePath { get; } - void IRenderPipelineGraphicsSettingsContextMenu.PopulateContextMenu(TSetting setting, PropertyDrawer _, ref GenericMenu menu) + void IRenderPipelineGraphicsSettingsContextMenu2.PopulateContextMenu(TSetting setting, SerializedProperty _, ref GenericMenu menu) { bool canCreateNewAsset = RenderPipelineManager.currentPipeline is TRenderPipeline; VolumeProfileUtils.AddVolumeProfileContextMenuItems(ref menu, diff --git a/Packages/com.unity.render-pipelines.core/Editor/Volume/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/Volume/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Volume/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Editor/Volume/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Camera/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/Camera/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Camera/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/Camera/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Common/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/Common/.buginfo index 329e848ef5b..b249c007b56 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Common/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/Common/.buginfo @@ -1,5 +1,5 @@ rule1: - area: SRP Architecture & API + area: SRP Foundation rule2: when: @@ -7,4 +7,4 @@ rule2: - ^.*CoreAttributes.*$ - ^.*IAdditionalData.*$ - ^.*Reload.*$ - area: SRP Workflow + area: SRP Settings diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Common/CoreUnsafeUtils.cs b/Packages/com.unity.render-pipelines.core/Runtime/Common/CoreUnsafeUtils.cs index 0d39e81db19..35dbc628075 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Common/CoreUnsafeUtils.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Common/CoreUnsafeUtils.cs @@ -69,12 +69,18 @@ public bool TryPush(string v) } /// - /// Pop an element of the queue. + /// Try to pop an element of the queue. /// /// Output result string. - /// True if an element was succesfuly poped. + /// True if an element was successfully popped. public bool TryPop(out string v) { + if (m_ReadCursor + sizeof(int) >= m_BufferEnd) + { + v = null; + return false; + } + var size = *(int*)m_ReadCursor; if (size != 0) { @@ -84,7 +90,7 @@ public bool TryPop(out string v) return true; } - v = default; + v = null; return false; } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs index f7f88572b5f..76c6dc062d5 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Debugging/DebugDisplaySettingsVolumes.cs @@ -478,15 +478,11 @@ private static void GenerateTableRows(DebugUI.Table table, List(TransformTrackingType.GlobalTRS, Allocator.TempJob); var lodGroupData = m_Dispatcher.GetTypeChangesAndClear(Allocator.TempJob, noScriptingArray: true); var meshDataSorted = m_Dispatcher.GetTypeChangesAndClear(Allocator.TempJob, sortByInstanceID: true, noScriptingArray: true); - var materialData = m_Dispatcher.GetTypeChangesAndClear(Allocator.TempJob); + var materialData = m_Dispatcher.GetTypeChangesAndClear(Allocator.TempJob, noScriptingArray: true); var rendererData = m_Dispatcher.GetTypeChangesAndClear(Allocator.TempJob, noScriptingArray: true); Profiler.EndSample(); 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 f6615975f95..b3b2882ab6e 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 @@ -1388,7 +1388,7 @@ internal void AddPendingSceneLoading(string sceneGUID, ProbeVolumeBakingSet baki return; } - if (m_CurrentBakingSet != null && bakingSet != m_CurrentBakingSet) + if (m_CurrentBakingSet != null && !m_CurrentBakingSet.HasSameSceneGUIDs(bakingSet)) { // Trying to load data for a scene from a different baking set than currently loaded ones. // This should not throw an error, but it's not supported diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeBakingSet.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeBakingSet.cs index d37cd5090f6..e0b37ef8e2a 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeBakingSet.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumeBakingSet.cs @@ -1115,5 +1115,19 @@ internal int GetChunkGPUMemory(ProbeVolumeSHBands shBands) return size; } + + internal bool HasSameSceneGUIDs(ProbeVolumeBakingSet other) + { + var otherSceneGUIDs = other.sceneGUIDs; + if (m_SceneGUIDs.Count != otherSceneGUIDs.Count) + return false; + + for (var i = 0; i < m_SceneGUIDs.Count; ++i) + { + if (m_SceneGUIDs[i] != otherSceneGUIDs[i]) + return false; + } + return true; + } } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs index 4148af54fa0..2e3518ff0df 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Lighting/ProbeVolume/ProbeVolumesOptions.cs @@ -22,6 +22,7 @@ public APVLeakReductionModeParameter(APVLeakReductionMode value, bool overrideSt /// A volume component that holds settings for the Adaptive Probe Volumes System per-camera options. /// [Serializable, VolumeComponentMenu("Lighting/Adaptive Probe Volumes Options"), SupportedOnRenderPipeline] + [CurrentPipelineHelpURL("probevolumes")] public sealed class ProbeVolumesOptions : VolumeComponent { ProbeVolumesOptions() diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/CompilerContextData.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/CompilerContextData.cs index 324109f60b7..c1a42b35b19 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/CompilerContextData.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/CompilerContextData.cs @@ -43,41 +43,59 @@ internal static int LastIndex(this ref NativeList list) where T : unmanage // Datastructure that contains passes and dependencies and allow you to iterate and reason on them more like a graph internal class CompilerContextData : IDisposable, RenderGraph.ICompiledGraph { - public CompilerContextData(int estimatedNumPasses) + public CompilerContextData() { - passData = new NativeList(estimatedNumPasses, AllocatorManager.Persistent); fences = new Dictionary(); - passNames = new DynamicArray(estimatedNumPasses, false); // T in NativeList cannot contain managed types, so the names are stored separately - inputData = new NativeList(estimatedNumPasses * 2, AllocatorManager.Persistent); - outputData = new NativeList(estimatedNumPasses * 2, AllocatorManager.Persistent); - fragmentData = new NativeList(estimatedNumPasses * 4, AllocatorManager.Persistent); - randomAccessResourceData = new NativeList(4, AllocatorManager.Persistent); // We assume not a lot of passes use random write resources = new ResourcesData(); - nativePassData = new NativeList(estimatedNumPasses, AllocatorManager.Persistent);// assume nothing gets merged - nativeSubPassData = new NativeList(estimatedNumPasses, AllocatorManager.Persistent);// there should "never" be more subpasses than graph passes - createData = new NativeList(estimatedNumPasses * 2, AllocatorManager.Persistent); // assume every pass creates two resources - destroyData = new NativeList(estimatedNumPasses * 2, AllocatorManager.Persistent); // assume every pass destroys two resources + passNames = new DynamicArray(0, false); // T in NativeList cannot contain managed types, so the names are stored separately } - public void Initialize(RenderGraphResourceRegistry resourceRegistry) + void AllocateNativeDataStructuresIfNeeded(int estimatedNumPasses) + { + // Only first init or if Dispose() has been called through RenderGraph.Cleanup() + if (!m_AreNativeListsAllocated) + { + // These are risky heuristics that only work because we purposely estimate a very high number of passes + // We need to fix this with a proper size computation + passData = new NativeList(estimatedNumPasses, AllocatorManager.Persistent); + inputData = new NativeList(estimatedNumPasses * 2, AllocatorManager.Persistent); + outputData = new NativeList(estimatedNumPasses * 2, AllocatorManager.Persistent); + fragmentData = new NativeList(estimatedNumPasses * 4, AllocatorManager.Persistent); + randomAccessResourceData = new NativeList(4, AllocatorManager.Persistent); // We assume not a lot of passes use random write + nativePassData = new NativeList(estimatedNumPasses, AllocatorManager.Persistent);// assume nothing gets merged + nativeSubPassData = new NativeList(estimatedNumPasses, AllocatorManager.Persistent);// there should "never" be more subpasses than graph passes + createData = new NativeList(estimatedNumPasses * 2, AllocatorManager.Persistent); // assume every pass creates two resources + destroyData = new NativeList(estimatedNumPasses * 2, AllocatorManager.Persistent); // assume every pass destroys two resources + + m_AreNativeListsAllocated = true; + } + } + + public void Initialize(RenderGraphResourceRegistry resourceRegistry, int estimatedNumPasses) { resources.Initialize(resourceRegistry); + passNames.Reserve(estimatedNumPasses, false); + AllocateNativeDataStructuresIfNeeded(estimatedNumPasses); } public void Clear() { - passData.Clear(); - fences.Clear(); passNames.Clear(); - inputData.Clear(); - outputData.Clear(); - fragmentData.Clear(); - randomAccessResourceData.Clear(); resources.Clear(); - nativePassData.Clear(); - nativeSubPassData.Clear(); - createData.Clear(); - destroyData.Clear(); + + if (m_AreNativeListsAllocated) + { + passData.Clear(); + fences.Clear(); + inputData.Clear(); + outputData.Clear(); + fragmentData.Clear(); + randomAccessResourceData.Clear(); + nativePassData.Clear(); + nativeSubPassData.Clear(); + createData.Clear(); + destroyData.Clear(); + } } public ResourcesData resources; @@ -278,7 +296,7 @@ internal List GetNativePasses() // IDisposable implementation - bool m_Disposed; + bool m_AreNativeListsAllocated = false; ~CompilerContextData() => Cleanup(); @@ -290,10 +308,10 @@ public void Dispose() void Cleanup() { - if (!m_Disposed) - { - resources.Dispose(); + resources.Dispose(); + if (m_AreNativeListsAllocated) + { passData.Dispose(); inputData.Dispose(); outputData.Dispose(); @@ -303,7 +321,8 @@ void Cleanup() randomAccessResourceData.Dispose(); nativePassData.Dispose(); nativeSubPassData.Dispose(); - m_Disposed = true; + + m_AreNativeListsAllocated = false; } } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/NativePassCompiler.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/NativePassCompiler.cs index 62fa39fd787..ad71cfde118 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/NativePassCompiler.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/NativePassCompiler.cs @@ -34,15 +34,12 @@ internal struct RenderGraphInputInfo public NativePassCompiler(RenderGraphCompilationCache cache) { m_CompilationCache = cache; - defaultContextData = new CompilerContextData(k_EstimatedPassCount); + defaultContextData = new CompilerContextData(); toVisitPassIds = new Stack(k_EstimatedPassCount); - m_BeginRenderPassAttachments = new NativeList(FixedAttachmentArray.MaxAttachments, Allocator.Persistent); } // IDisposable implementation - bool m_Disposed; - ~NativePassCompiler() => Cleanup(); public void Dispose() @@ -51,12 +48,15 @@ public void Dispose() GC.SuppressFinalize(this); } - void Cleanup() + public void Cleanup() { - if (!m_Disposed) + // If caching enabled, the two can be different + contextData?.Dispose(); + defaultContextData?.Dispose(); + + if (m_BeginRenderPassAttachments.IsCreated) { m_BeginRenderPassAttachments.Dispose(); - m_Disposed = true; } } @@ -126,7 +126,7 @@ void SetupContextData(RenderGraphResourceRegistry resources) { using (new ProfilingScope(ProfilingSampler.Get(NativeCompilerProfileId.NRPRGComp_SetupContextData))) { - contextData.Initialize(resources); + contextData.Initialize(resources, k_EstimatedPassCount); } } @@ -1180,6 +1180,9 @@ internal unsafe void ExecuteBeginRenderPass(InternalRenderGraphContext rgContext } // Filling the attachments array to be sent to the rendering command buffer + if(!m_BeginRenderPassAttachments.IsCreated) + m_BeginRenderPassAttachments = new NativeList(FixedAttachmentArray.MaxAttachments, Allocator.Persistent); + m_BeginRenderPassAttachments.Resize(attachmentCount, NativeArrayOptions.UninitializedMemory); for (var i = 0; i < attachmentCount; ++i) { diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/PassesData.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/PassesData.cs index 2b303faf6ee..4a65850fe42 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/PassesData.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/PassesData.cs @@ -1115,89 +1115,63 @@ public static void TryMergeNativeSubPass(CompilerContextData contextData, ref Na passToMerge.nativeSubPassIndex = nativePass.numNativeSubPasses - 1; } - // In the case where we add a new graph pass with depth to a native pass that didn't have it, we need to update - // inputs in all the previous native subpasses of the native pass - static void UpdateNativeSubPassesAttachments(CompilerContextData contextData, ref NativePassData nativePass) + // Call this function while merging a graph pass and you need to add the depth attachment used by this graph pass + // Make sure to call it before adding the rest of the graph pass attachments and its generated subpass + void AddDepthAttachmentFirstDuringMerge(CompilerContextData contextData, in PassFragmentData depthAttachment) { - int lastVisitedNativeSubpassIdx = -1; - ref readonly var fragmentList = ref nativePass.fragments; + // Native pass can only have a single depth attachment + Debug.Assert(!hasDepth); - var countPasses = nativePass.lastGraphPass - nativePass.firstGraphPass + 1; + fragments.Add(depthAttachment); + hasDepth = true; - // Do not iterate over the last graph pass as it is the one we are currently adding - for (var graphPassIdx = 0; graphPassIdx < countPasses - 1; ++graphPassIdx) - { - // We only check the first graph pass of each existing native subpass - if other graph passes - // have been merged into a native subpass, it's because they had the same attachments. - ref readonly var currGraphPass = - ref contextData.passData.ElementAt(nativePass.firstGraphPass + graphPassIdx); + var size = fragments.size; - // Already updated this native subpass - if (currGraphPass.nativeSubPassIndex + nativePass.firstNativeSubPass == lastVisitedNativeSubpassIdx) - { - continue; - } + // If depth is the only attachment of the native pass, we are done + if (size == 1) return; - // Shouldn't be necessary since we only check the first graph pass of each existing native subpass - // But let's be safe and check anyway if the pass has been culled or not. - if (currGraphPass.culled) - { - continue; - } + // size > 1 + // In this case, we are adding depth attachment to a native pass with other existing attachments + int prevDepthIdx = size - 1; - lastVisitedNativeSubpassIdx = currGraphPass.nativeSubPassIndex + nativePass.firstNativeSubPass; - ref var nativeSubPassDescriptor = - ref contextData.nativeSubPassData.ElementAt(lastVisitedNativeSubpassIdx); + // Depth must always been the first attachment, so we switch the previous first one with the recently added depth attachment + (fragments[0], fragments[prevDepthIdx]) = (fragments[prevDepthIdx], fragments[0]); + + var depthFlag = GetSubPassFlagForMerging(); + + // We also need to increment the attachment indices of all the previous subpasses of this native pass. + // Otherwise the existing subpasses will point to the wrong attachments with depth being set as the first one + for (var nativeSubPassIndex = firstNativeSubPass; nativeSubPassIndex < firstNativeSubPass + numNativeSubPasses; nativeSubPassIndex++) + { + ref var subPassDesc = ref contextData.nativeSubPassData.ElementAt(nativeSubPassIndex); // If depth ends up being bound only because of merging - if (!currGraphPass.fragmentInfoHasDepth && nativePass.hasDepth) + // Set SubPassFlags to best match the pass we are trying to merge with + subPassDesc.flags = depthFlag; + + // Updating subpass color outputs + for (int i = 0; i < subPassDesc.colorOutputs.Length; i++) { - // Set SubPassFlags to best match the pass we are trying to merge with - nativeSubPassDescriptor.flags = nativePass.GetSubPassFlagForMerging(); + if (subPassDesc.colorOutputs[i] == 0) + { + subPassDesc.colorOutputs[i] = prevDepthIdx; + } } - // MRT attachments + // Updating subpass color inputs (framebuffer fetch) + for (int i = 0; i < subPassDesc.inputs.Length; i++) { - int fragmentIdx = 0; - int colorOffset = (currGraphPass.fragmentInfoHasDepth) ? -1 : 0; - - nativeSubPassDescriptor.colorOutputs = - new AttachmentIndexArray(currGraphPass.numFragments + colorOffset); - - foreach (ref readonly var graphPassFragment in currGraphPass.Fragments(contextData)) + if (subPassDesc.inputs[i] == 0) { - // Check if we're handling the depth attachment - if (currGraphPass.fragmentInfoHasDepth && fragmentIdx == 0) - { - nativeSubPassDescriptor.flags = (graphPassFragment.accessFlags.HasFlag(AccessFlags.Write)) - ? SubPassFlags.None - : SubPassFlags.ReadOnlyDepth; - } - // It's a color attachment - else - { - // Find the index of this subpass's attachment in the native renderpass attachment list - int colorAttachmentIdx = -1; - for (int fragmentId = 0; fragmentId < fragmentList.size; ++fragmentId) - { - if (fragmentList[fragmentId].resource.index == graphPassFragment.resource.index) - { - colorAttachmentIdx = fragmentId; - break; - } - } - - Debug.Assert(colorAttachmentIdx >= - 0); // If this is not the case it means we are using an attachment in a sub pass that is not part of the native pass !?!? clear bug - - // Set up the color indexes - nativeSubPassDescriptor.colorOutputs[fragmentIdx + colorOffset] = colorAttachmentIdx; - } - - fragmentIdx++; + subPassDesc.inputs[i] = prevDepthIdx; } } + } + // We also need to update the shading rate image index (VRS) + if (hasShadingRateImage && shadingRateImageIndex == 0) + { + shadingRateImageIndex = prevDepthIdx; } } @@ -1224,14 +1198,7 @@ public static PassBreakAudit TryMerge(CompilerContextData contextData, int activ // as we require the depth attachment to be at index 0 if (!nativePass.hasDepth && passToMerge.fragmentInfoHasDepth) { - nativePass.hasDepth = true; - nativePass.fragments.Add(contextData.fragmentData[passToMerge.firstFragment]); - var size = nativePass.fragments.size; - if (size > 1) - (nativePass.fragments[0], nativePass.fragments[size-1]) = (nativePass.fragments[size-1], nativePass.fragments[0]); - - // Must update indices from Native subPasses created before - UpdateNativeSubPassesAttachments(contextData, ref nativePass); + nativePass.AddDepthAttachmentFirstDuringMerge(contextData, contextData.fragmentData[passToMerge.firstFragment]); } // Update versions and flags of existing attachments and diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/ResourcesData.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/ResourcesData.cs index 23381fe193e..c1330b14715 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/ResourcesData.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/Compiler/ResourcesData.cs @@ -207,27 +207,38 @@ public ResourcesData() resourceNames = new DynamicArray[(int)RenderGraphResourceType.Count]; for (int t = 0; t < (int)RenderGraphResourceType.Count; t++) - { - // Note: All these lists are allocated with zero capacity, they will be resized in Initialize when - // the amount of resources is known. - versionedData[t] = new NativeList(0, AllocatorManager.Persistent); - unversionedData[t] = new NativeList(0, AllocatorManager.Persistent); - readerData[t] = new NativeList(0, AllocatorManager.Persistent); resourceNames[t] = new DynamicArray(0); // T in NativeList cannot contain managed types, so the names are stored separately - } } public void Clear() { for (int t = 0; t < (int)RenderGraphResourceType.Count; t++) { - unversionedData[t].Clear(); - versionedData[t].Clear(); - readerData[t].Clear(); + if (unversionedData[t].IsCreated) + unversionedData[t].Clear(); + + if (versionedData[t].IsCreated) + versionedData[t].Clear(); + + if (readerData[t].IsCreated) + readerData[t].Clear(); + resourceNames[t].Clear(); } } + void AllocateAndResizeNativeListIfNeeded(ref NativeList nativeList, int size, NativeArrayOptions options) where T : unmanaged + { + // Allocate the first time or if Dispose() has been called through RenderGraph.Cleanup() + // Length remains 0, list is still empty + if (!nativeList.IsCreated) + nativeList = new NativeList(size, AllocatorManager.Persistent); + + // Resize the list (it will allocate if necessary) + // List is not empty anymore + nativeList.Resize(size, options); + } + public void Initialize(RenderGraphResourceRegistry resources) { uint maxReaders = 0; @@ -238,9 +249,9 @@ public void Initialize(RenderGraphResourceRegistry resources) RenderGraphResourceType resourceType = (RenderGraphResourceType) t; var numResources = resources.GetResourceCount(resourceType); - // For each resource type, resize the buffer (only allocate if bigger) - // We don't clear the buffer as we reinitialize it right after - unversionedData[t].Resize(numResources, NativeArrayOptions.UninitializedMemory); + // We don't clear the list as we reinitialize it right after + AllocateAndResizeNativeListIfNeeded(ref unversionedData[t], numResources, NativeArrayOptions.UninitializedMemory); + resourceNames[t].Resize(numResources, true); if (numResources > 0) // Null Resource @@ -301,8 +312,8 @@ public void Initialize(RenderGraphResourceRegistry resources) MaxVersions = (int)maxWriters + 1; // Clear the other caching structures, they will be filled later - versionedData[t].Resize(MaxVersions * numResources, NativeArrayOptions.ClearMemory); - readerData[t].Resize(MaxVersions * MaxReaders * numResources, NativeArrayOptions.ClearMemory); + AllocateAndResizeNativeListIfNeeded(ref versionedData[t], MaxVersions * numResources, NativeArrayOptions.ClearMemory); + AllocateAndResizeNativeListIfNeeded(ref readerData[t], MaxVersions * MaxReaders * numResources, NativeArrayOptions.ClearMemory); } } @@ -340,9 +351,14 @@ public void Dispose() { for (int t = 0; t < (int)RenderGraphResourceType.Count; t++) { - versionedData[t].Dispose(); - unversionedData[t].Dispose(); - readerData[t].Dispose(); + if (versionedData[t].IsCreated) + versionedData[t].Dispose(); + + if (unversionedData[t].IsCreated) + unversionedData[t].Dispose(); + + if (readerData[t].IsCreated) + readerData[t].Dispose(); } } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs index 129e1d53150..f28e73577bb 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraph.cs @@ -515,6 +515,10 @@ public RenderGraph(string name = "RenderGraph") /// public void Cleanup() { + // Usually done at the end of Execute step + // Also doing it here in case RG stopped before it + ClearCurrentCompiledGraph(); + m_Resources.Cleanup(); m_DefaultResources.Cleanup(); m_RenderGraphPool.Cleanup(); @@ -522,7 +526,7 @@ public void Cleanup() s_RegisteredGraphs.Remove(this); onGraphUnregistered?.Invoke(this); - nativeCompiler?.contextData?.Dispose(); + nativeCompiler?.Cleanup(); m_CompilationCache?.Clear(); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphCompilationCache.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphCompilationCache.cs index d32a0baeea5..ea74f3d93d3 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphCompilationCache.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphCompilationCache.cs @@ -38,7 +38,7 @@ public RenderGraphCompilationCache() for (int i = 0; i < k_CachedGraphCount; ++i) { m_CompiledGraphPool.Push(new RenderGraph.CompiledGraph()); - m_NativeCompiledGraphPool.Push(new CompilerContextData(NativePassCompiler.k_EstimatedPassCount)); + m_NativeCompiledGraphPool.Push(new CompilerContextData()); } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphDefaultResources.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphDefaultResources.cs index 2ac5a1ad1d6..9bcb3d02c33 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphDefaultResources.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphDefaultResources.cs @@ -36,20 +36,37 @@ public class RenderGraphDefaultResources internal RenderGraphDefaultResources() { - m_BlackTexture2D = RTHandles.Alloc(Texture2D.blackTexture); - m_WhiteTexture2D = RTHandles.Alloc(Texture2D.whiteTexture); - m_ShadowTexture2D = RTHandles.Alloc(1, 1, CoreUtils.GetDefaultDepthStencilFormat(), isShadowMap: true, name: "DefaultShadowTexture"); + InitDefaultResourcesIfNeeded(); + } + + private void InitDefaultResourcesIfNeeded() + { + if (m_BlackTexture2D == null) + m_BlackTexture2D = RTHandles.Alloc(Texture2D.blackTexture); + + if (m_WhiteTexture2D == null) + m_WhiteTexture2D = RTHandles.Alloc(Texture2D.whiteTexture); + + if (m_ShadowTexture2D == null) + m_ShadowTexture2D = RTHandles.Alloc(1, 1, CoreUtils.GetDefaultDepthStencilFormat(), isShadowMap: true, name: "DefaultShadowTexture"); } internal void Cleanup() { - m_BlackTexture2D.Release(); - m_WhiteTexture2D.Release(); - m_ShadowTexture2D.Release(); + m_BlackTexture2D?.Release(); + m_BlackTexture2D = null; + + m_WhiteTexture2D?.Release(); + m_WhiteTexture2D = null; + + m_ShadowTexture2D?.Release(); + m_ShadowTexture2D = null; } internal void InitializeForRendering(RenderGraph renderGraph) { + InitDefaultResourcesIfNeeded(); + blackTexture = renderGraph.ImportTexture(m_BlackTexture2D, true); whiteTexture = renderGraph.ImportTexture(m_WhiteTexture2D, true); defaultShadowTexture = renderGraph.ImportTexture(m_ShadowTexture2D, true); diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs index ebd4505e7c1..922466b7b00 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderGraph/RenderGraphUtilsBlit.cs @@ -20,20 +20,33 @@ public static bool CanAddCopyPassMSAA() return Blitter.CanCopyMSAA(); } + /// + /// Checks if the shader features required by the MSAA version of the copy pass is supported on current platform. + /// + /// The texture description of the that will be copied from. + /// Returns true if the shader features required by the copy pass is supported for MSAA, otherwise will it return false. + public static bool CanAddCopyPassMSAA(in TextureDesc sourceDesc) + { + return Blitter.CanCopyMSAA(sourceDesc); + } + class CopyPassData { public bool isMSAA; + public bool force2DForXR; } + private const string DisableTexture2DXArray = "DISABLE_TEXTURE2D_X_ARRAY"; + /// /// Adds a pass to copy data from a source texture to a destination texture. The data in the texture is copied pixel by pixel. The copy function can only do 1:1 copies it will not allow scaling the data or - /// doing texture filtering. Furthermore it requires the source and destination surfaces to be the same size in pixels and have the same number of MSAA samples. If the textures are multi sampled - /// individual samples will be copied. + /// doing texture filtering. Furthermore it requires the source and destination surfaces to be the same size in pixels and have the same number of MSAA samples and array slices. + /// If the textures are multi sampled, individual samples will be copied. /// /// Copy is intentionally limited in functionally so it can be implemented using frame buffer fetch for optimal performance on tile based GPUs. If you are looking for a more generic /// function please use the AddBlitPass function. /// - /// For XR textures you will have to copy for each eye seperatly. + /// When XR is active, array textures containing both eyes will be automatically copied. /// /// For MSAA textures please use the CanAddCopyPassMSAA() function first to check if the CopyPass is supported on current platform. /// @@ -41,10 +54,6 @@ class CopyPassData /// The RenderGraph adding this pass to. /// The texture the data is copied from. /// The texture the data is copied to. This has to be different from souce. - /// The source slice of a Array of 3D texture to use. Must be 0 for regular 2D textures. - /// The destination slice of a Array of 3D texture to use. Must be 0 for regular 2D textures. - /// The first mipmap level to copy from. Must be zero for non-mipmapped textures. Must be a valid index for mipmapped textures. - /// The first mipmap level to copy to. Must be zero for non-mipmapped textures. Must be a valid index for mipmapped textures. /// A name to use for debugging and error logging. This name will be shown in the rendergraph debugger. /// File line of the source file this function is called from. Used for debugging. This parameter is automatically generated by the compiler. Users do not need to pass it. /// File line of the source file this function is called from. Used for debugging. This parameter is automatically generated by the compiler. Users do not need to pass it. @@ -52,10 +61,6 @@ public static void AddCopyPass( this RenderGraph graph, TextureHandle source, TextureHandle destination, - int sourceSlice = 0, - int destinationSlice = 0, - int sourceMip = 0, - int destinationMip = 0, string passName = "Copy Pass Utility" #if !CORE_PACKAGE_DOCTOOLS , [CallerFilePath] string file = "", @@ -64,29 +69,20 @@ public static void AddCopyPass( { if (!graph.nativeRenderPassesEnabled) throw new ArgumentException("CopyPass only supported for native render pass. Please use the blit functions instead for non native render pass platforms."); - + var sourceDesc = graph.GetTextureDesc(source); var destinationDesc = graph.GetTextureDesc(destination); - if (sourceSlice < 0 || sourceSlice >= sourceDesc.slices) - throw new ArgumentException("Invalid sourceSlice."); - - if (destinationSlice < 0 || destinationSlice >= destinationDesc.slices) - throw new ArgumentException("Invalid destinationSlice."); - - int sourceMaxWidth = math.max(math.max(sourceDesc.width, sourceDesc.height), sourceDesc.slices); - int sourceTotalMipChainLevels = (int)math.log2(sourceMaxWidth) + 1; - if (sourceMip < 0 || sourceMip >= sourceMaxWidth) - throw new ArgumentException("Invalid sourceMip."); - - int destinationMaxWidth = math.max(math.max(destinationDesc.width, destinationDesc.height), destinationDesc.slices); - int destinationTotalMipChainLevels = (int)math.log2(destinationMaxWidth) + 1; - if (destinationMip < 0 || destinationMip >= destinationMaxWidth) - throw new ArgumentException("Invalid destinationMip."); - if (sourceDesc.msaaSamples != destinationDesc.msaaSamples) throw new ArgumentException("MSAA samples from source and destination texture doesn't match."); + if (sourceDesc.width != destinationDesc.width || + sourceDesc.height != destinationDesc.height) + throw new ArgumentException("Dimensions for source and destination texture doesn't match."); + + if (sourceDesc.slices != destinationDesc.slices) + throw new ArgumentException("Slice count for source and destination texture doesn't match."); + var isMSAA = (int)sourceDesc.msaaSamples > 1; // Note: Needs shader model ps_4.1 to support SV_SampleIndex which means the copy pass isn't supported for MSAA on some platforms. @@ -94,21 +90,93 @@ public static void AddCopyPass( // It would have 1 if the MSAA pass is not able to be used for target and 2 otherwise. // https://docs.unity3d.com/2017.4/Documentation/Manual/SL-ShaderCompileTargets.html // https://learn.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-to-get-sample-position - if (isMSAA && !Blitter.CanCopyMSAA()) + if (isMSAA && !Blitter.CanCopyMSAA(sourceDesc)) throw new ArgumentException("Target does not support MSAA for AddCopyPass. Please use the blit alternative or use non MSAA textures."); using (var builder = graph.AddRasterRenderPass(passName, out var passData, file, line)) { passData.isMSAA = isMSAA; - builder.SetInputAttachment(source, 0, AccessFlags.Read, sourceMip, sourceSlice); - builder.SetRenderAttachment(destination, 0, AccessFlags.Write, destinationMip, destinationSlice); + + bool isXRArrayTextureActive = TextureXR.useTexArray; + bool isArrayTexture = sourceDesc.slices > 1; + passData.force2DForXR = isXRArrayTextureActive && (isArrayTexture == false); + builder.SetInputAttachment(source, 0, AccessFlags.Read); + builder.SetRenderAttachment(destination, 0, AccessFlags.Write); builder.SetRenderFunc((CopyPassData data, RasterGraphContext context) => CopyRenderFunc(data, context)); + if (passData.force2DForXR) builder.AllowGlobalStateModification(true);// So we can set the keywords } } + /// + /// Adds a pass to copy data from a source texture to a destination texture. The data in the texture is copied pixel by pixel. The copy function can only do 1:1 copies it will not allow scaling the data or + /// doing texture filtering. Furthermore it requires the source and destination surfaces to be the same size in pixels and have the same number of MSAA samples. If the textures are multi sampled + /// individual samples will be copied. + /// + /// Copy is intentionally limited in functionally so it can be implemented using frame buffer fetch for optimal performance on tile based GPUs. If you are looking for a more generic + /// function please use the AddBlitPass function. Blit will automatically decide (based on the arguments) whether to use normal rendering or to instead call copy internally. + /// + /// The source/destination mip and slice arguments are ignored and were never used by this function therefore it is better to call the AddCopyPass overload without them. This function + /// is here for backwards compatibility with existing code. + /// + /// When XR is active, array textures containing both eyes will be automatically copied. + /// + /// For MSAA textures please use the CanAddCopyPassMSAA() function first to check if the CopyPass is supported on current platform. + /// + /// + /// The RenderGraph adding this pass to. + /// The texture the data is copied from. + /// The texture the data is copied to. This has to be different from souce. + /// This argument was never used. Please use the overload without this argument instead. If you want to work with mips or array slices you can use blit or write your own frame buffer fetch based implementation. + /// This argument was never used. Please use the overload without this argument instead. If you want to work with mips or array slices you can use blit or write your own frame buffer fetch based implementation. + /// This argument was never used. Please use the overload without this argument instead. If you want to work with mips or array slices you can use blit or write your own frame buffer fetch based implementation. + /// This argument was never used. Please use the overload without this argument instead. If you want to work with mips or array slices you can use blit or write your own frame buffer fetch based implementation. + /// A name to use for debugging and error logging. This name will be shown in the rendergraph debugger. + /// File line of the source file this function is called from. Used for debugging. This parameter is automatically generated by the compiler. Users do not need to pass it. + /// File line of the source file this function is called from. Used for debugging. This parameter is automatically generated by the compiler. Users do not need to pass it. + public static void AddCopyPass( + this RenderGraph graph, + TextureHandle source, + TextureHandle destination, + int sourceSlice, + int destinationSlice = 0, + int sourceMip = 0, + int destinationMip = 0, + string passName = "Copy Pass Utility" +#if !CORE_PACKAGE_DOCTOOLS + , [CallerFilePath] string file = "", + [CallerLineNumber] int line = 0) +#endif + { + AddCopyPass(graph, source, destination, passName, file, line); + } + static void CopyRenderFunc(CopyPassData data, RasterGraphContext rgContext) { - Blitter.CopyTexture(rgContext.cmd, data.isMSAA); + Blitter.CopyTexture(rgContext.cmd, data.isMSAA, data.force2DForXR); + } + + /// + /// Try to auto detect XR textures. + /// + /// + /// + /// + /// + /// + /// + internal static bool IsTextureXR(ref TextureDesc destDesc, int sourceSlice, int destinationSlice, int numSlices, int numMips) + { + if (TextureXR.useTexArray && + destDesc.dimension == TextureDimension.Tex2DArray && + destDesc.slices == TextureXR.slices && + sourceSlice == 0 && + destinationSlice == 0 && + numSlices == TextureXR.slices && + numMips == 1) + { + return true; + } + return false; } /// @@ -139,6 +207,7 @@ class BlitPassData public int destinationMip; public int numMips; public BlitFilterMode filterMode; + public bool isXR; } @@ -222,7 +291,7 @@ public static void AddBlitPass(this RenderGraph graph, passData.destinationMip = destinationMip; passData.numMips = numMips; passData.filterMode = filterMode; - + passData.isXR = IsTextureXR(ref destinationDesc, sourceSlice, destinationSlice, numSlices, numMips); builder.UseTexture(source, AccessFlags.Read); builder.UseTexture(destination, AccessFlags.Write); builder.SetRenderFunc((BlitPassData data, UnsafeGraphContext context) => BlitRenderFunc(data, context)); @@ -237,15 +306,24 @@ static void BlitRenderFunc(BlitPassData data, UnsafeGraphContext context) s_BlitScaleBias.w = data.offset.y; CommandBuffer unsafeCmd = CommandBufferHelpers.GetNativeCommandBuffer(context.cmd); - for (int currSlice = 0; currSlice < data.numSlices; currSlice++) + if (data.isXR) { - for (int currMip = 0; currMip < data.numMips; currMip++) + // This is the magic that makes XR work for blit. We set the rendertargets passing -1 for the slices. This means it will bind all (both eyes) slices. + // The engine will then also automatically duplicate our draws and the vertex and pixel shader (through macros) will ensure those draws end up in the right eye. + context.cmd.SetRenderTarget(data.destination, 0, CubemapFace.Unknown, -1); + Blitter.BlitTexture(unsafeCmd, data.source, s_BlitScaleBias, data.sourceMip, data.filterMode == BlitFilterMode.ClampBilinear); + } + else + { + for (int currSlice = 0; currSlice < data.numSlices; currSlice++) { - context.cmd.SetRenderTarget(data.destination, data.destinationMip + currMip, CubemapFace.Unknown, data.destinationSlice + currSlice); - Blitter.BlitTexture(unsafeCmd, data.source, s_BlitScaleBias, data.sourceMip + currMip, data.sourceSlice + currSlice, data.filterMode == BlitFilterMode.ClampBilinear); + for (int currMip = 0; currMip < data.numMips; currMip++) + { + context.cmd.SetRenderTarget(data.destination, data.destinationMip + currMip, CubemapFace.Unknown, data.destinationSlice + currSlice); + Blitter.BlitTexture(unsafeCmd, data.source, s_BlitScaleBias, data.sourceMip + currMip, data.sourceSlice + currSlice, data.filterMode == BlitFilterMode.ClampBilinear); + } } } - } /// @@ -277,7 +355,8 @@ public enum FullScreenGeometryType /// /// Use one of the constructor overloads for common use cases. /// - /// + /// By default most constructors will copy all array texture slices. This ensures XR textures are handled "automatically" without additional consideration. + /// /// The shader properties defined in the struct or constructors is used for most common usecases but they are not required to be used in the shader. /// By using the MaterialPropertyBlock can you add your shader properties with custom values. /// @@ -289,7 +368,8 @@ public struct BlitMaterialParameters private static readonly int blitScaleBias = Shader.PropertyToID("_BlitScaleBias"); /// - /// Simple constructor to set a few amount of parameters to blit. + /// Simple constructor that sets only the most common parameters to blit. The other parameters will be set to sensible default values. + /// /// /// The texture the data is copied from. /// The texture the data is copied to. @@ -299,7 +379,7 @@ public BlitMaterialParameters(TextureHandle source, TextureHandle destination, M : this(source, destination, Vector2.one, Vector2.zero, material, shaderPass) { } /// - /// Simple constructor to set a few amount of parameters to blit. + /// Simple constructor that sets only the most common parameters to blit. The other parameters will be set to sensible default values. /// /// The texture the data is copied from. /// The texture the data is copied to. @@ -315,7 +395,7 @@ public BlitMaterialParameters(TextureHandle source, TextureHandle destination, V this.offset = offset; sourceSlice = -1; destinationSlice = 0; - numSlices = 1; + numSlices = -1; sourceMip = -1; destinationMip = 0; numMips = 1; @@ -360,7 +440,7 @@ public BlitMaterialParameters(TextureHandle source, TextureHandle destination, M MaterialPropertyBlock mpb, int destinationSlice, int destinationMip, - int numSlices = 1, + int numSlices = -1, int numMips = 1, int sourceSlice = -1, int sourceMip = -1, @@ -388,7 +468,7 @@ public BlitMaterialParameters(TextureHandle source, TextureHandle destination, M /// Material property block to use to render the blit. This property should contain all data the shader needs. /// The first slice to copy to if the texture is an 3D or array texture. Must be zero for regular textures. /// The first mipmap level to copy to. Must be zero for non-mipmapped textures. Must be a valid index for mipmapped textures. - /// The number of slices to copy. -1 to copy all slices until the end of the texture. Arguments that copy invalid slices to be copied will lead to an error. + /// The number of slices to copy. -1 to copy all slices until the end of the texture. Arguments that copy invalid slices to be copied will lead to an error. If you are using an XR-array texture make sure you set this to -1 or the number of slices in the array our your XR texture will not be correctly copied. /// The number of mipmaps to copy. -1 to copy all mipmaps. Arguments that copy invalid mips to be copied will lead to an error. /// The first slice to copy from if the texture is an 3D or array texture. Must be zero for regular textures. Default is set to -1 to ignore source slices and set it to 0 without looping for each destination slice /// The first mipmap level to copy from. Must be zero for non-mipmapped textures. Must be a valid index for mipmapped textures. Defaults to -1 to ignore source mips and set it to 0 without looping for each destination mip. @@ -412,7 +492,7 @@ public BlitMaterialParameters(TextureHandle source, TextureHandle destination, V MaterialPropertyBlock mpb, int destinationSlice, int destinationMip, - int numSlices = 1, + int numSlices = -1, int numMips = 1, int sourceSlice = -1, int sourceMip = -1, @@ -542,7 +622,8 @@ public BlitMaterialParameters(TextureHandle source, TextureHandle destination, V public Vector2 offset; /// - /// The first slice of the source texture to blit from. -1 to ignore source slices and set it to 0 without looping for each destination slice. + /// The first slice of the source texture to blit from. -1 to ignore source slices. This will not set any values to the sourceSlicePropertyID texture parameters. + /// If not -1, the sourceSlicePropertyID will be set between sourceSlice and sourceSlice+numSlices for each slice that is blit. /// public int sourceSlice; @@ -557,7 +638,8 @@ public BlitMaterialParameters(TextureHandle source, TextureHandle destination, V public int numSlices; /// - /// The first source mipmap to blit from. -1 to ignore source mips and set it to 0 without looping for each destination mip. + /// The first source mipmap to blit from. -1 to ignore source mips. This will not set any values to the sourceMipPropertyID texture parameters. + /// If not -1, the sourceMipPropertyID will be set between sourceMip and sourceMip+numMips for each mip that is blit. /// public int sourceMip; @@ -596,12 +678,14 @@ public BlitMaterialParameters(TextureHandle source, TextureHandle destination, V /// /// The scalar property to set with the source slice index. If -1 the default "_BlitTexArraySlice" property will be used. Note: Use Shader.PropertyToID to convert a string property name to an ID. /// If more than one slice is rendered using the blit function (numSlices>1) several full screen quads will be rendered for each slice with different sourceSlicePropertyID values set. + /// If sourceSlice is -1, no values will be set on the property. /// public int sourceSlicePropertyID; /// /// The scalar property to set with the source mip index. If -1 the default "_BlitMipLevel" property will be used. Note: Use Shader.PropertyToID to convert a string property name to an ID. - /// If more than one mip is rendered using the blit function (numMips>1) several full screen quads will be rendered for each slice with different sourceMipPropertyID values set./// + /// If more than one mip is rendered using the blit function (numMips>1), several full screen quads will be rendered for each slice with different sourceMipPropertyID values set. + /// If sourceMip is -1, no values will be set on the property. /// public int sourceMipPropertyID; @@ -636,6 +720,7 @@ class BlitMaterialPassData public int sourceSlicePropertyID; public int sourceMipPropertyID; public int scaleBiasPropertyID; + public bool isXR; } /// @@ -680,27 +765,53 @@ public static void AddBlitPass(this RenderGraph graph, [CallerLineNumber] int line = 0) #endif { - var sourceDesc = graph.GetTextureDesc(blitParameters.source); - var destinationDesc = graph.GetTextureDesc(blitParameters.destination); + if (!blitParameters.destination.IsValid()) + { + throw new ArgumentException($"BlitPass: {passName} destination needs to be a valid texture handle."); + } - int sourceMaxWidth = math.max(math.max(sourceDesc.width, sourceDesc.height), sourceDesc.slices); - int sourceTotalMipChainLevels = (int)math.log2(sourceMaxWidth) + 1; + var destinationDesc = graph.GetTextureDesc(blitParameters.destination); + // Fill in unspecified parameters automatically based on the texture descriptor int destinationMaxWidth = math.max(math.max(destinationDesc.width, destinationDesc.height), destinationDesc.slices); int destinationTotalMipChainLevels = (int)math.log2(destinationMaxWidth) + 1; + if (blitParameters.numSlices == -1) + { + blitParameters.numSlices = destinationDesc.slices - blitParameters.destinationSlice; + } - if (blitParameters.numSlices == -1) blitParameters.numSlices = destinationDesc.slices - blitParameters.destinationSlice; - if (blitParameters.numSlices > destinationDesc.slices - blitParameters.destinationSlice - || (blitParameters.sourceSlice != -1 && blitParameters.numSlices > sourceDesc.slices - blitParameters.sourceSlice)) + if (blitParameters.numMips == -1) { - throw new ArgumentException($"BlitPass: {passName} attempts to blit too many slices. The pass will be skipped."); + blitParameters.numMips = destinationTotalMipChainLevels - blitParameters.destinationMip; } - if (blitParameters.numMips == -1) blitParameters.numMips = destinationTotalMipChainLevels - blitParameters.destinationMip; - if (blitParameters.numMips > destinationTotalMipChainLevels - blitParameters.destinationMip - || (blitParameters.sourceMip != -1 && blitParameters.numMips > sourceTotalMipChainLevels - blitParameters.sourceMip)) + // Validate against the source if available + if (blitParameters.source.IsValid()) { - throw new ArgumentException($"BlitPass: {passName} attempts to blit too many mips. The pass will be skipped."); + var sourceDesc = graph.GetTextureDesc(blitParameters.source); + int sourceMaxWidth = math.max(math.max(sourceDesc.width, sourceDesc.height), sourceDesc.slices); + int sourceTotalMipChainLevels = (int)math.log2(sourceMaxWidth) + 1; + + if (blitParameters.sourceSlice != -1 && blitParameters.numSlices > sourceDesc.slices - blitParameters.sourceSlice) + { + throw new ArgumentException($"BlitPass: {passName} attempts to blit too many slices. There are not enough slices in the source array. The pass will be skipped."); + } + + if (blitParameters.sourceMip != -1 && blitParameters.numMips > sourceTotalMipChainLevels - blitParameters.sourceMip) + { + throw new ArgumentException($"BlitPass: {passName} attempts to blit too many mips. There are not enough mips in the source texture. The pass will be skipped."); + } + } + + // Validate against destination + if (blitParameters.numSlices > destinationDesc.slices - blitParameters.destinationSlice) + { + throw new ArgumentException($"BlitPass: {passName} attempts to blit too many slices. There are not enough slices in the destination array. The pass will be skipped."); + } + + if (blitParameters.numMips > destinationTotalMipChainLevels - blitParameters.destinationMip) + { + throw new ArgumentException($"BlitPass: {passName} attempts to blit too many mips. There are not enough mips in the destination texture. The pass will be skipped."); } using (var builder = graph.AddUnsafePass(passName, out var passData, file, line)) @@ -723,8 +834,13 @@ public static void AddBlitPass(this RenderGraph graph, passData.sourceSlicePropertyID = blitParameters.sourceSlicePropertyID; passData.sourceMipPropertyID = blitParameters.sourceMipPropertyID; passData.scaleBiasPropertyID = blitParameters.scaleBiasPropertyID; + passData.isXR = IsTextureXR(ref destinationDesc, (passData.sourceSlice == -1) ? 0 : passData.sourceSlice, passData.destinationSlice, passData.numSlices, passData.numMips); + + if (blitParameters.source.IsValid()) + { + builder.UseTexture(blitParameters.source); + } - builder.UseTexture(blitParameters.source); builder.UseTexture(blitParameters.destination, AccessFlags.Write); builder.SetRenderFunc((BlitMaterialPassData data, UnsafeGraphContext context) => BlitMaterialRenderFunc(data, context)); } @@ -741,34 +857,61 @@ static void BlitMaterialRenderFunc(BlitMaterialPassData data, UnsafeGraphContext if (data.propertyBlock == null) data.propertyBlock = s_PropertyBlock; - data.propertyBlock.SetTexture(data.sourceTexturePropertyID, data.source); - if (data.sourceSlice == -1) - data.propertyBlock.SetInt(data.sourceSlicePropertyID, 0); - if (data.sourceMip == -1) - data.propertyBlock.SetInt(data.sourceMipPropertyID, 0); + if (data.source.IsValid()) + { + data.propertyBlock.SetTexture(data.sourceTexturePropertyID, data.source); + } + data.propertyBlock.SetVector(data.scaleBiasPropertyID, s_BlitScaleBias); - for (int currSlice = 0; currSlice < data.numSlices; currSlice++) + if (data.isXR) { - for (int currMip = 0; currMip < data.numMips; currMip++) + // This is the magic that makes XR work for blit. We set the rendertargets passing -1 for the slices. This means it will bind all (both eyes) slices. + // The engine will then also automatically duplicate our draws and the vertex and pixel shader (through macros) will ensure those draws end up in the right eye. + + if (data.sourceSlice != -1) + data.propertyBlock.SetInt(data.sourceSlicePropertyID, 0); + if (data.sourceMip != -1) + data.propertyBlock.SetInt(data.sourceMipPropertyID, data.sourceMip); + + context.cmd.SetRenderTarget(data.destination, 0, CubemapFace.Unknown, -1); + switch (data.geometry) { - if (data.sourceSlice != -1) - data.propertyBlock.SetInt(data.sourceSlicePropertyID, data.sourceSlice + currSlice); - if (data.sourceMip != -1) - data.propertyBlock.SetInt(data.sourceMipPropertyID, data.sourceMip + currMip); - - context.cmd.SetRenderTarget(data.destination, data.destinationMip + currMip, CubemapFace.Unknown, data.destinationSlice + currSlice); - switch (data.geometry) + case FullScreenGeometryType.Mesh: + Blitter.DrawQuadMesh(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); + break; + case FullScreenGeometryType.ProceduralQuad: + Blitter.DrawQuad(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); + break; + case FullScreenGeometryType.ProceduralTriangle: + Blitter.DrawTriangle(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); + break; + } + } + else + { + for (int currSlice = 0; currSlice < data.numSlices; currSlice++) + { + for (int currMip = 0; currMip < data.numMips; currMip++) { - case FullScreenGeometryType.Mesh: - Blitter.DrawQuadMesh(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); - break; - case FullScreenGeometryType.ProceduralQuad: - Blitter.DrawQuad(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); - break; - case FullScreenGeometryType.ProceduralTriangle: - Blitter.DrawTriangle(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); - break; + if (data.sourceSlice != -1) + data.propertyBlock.SetInt(data.sourceSlicePropertyID, data.sourceSlice + currSlice); + if (data.sourceMip != -1) + data.propertyBlock.SetInt(data.sourceMipPropertyID, data.sourceMip + currMip); + + context.cmd.SetRenderTarget(data.destination, data.destinationMip + currMip, CubemapFace.Unknown, data.destinationSlice + currSlice); + switch (data.geometry) + { + case FullScreenGeometryType.Mesh: + Blitter.DrawQuadMesh(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); + break; + case FullScreenGeometryType.ProceduralQuad: + Blitter.DrawQuad(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); + break; + case FullScreenGeometryType.ProceduralTriangle: + Blitter.DrawTriangle(unsafeCmd, data.material, data.shaderPass, data.propertyBlock); + break; + } } } } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderPipeline/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/RenderPipeline/.buginfo index ec25d9a0379..398898337ca 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderPipeline/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderPipeline/.buginfo @@ -1,5 +1,5 @@ rule1: - area: SRP Workflow + area: SRP Settings rule2: when: diff --git a/Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/GPUDriven/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/GPUDriven/.buginfo index 58dd2dca33f..1c17ebaa73c 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/GPUDriven/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/RenderPipelineResources/GPUDriven/.buginfo @@ -1 +1 @@ -area: Graphics Optimization Systems +area: Culling diff --git a/Packages/com.unity.render-pipelines.core/Runtime/STP/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/STP/.buginfo index 3561c5aedbc..e9cd2783df9 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/STP/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/STP/.buginfo @@ -1 +1 @@ -area: Graphics Optimization Systems \ No newline at end of file +area: Culling \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Settings/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/Settings/.buginfo index 7620de26b8b..02aca70e86f 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Settings/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/Settings/.buginfo @@ -1,8 +1,8 @@ rule1: - area: SRP Workflow + area: SRP Settings rule2: when: path: - ^.*ShaderStrippingSetting.*$ - area: SRP Architecture & API \ No newline at end of file + area: SRP Foundation \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Stripping/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/Stripping/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Stripping/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/Stripping/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/.buginfo index 88777a4d387..bdc2af04fe7 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/.buginfo @@ -1,5 +1,5 @@ default: - area: SRP Architecture & API + area: SRP Foundation Workflow: when: @@ -12,7 +12,7 @@ Workflow: - ^.*ResourceReloader?.*$ - ^.*SceneRenderPipeline?.*$ - ^.*TextureCurve?.*$ - area: SRP Workflow + area: SRP Settings xr: when: @@ -24,4 +24,4 @@ workflow: when: path: - ^.*TextureCurve?.*$ - area: SRP Workflow \ No newline at end of file + area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs index 1013ff02985..566448689e3 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs @@ -4,6 +4,8 @@ using UnityEngine.Assertions; using System.Text.RegularExpressions; using UnityEngine.Rendering.RenderGraphModule.Util; +using UnityEngine.Rendering.RenderGraphModule; + #if UNITY_EDITOR using UnityEditor; #endif @@ -340,16 +342,57 @@ static internal void DrawQuad(CommandBuffer cmd, Material material, int shaderPa internal static bool CanCopyMSAA() { + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.PlayStation4) + { + // Will be done later, see: UUM-97281 + return false; + } + + // This test works since the second pass has the following pragmas and will not be compiled if they are not supported + // #pragma target 4.5 + // #pragma require msaatex return s_Copy.passCount == 2; } + internal static bool CanCopyMSAA(in TextureDesc sourceDesc) + { + + // Real native renderpass platforms + // TODO: Expose this through systeminfo + bool hasRenderPass = + SystemInfo.graphicsDeviceType == GraphicsDeviceType.Metal + || SystemInfo.graphicsDeviceType == GraphicsDeviceType.Vulkan + || SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D12; + + if (SystemInfo.supportsMultisampleAutoResolve && + !hasRenderPass && sourceDesc.bindTextureMS == false) + { + // If we have autoresolve it means msaa rendertextures render as MSAA but magically resolve in the driver when accessed as a texture, the MSAA surface is fully hidden inside the GFX device + // this is contrary to most platforms where the resolve magic on reading happens in the engine layer (and thus allocates proper multi sampled and resolve surfaces the engine can access) + // So in the cases of auto resolving, and a renderpass framebuffer fetch emulation layer we can't correctly access the individual unresolved msaa samples and thus don't allow this case here + // Note: In practice the above check mostly triggers on GLES. + return false; + } + + return CanCopyMSAA(); + } + /// /// Copies a texture to another texture using framebuffer fetch. /// /// Command Buffer used for rendering. - internal static void CopyTexture(RasterCommandBuffer cmd, bool isMSAA) + /// Use the MSAA variant of the copy shader (otherwise single sample is used). + /// Disable the special handling when XR is active where the source and destination are considered array + /// textures with a slice for each eye. Setting this to true will consider source and destination as regular 2D textures. When XR is + /// disabled, textures are always 2D so forcing them to 2D has no impact. + internal static void CopyTexture(RasterCommandBuffer cmd, bool isMSAA, bool force2DForXR = false) { + if (force2DForXR) cmd.EnableShaderKeyword("DISABLE_TEXTURE2D_X_ARRAY"); + DrawTriangle(cmd, s_Copy, isMSAA ? 1 : 0); + + // Set back the XR texture for regular XR calls + if (force2DForXR) cmd.DisableShaderKeyword("DISABLE_TEXTURE2D_X_ARRAY"); } /// diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/.buginfo b/Packages/com.unity.render-pipelines.core/Runtime/Volume/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs index 17fb6b19b34..3f2bf8b9f14 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeComponent.cs @@ -201,15 +201,7 @@ internal static void FindParameters(object o, List parameters, { VolumeParameter volumeParameter = (VolumeParameter)field.GetValue(o); #if UNITY_EDITOR || DEVELOPMENT_BUILD - var attr = (DisplayInfoAttribute[])field.GetCustomAttributes(typeof(DisplayInfoAttribute), true); - if (attr.Length != 0) - { - volumeParameter.debugId = attr[0].name; - } - else - { - volumeParameter.debugId = field.Name; - } + VolumeDebugData.AddVolumeParameterDebugId(volumeParameter, field); #endif parameters.Add(volumeParameter); } diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs new file mode 100644 index 00000000000..7dad87b04aa --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Reflection; + +namespace UnityEngine.Rendering +{ +#if UNITY_EDITOR || DEVELOPMENT_BUILD + internal static class VolumeDebugData + { + static Lazy> debugIds = new(() => new Dictionary()); + + internal static string GetVolumeParameterDebugId(VolumeParameter parameter) + { + return debugIds.Value.TryGetValue(parameter.fieldHash, out var debugId) ? debugId : string.Empty; + } + + internal static void AddVolumeParameterDebugId(VolumeParameter parameter, FieldInfo field) + { + var fieldHash = field.GetHashCode(); + parameter.fieldHash = fieldHash; + if (debugIds.Value.ContainsKey(fieldHash)) + return; + + var displayInfo = field.GetCustomAttribute(true); + var debugId = displayInfo != null ? displayInfo.name : field.Name; +#if UNITY_EDITOR + debugId = UnityEditor.ObjectNames.NicifyVariableName(debugId); // In the editor, make the name more readable +#endif + debugIds.Value.Add(fieldHash, debugId); + } + } +#endif +} \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs.meta b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs.meta new file mode 100644 index 00000000000..f3d5f4cf0e3 --- /dev/null +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeDebugData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: a359de1dc98b4f1db3fffb9601eb785b +timeCreated: 1743511791 \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeParameter.cs b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeParameter.cs index 723f21e4bd1..7c44195f4de 100644 --- a/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeParameter.cs +++ b/Packages/com.unity.render-pipelines.core/Runtime/Volume/VolumeParameter.cs @@ -30,7 +30,7 @@ namespace UnityEngine.Rendering public abstract class VolumeParameter : ICloneable { #if UNITY_EDITOR || DEVELOPMENT_BUILD - internal string debugId { get; set; } + internal int fieldHash { get; set; } #endif /// diff --git a/Packages/com.unity.render-pipelines.core/Samples~/Common/Scripts/Editor/SamplesShowcaseEditor.cs b/Packages/com.unity.render-pipelines.core/Samples~/Common/Scripts/Editor/SamplesShowcaseEditor.cs index 316db40442b..94481cd5a44 100644 --- a/Packages/com.unity.render-pipelines.core/Samples~/Common/Scripts/Editor/SamplesShowcaseEditor.cs +++ b/Packages/com.unity.render-pipelines.core/Samples~/Common/Scripts/Editor/SamplesShowcaseEditor.cs @@ -300,7 +300,7 @@ private string CreateMarkdown(VisualElement element, string text) parsedText = parsedText.Replace("", ""); // Titles - parsedText = parsedText.Replace("

", ""); + parsedText = parsedText.Replace("

", ""); parsedText = parsedText.Replace("

", ""); // Code diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl index 456d92b1523..1815093115a 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl @@ -196,7 +196,7 @@ real3 UnpackNormalAG(real4 packedNormal, real scale = 1.0) } // Unpack normal as DXT5nm (1, y, 0, x) or BC5 (x, y, 0, 1) -real3 UnpackNormalmapRGorAG(real4 packedNormal, real scale = 1.0) +real3 UnpackNormalMapRGorAG(real4 packedNormal, real scale = 1.0) { // Convert to (?, y, 0, x) packedNormal.a *= packedNormal.r; @@ -212,7 +212,7 @@ real3 UnpackNormal(real4 packedNormal) return UnpackNormalRGBNoScale(packedNormal); #else // Compiler will optimize the scale away - return UnpackNormalmapRGorAG(packedNormal, 1.0); + return UnpackNormalMapRGorAG(packedNormal, 1.0); #endif } #endif @@ -224,7 +224,7 @@ real3 UnpackNormalScale(real4 packedNormal, real bumpScale) #elif defined(UNITY_NO_DXT5nm) return UnpackNormalRGB(packedNormal, bumpScale); #else - return UnpackNormalmapRGorAG(packedNormal, bumpScale); + return UnpackNormalMapRGorAG(packedNormal, bumpScale); #endif } diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingInternal.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingInternal.hlsl index a9954ca3792..b4009dff425 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingInternal.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingInternal.hlsl @@ -37,7 +37,7 @@ real4 ADD_FUNC_SUFFIX(SampleUVMapping)(TEXTURE2D_PARAM(textureName, samplerName) #define UNPACK_NORMAL_FUNC UnpackNormalRGB #define UNPACK_DERIVATIVE_FUNC UnpackDerivativeNormalRGB #else -#define UNPACK_NORMAL_FUNC UnpackNormalmapRGorAG +#define UNPACK_NORMAL_FUNC UnpackNormalMapRGorAG #define UNPACK_DERIVATIVE_FUNC UnpackDerivativeNormalRGorAG #endif #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Sampling/SampleUVMappingNormalInternal.hlsl" diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl index 5e3b93f94d9..3acb16aa771 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl @@ -451,7 +451,7 @@ float4 ApplyTextureType(float4 value, int textureType) // NOTE: when textureType is a compile-time constant, the branches compile out if (textureType == TEXTURETYPE_NORMALTANGENTSPACE) { - value.rgb = UnpackNormalmapRGorAG(value); + value.rgb = UnpackNormalMapRGorAG(value); } else if (textureType == TEXTURETYPE_NORMALOBJECTSPACE) { diff --git a/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureXR.hlsl b/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureXR.hlsl index 0927aa67567..5200189db2d 100644 --- a/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureXR.hlsl +++ b/Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureXR.hlsl @@ -107,7 +107,7 @@ #define GATHER_GREEN_TEXTURE2D_X GATHER_GREEN_TEXTURE2D #define GATHER_BLUE_TEXTURE2D_X GATHER_BLUE_TEXTURE2D #define GATHER_ALPHA_TEXTURE2D_X GATHER_ALPHA_TEXTURE2D -#endif +#endif //defined(USE_TEXTURE2D_X_AS_ARRAY) // see Unity\Shaders\Includes\UnityShaderVariables.cginc for impl used by the C++ renderer #if defined(USING_STEREO_MATRICES) && defined(UNITY_STEREO_INSTANCING_ENABLED) @@ -128,4 +128,104 @@ #define UNITY_STEREO_ASSIGN_COMPUTE_EYE_INDEX UNITY_XR_ASSIGN_VIEW_INDEX #endif +#if defined(SHADER_API_METAL) && defined(UNITY_NEEDS_RENDERPASS_FBFETCH_FALLBACK) + // Special metal fallback (allows branching per input to texture load or proper fbf) + +#if defined(USE_TEXTURE2D_X_AS_ARRAY) + +#define RENDERPASS_DECLARE_FALLBACK_X(T, idx) \ + Texture2DArray _UnityFBInput##idx; float4 _UnityFBInput##idx##_TexelSize; \ + inline T ReadFBInput_##idx(bool var, uint2 coord) { \ + [branch]if(var) { return hlslcc_fbinput_##idx; } \ + else { return _UnityFBInput##idx.Load(uint4(coord, SLICE_ARRAY_INDEX, 0)); } \ + } + +#define FRAMEBUFFER_INPUT_X_HALF(idx) cbuffer hlslcc_SubpassInput_f_##idx { half4 hlslcc_fbinput_##idx; bool hlslcc_fbfetch_##idx; }; \ + RENDERPASS_DECLARE_FALLBACK_X(half4, idx) + +#define FRAMEBUFFER_INPUT_X_FLOAT(idx) cbuffer hlslcc_SubpassInput_f_##idx { float4 hlslcc_fbinput_##idx; bool hlslcc_fbfetch_##idx; }; \ + RENDERPASS_DECLARE_FALLBACK_X(float4, idx) + +#define FRAMEBUFFER_INPUT_X_INT(idx) cbuffer hlslcc_SubpassInput_f_##idx { int4 hlslcc_fbinput_##idx; bool hlslcc_fbfetch_##idx; }; \ + RENDERPASS_DECLARE_FALLBACK_X(int4, idx) + +#define FRAMEBUFFER_INPUT_X_UINT(idx) cbuffer hlslcc_SubpassInput_f_##idx { uint4 hlslcc_fbinput_##idx; bool hlslcc_fbfetch_##idx; }; \ + RENDERPASS_DECLARE_FALLBACK_X(uint4, idx) + +#define LOAD_FRAMEBUFFER_INPUT_X(idx, v2fname) ReadFBInput_##idx(hlslcc_fbfetch_##idx, uint2(v2fname.xy)) + + +#define RENDERPASS_DECLARE_FALLBACK_MS_X(T, idx) \ + Texture2DMSArray _UnityFBInput##idx; float4 _UnityFBInput##idx##_TexelSize; \ + inline T ReadFBInput_##idx(bool var, uint2 coord, uint sampleIdx) { \ + [branch]if(var) { return hlslcc_fbinput_##idx[sampleIdx]; } \ + else { return _UnityFBInput##idx.Load(uint3(coord, SLICE_ARRAY_INDEX), sampleIdx); } \ + } + +#define FRAMEBUFFER_INPUT_X_FLOAT_MS(idx) \ + cbuffer hlslcc_SubpassInput_F_##idx { float4 hlslcc_fbinput_##idx[8]; bool hlslcc_fbfetch_##idx; }; \ + RENDERPASS_DECLARE_FALLBACK_MS_X(float4, idx) + +#define FRAMEBUFFER_INPUT_X_HALF_MS(idx) \ + cbuffer hlslcc_SubpassInput_H_##idx { half4 hlslcc_fbinput_##idx[8]; bool hlslcc_fbfetch_##idx; }; \ + RENDERPASS_DECLARE_FALLBACK_MS_X(half4, idx) + +#define FRAMEBUFFER_INPUT_X_INT_MS(idx) \ + cbuffer hlslcc_SubpassInput_I_##idx { int4 hlslcc_fbinput_##idx[8]; bool hlslcc_fbfetch_##idx; }; \ + RENDERPASS_DECLARE_FALLBACK_MS_X(int4, idx) + +#define FRAMEBUFFER_INPUT_X_UINT_MS(idx) \ + cbuffer hlslcc_SubpassInput_U_##idx { uint4 hlslcc_fbinput_##idx[8]; bool hlslcc_fbfetch_##idx; }; \ + UNITY_RENDERPASS_DECLARE_FALLBACK_MS_X(uint4, idx) + +#define LOAD_FRAMEBUFFER_INPUT_X_MS(idx, sampleIdx, v2fname) ReadFBInput_##idx(hlslcc_fbfetch_##idx, uint2(v2fname.xy), sampleIdx) + +#else + // X is just 2D texture so just use the existing macros that have all the metal magic for regular 2D textures + #define FRAMEBUFFER_INPUT_X_HALF(idx) FRAMEBUFFER_INPUT_HALF(idx) + #define FRAMEBUFFER_INPUT_X_FLOAT(idx) FRAMEBUFFER_INPUT_FLOAT(idx) + #define FRAMEBUFFER_INPUT_X_INT(idx) FRAMEBUFFER_INPUT_INT(idx) + #define FRAMEBUFFER_INPUT_X_UINT(idx) FRAMEBUFFER_INPUT_UINT(idx) + #define LOAD_FRAMEBUFFER_INPUT_X(idx, v2fname) LOAD_FRAMEBUFFER_INPUT(idx, v2fname) + + #define FRAMEBUFFER_INPUT_X_HALF_MS(idx) FRAMEBUFFER_INPUT_HALF_MS(idx) + #define FRAMEBUFFER_INPUT_X_FLOAT_MS(idx) FRAMEBUFFER_INPUT_FLOAT_MS(idx) + #define FRAMEBUFFER_INPUT_X_INT_MS(idx) FRAMEBUFFER_INPUT_INT_MS(idx) + #define FRAMEBUFFER_INPUT_X_UINT_MS(idx) FRAMEBUFFER_INPUT_UINT_MS(idx) + #define LOAD_FRAMEBUFFER_INPUT_X_MS(idx, sampleIdx, v2fvertexname) LOAD_FRAMEBUFFER_INPUT_MS(idx, sampleIdx, v2fvertexname) + +#endif //defined(USE_TEXTURE2D_X_AS_ARRAY) + +#elif !defined(PLATFORM_SUPPORTS_NATIVE_RENDERPASS) + + // Use regular texture loads as a fallback these can be either 2d or array depending on the TEXTURE2D_X (USE_TEXTURE2D_X_AS_ARRAY) macros +#define FRAMEBUFFER_INPUT_X_HALF(idx) TEXTURE2D_X_HALF(_UnityFBInput##idx); float4 _UnityFBInput##idx##_TexelSize +#define FRAMEBUFFER_INPUT_X_FLOAT(idx) TEXTURE2D_X_FLOAT(_UnityFBInput##idx); float4 _UnityFBInput##idx##_TexelSize +#define FRAMEBUFFER_INPUT_X_INT(idx) TEXTURE2D_X_INT(_UnityFBInput##idx); float4 _UnityFBInput##idx##_TexelSize +#define FRAMEBUFFER_INPUT_X_UINT(idx) TEXTURE2D_X_UINT(_UnityFBInput##idx); float4 _UnityFBInput##idx##_TexelSize +#define LOAD_FRAMEBUFFER_INPUT_X(idx, v2fvertexname) LOAD_TEXTURE2D_X(_UnityFBInput##idx,v2fvertexname.xy) + +#define FRAMEBUFFER_INPUT_X_FLOAT_MS(idx) TEXTURE2D_X_MSAA(float4, _UnityFBInput##idx); float4 _UnityFBInput##idx##_TexelSize +#define FRAMEBUFFER_INPUT_X_HALF_MS(idx) TEXTURE2D_X_MSAA(float4, _UnityFBInput##idx); float4 _UnityFBInput##idx##_TexelSize +#define FRAMEBUFFER_INPUT_X_INT_MS(idx) TEXTURE2D_X_MSAA(int4, _UnityFBInput##idx); float4 _UnityFBInput##idx##_TexelSize +#define FRAMEBUFFER_INPUT_X_UINT_MS(idx) TEXTURE2D_X_MSAA(uint4, _UnityFBInput##idx); float4 _UnityFBInput##idx##_TexelSize +#define LOAD_FRAMEBUFFER_INPUT_X_MS(idx, sampleIdx, v2fvertexname) LOAD_TEXTURE2D_X_MSAA(_UnityFBInput##idx, v2fvertexname.xy, sampleIdx) + +#else + + // Proper fbf, it will automatically ensure the correct eye is fb-fetched so we do not care if USE_TEXTURE2D_X_AS_ARRAY is enabled or not +#define FRAMEBUFFER_INPUT_X_HALF(idx) FRAMEBUFFER_INPUT_HALF(idx) +#define FRAMEBUFFER_INPUT_X_FLOAT(idx) FRAMEBUFFER_INPUT_FLOAT(idx) +#define FRAMEBUFFER_INPUT_X_INT(idx) FRAMEBUFFER_INPUT_INT(idx) +#define FRAMEBUFFER_INPUT_X_UINT(idx) FRAMEBUFFER_INPUT_UINT(idx) +#define LOAD_FRAMEBUFFER_INPUT_X(idx, v2fname) LOAD_FRAMEBUFFER_INPUT(idx, v2fname) + +#define FRAMEBUFFER_INPUT_X_HALF_MS(idx) FRAMEBUFFER_INPUT_HALF_MS(idx) +#define FRAMEBUFFER_INPUT_X_FLOAT_MS(idx) FRAMEBUFFER_INPUT_FLOAT_MS(idx) +#define FRAMEBUFFER_INPUT_X_INT_MS(idx) FRAMEBUFFER_INPUT_INT_MS(idx) +#define FRAMEBUFFER_INPUT_X_UINT_MS(idx) FRAMEBUFFER_INPUT_UINT_MS(idx) +#define LOAD_FRAMEBUFFER_INPUT_X_MS(idx, sampleIdx, v2fvertexname) LOAD_FRAMEBUFFER_INPUT_MS(idx, sampleIdx, v2fname) + +#endif //!defined(PLATFORM_SUPPORTS_NATIVE_RENDERPASS) + #endif // UNITY_TEXTUREXR_INCLUDED diff --git a/Packages/com.unity.render-pipelines.core/Shaders/CoreCopy.shader b/Packages/com.unity.render-pipelines.core/Shaders/CoreCopy.shader index e799f4edfaf..dc6870af200 100644 --- a/Packages/com.unity.render-pipelines.core/Shaders/CoreCopy.shader +++ b/Packages/com.unity.render-pipelines.core/Shaders/CoreCopy.shader @@ -14,22 +14,45 @@ Shader "Hidden/CoreSRP/CoreCopy" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureXR.hlsl" - #include "Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blit.hlsl" - + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl" + + #pragma multi_compile_fragment _ DISABLE_TEXTURE2D_X_ARRAY #pragma vertex Vert #pragma fragment CopyFrag // Declares the framebuffer input as a texture 2d containing half. - FRAMEBUFFER_INPUT_FLOAT(0); + FRAMEBUFFER_INPUT_X_FLOAT(0); + + struct Attributes + { + uint vertexID : SV_VertexID; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO + }; + + Varyings Vert(Attributes input) + { + Varyings output; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + output.positionCS = GetFullScreenTriangleVertexPosition(input.vertexID); + return output; + } // Out frag function takes as input a struct that contains the screen space coordinate we are going to use to sample our texture. It also writes to SV_Target0, this has to match the index set in the UseTextureFragment(sourceTexture, 0, …) we defined in our render pass script. float4 CopyFrag(Varyings input) : SV_Target0 - { - // read the current pixel from the framebuffer - float2 uv = input.texcoord.xy; + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + // read previous subpasses directly from the framebuffer. - half4 color = LOAD_FRAMEBUFFER_INPUT(0, input.positionCS.xy); + half4 color = LOAD_FRAMEBUFFER_INPUT_X(0, input.positionCS.xy); // Modify the sampled color return color; @@ -49,23 +72,46 @@ Shader "Hidden/CoreSRP/CoreCopy" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl" #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureXR.hlsl" - #include "Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blit.hlsl" + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl" + #pragma multi_compile_fragment _ DISABLE_TEXTURE2D_X_ARRAY #pragma vertex Vert #pragma fragment CopyFragMS #pragma target 4.5 #pragma require msaatex // Declares the framebuffer input as a texture 2d containing half. - FRAMEBUFFER_INPUT_FLOAT_MS(0); + FRAMEBUFFER_INPUT_X_FLOAT_MS(0); + + struct Attributes + { + uint vertexID : SV_VertexID; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO + }; + + Varyings Vert(Attributes input) + { + Varyings output; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + output.positionCS = GetFullScreenTriangleVertexPosition(input.vertexID); + return output; + } // Out frag function takes as input a struct that contains the screen space coordinate we are going to use to sample our texture. It also writes to SV_Target0, this has to match the index set in the UseTextureFragment(sourceTexture, 0, …) we defined in our render pass script. float4 CopyFragMS(Varyings input, uint sampleID : SV_SampleIndex) : SV_Target0 { - // read the current pixel from the framebuffer - float2 uv = input.texcoord.xy; + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + // read previous subpasses directly from the framebuffer. - half4 color = LOAD_FRAMEBUFFER_INPUT_MS(0, sampleID, input.positionCS.xy); + half4 color = LOAD_FRAMEBUFFER_INPUT_X_MS(0, sampleID, input.positionCS.xy); // Modify the sampled color return color; diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/.buginfo b/Packages/com.unity.render-pipelines.core/Tests/Editor/.buginfo index c923130ebb4..6d440cb259e 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/.buginfo @@ -1 +1 @@ -area: SRP Architecture & API \ No newline at end of file +area: SRP Foundation \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/FixedBufferStringQueueTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/FixedBufferStringQueueTests.cs index 5064885e0f1..94ca1e77b23 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/FixedBufferStringQueueTests.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/FixedBufferStringQueueTests.cs @@ -36,6 +36,31 @@ public void PushAndPopOutOfBufferRange() Assert.False(buffer.TryPush("amet, consectetur adipiscing")); Assert.AreEqual(1, buffer.Count); + + Assert.True(buffer.TryPop(out string v) && v == "Lorem ipsum dolor sit"); + Assert.False(buffer.TryPop(out v) && v == null); + } + + [Test] + public void PushAndPopOutOfBufferRange_StringSizeNotDivisibleBy4() + { + // UUM-104687: Buffer is created with size of 32 bytes. The test fills the first 30 bytes with a string, + // so 2 bytes are left over in the buffer. After we pop the string out, we check that the next TryPop + // doesn't try to read out of bounds when trying to read the string length. + + const int bufferLength = 32; + const int bytesToFill = bufferLength - 2; + const int bytesForString = bytesToFill - sizeof(int); + const int numCharacters = bytesForString / sizeof(char); + + string testValue = new string('a', numCharacters); + + byte* bufferStart = stackalloc byte[bufferLength]; + CoreUnsafeUtils.FixedBufferStringQueue buffer = new CoreUnsafeUtils.FixedBufferStringQueue(bufferStart, bufferLength); + + Assume.That(buffer.TryPush(testValue)); + Assume.That(buffer.TryPop(out string v)); + Assert.False(buffer.TryPop(out v)); } [Test] @@ -58,5 +83,6 @@ public void PushAndPopAndClear() Assert.True(buffer.TryPop(out string v) && v == "elit, sed do eiusmod"); Assert.True(buffer.TryPop(out v) && v == "tempor incididunt ut labore"); } + } } diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/GPUDriven/.buginfo b/Packages/com.unity.render-pipelines.core/Tests/Editor/GPUDriven/.buginfo index 3561c5aedbc..e9cd2783df9 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/GPUDriven/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/GPUDriven/.buginfo @@ -1 +1 @@ -area: Graphics Optimization Systems \ No newline at end of file +area: Culling \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/NativePassCompilerRenderGraphTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/NativePassCompilerRenderGraphTests.cs index 7dc8ad23e43..0aee4175baa 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/NativePassCompilerRenderGraphTests.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/NativePassCompilerRenderGraphTests.cs @@ -1416,5 +1416,167 @@ int CountGCAllocs(Action action) return gcAllocRecorder.sampleBlockCount; } } + + [Test] + public void UpdateSubpassAttachmentIndices_WhenDepthAttachmentIsAdded() + { + var g = AllocateRenderGraph(); + var buffers = ImportAndCreateBuffers(g); + + using (var builder = g.AddRasterRenderPass("NoDepth0_Subpass0", out var passData)) + { + builder.SetRenderAttachment(buffers.extraBuffers[0], 0); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => { }); + builder.AllowPassCulling(false); + } + + // Render Pass + // attachments: [extraBuffers[0]] + // subpass 0: color outputs : [0] + + using (var builder = g.AddRasterRenderPass("NoDepth1_Subpass0", out var passData)) + { + builder.SetRenderAttachment(buffers.extraBuffers[0], 0); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => { }); + builder.AllowPassCulling(false); + } + + // Render Pass + // attachments: [extraBuffers[0]] + // subpass 0: color outputs : [0] + + using (var builder = g.AddRasterRenderPass("NoDepth2_Subpass1", out var passData)) + { + builder.SetRenderAttachment(buffers.extraBuffers[1], 0); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => { }); + builder.AllowPassCulling(false); + } + + // Render Pass + // attachments: [extraBuffers[0], extraBuffers[1]] + // subpass 0: color outputs : [0] + // subpass 1: color outputs : [1] + + using (var builder = g.AddRasterRenderPass("NoDepth3_Subpass2", out var passData)) + { + builder.SetInputAttachment(buffers.extraBuffers[0], 0); + builder.SetInputAttachment(buffers.extraBuffers[1], 1); + builder.SetRenderAttachment(buffers.extraBuffers[2], 0); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => { }); + builder.AllowPassCulling(false); + } + + // Render Pass + // attachments: [extraBuffers[0], extraBuffers[1], extraBuffers[2]] + // subpass 0: color outputs : [0] + // subpass 1: color outputs : [1] + // subpass 2: color outputs : [2], inputs : [0, 1] + + using (var builder = g.AddRasterRenderPass("Depth_Subpass3", out var passData)) + { + builder.SetInputAttachment(buffers.extraBuffers[0], 0); + builder.SetRenderAttachmentDepth(buffers.depthBuffer, AccessFlags.Write); + builder.SetRenderAttachment(buffers.extraBuffers[3], 0); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => { }); + builder.AllowPassCulling(false); + } + + // Render Pass + // attachments: [depthBuffer, extraBuffers[1], extraBuffers[2], extraBuffers[0], extraBuffers[3]] + // subpass 0: color outputs : [0 -> 3] + // subpass 1: color outputs : [1] + // subpass 2: color outputs : [2], inputs : [0 -> 3, 1] + // subpass 3: color outputs : [4], inputs : [3] + + var result = g.CompileNativeRenderGraph(g.ComputeGraphHash()); + var passes = result.contextData.GetNativePasses(); + + // All graph passes are merged in the same render pass + Assert.IsTrue(passes != null && passes.Count == 1 && passes[0].numGraphPasses == 5 && passes[0].numNativeSubPasses == 4); + + // Depth is the first attachment + Assert.IsTrue(passes[0].attachments[0].handle.index == buffers.depthBuffer.handle.index); + Assert.IsTrue(passes[0].attachments[1].handle.index == buffers.extraBuffers[1].handle.index); + Assert.IsTrue(passes[0].attachments[2].handle.index == buffers.extraBuffers[2].handle.index); + Assert.IsTrue(passes[0].attachments[3].handle.index == buffers.extraBuffers[0].handle.index); + Assert.IsTrue(passes[0].attachments[4].handle.index == buffers.extraBuffers[3].handle.index); + + // Check first subpass is correctly updated + ref var subPassDesc0 = ref result.contextData.nativeSubPassData.ElementAt(0); + Assert.IsTrue(subPassDesc0.colorOutputs.Length == 1); + Assert.IsTrue(subPassDesc0.colorOutputs[0] == 3); + + // Check second subpass is correctly updated + ref var subPassDesc1 = ref result.contextData.nativeSubPassData.ElementAt(1); + Assert.IsTrue(subPassDesc1.colorOutputs.Length == 1); + Assert.IsTrue(subPassDesc1.colorOutputs[0] == 1); + + // Check third subpass is correctly updated + ref var subPassDesc2 = ref result.contextData.nativeSubPassData.ElementAt(2); + Assert.IsTrue(subPassDesc2.colorOutputs.Length == 1); + Assert.IsTrue(subPassDesc2.colorOutputs[0] == 2); + Assert.IsTrue(subPassDesc2.inputs.Length == 2); + Assert.IsTrue(subPassDesc2.inputs[0] == 3); + Assert.IsTrue(subPassDesc2.inputs[1] == 1); + + // Check fourth subpass with depth is correct + ref var subPassDesc3 = ref result.contextData.nativeSubPassData.ElementAt(3); + Assert.IsTrue(subPassDesc3.colorOutputs.Length == 1); + Assert.IsTrue(subPassDesc3.colorOutputs[0] == 4); + Assert.IsTrue(subPassDesc3.inputs.Length == 1); + Assert.IsTrue(subPassDesc3.inputs[0] == 3); + } + +/* //VRS bug. It seems that there is a bug with VRS forcing pass breaking between passes using the same shading rate image where it shouldn't: UUM-102113. + [Test] + public void UpdateShadingRateImageIndex_WhenDepthAttachmentIsAdded() + { + var g = AllocateRenderGraph(); + var buffers = ImportAndCreateBuffers(g); + + using (var builder = g.AddRasterRenderPass("NoDepth_Subpass0", out var passData)) + { + builder.SetShadingRateImageAttachment(buffers.extraBuffers[0]); + builder.SetRenderAttachment(buffers.extraBuffers[1], 0); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => { }); + builder.AllowPassCulling(false); + } + + // Render Pass + // attachments: [extraBuffers[0], extraBuffers[1]] + // shading rate image : [0] + // subpass 0: color outputs : [1] + + using (var builder = g.AddRasterRenderPass("Depth_Subpass1", out var passData)) + { + builder.SetShadingRateImageAttachment(buffers.extraBuffers[0]); + builder.SetRenderAttachmentDepth(buffers.depthBuffer, AccessFlags.Write); + builder.SetRenderAttachment(buffers.extraBuffers[2], 0); + builder.SetRenderFunc((RenderGraphTestPassData data, RasterGraphContext context) => { }); + builder.AllowPassCulling(false); + } + + // Render Pass + // attachments: [depthBuffer, extraBuffers[1], extraBuffers[0], extraBuffers[2]] + // shading rate image : [0 -> 2] + // subpass 0: color outputs : [1] + // subpass 1: color outputs : [3] + + var result = g.CompileNativeRenderGraph(g.ComputeGraphHash()); + var passes = result.contextData.GetNativePasses(); + + // All graph passes are merged in the same render pass + Assert.IsTrue(passes != null && passes.Count == 1 && passes[0].numGraphPasses == 2 && passes[0].numNativeSubPasses == 2); + + // Depth is the first attachment + Assert.IsTrue(passes[0].attachments[0].handle.index == buffers.depthBuffer.handle.index); + Assert.IsTrue(passes[0].attachments[1].handle.index == buffers.extraBuffers[1].handle.index); + Assert.IsTrue(passes[0].attachments[2].handle.index == buffers.extraBuffers[0].handle.index); + Assert.IsTrue(passes[0].attachments[3].handle.index == buffers.extraBuffers[2].handle.index); + + // Check Shading Rate Image index is correctly updated + Assert.IsTrue(passes[0].shadingRateImageIndex == buffers.extraBuffers[0].handle.index); + } +*/ } } diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraph.ComputeGraphHash.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraph.ComputeGraphHash.cs index f849e39b882..2173abae891 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraph.ComputeGraphHash.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraph.ComputeGraphHash.cs @@ -1,4 +1,4 @@ -using NUnit.Framework; +using NUnit.Framework; using UnityEngine.Experimental.Rendering; using UnityEngine.Rendering.RenderGraphModule; @@ -38,6 +38,12 @@ public static void RenderFunc(RenderGraphTestPassData data, RenderGraphContext c } } + void ClearCompiledGraphAndHash() + { + m_RenderGraph.ClearCurrentCompiledGraph(); + DelegateHashCodeUtils.ClearCache(); + } + [Test] public void ComputeGraphHash_WhenCalledMultipleTimes_CacheForDelegatesIsNotGrowingBetweenComputes() { @@ -438,4 +444,4 @@ void LocalRenderFunc(RenderGraphTestPassData data, RenderGraphContext renderGrap } } } -} \ No newline at end of file +} diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.cs index 12dda5d96b6..c5d5fc6a7f0 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderGraphTests.cs @@ -83,7 +83,7 @@ protected override void Render(ScriptableRenderContext renderContext, List { - using (var builder = m_RenderGraph.AddRenderPass("TestPassWithNoRenderFunc", out var passData)) + using (var builder = m_RenderGraph.AddRasterRenderPass("TestPassWithNoRenderFunc", out var passData)) { builder.AllowPassCulling(false); @@ -1237,5 +1237,98 @@ public void GetTempMaterialPropertyBlockAreReleasedAfterRenderGraphNodeExecution m_Camera.Render(); } + + class RenderGraphCleanupTestData + { + public TextureHandle textureToRelease; + } + + [Test] + public void Cleanup_ReleaseGraphicsResources_WhenCallingCleanup() + { + // We need to capture this variable in the lambda function of the CleanupPass unfortunately + RenderTexture renderTextureToRemove = null; + + m_RenderGraphTestPipeline.recordRenderGraphBody = (context, camera, cmd) => + { + using (var builder = m_RenderGraph.AddUnsafePass("CleanupPass", out var passData)) + { + builder.AllowPassCulling(false); + + var texDesc = new TextureDesc(Vector2.one, false, false) + { + width = 1920, + height = 1080, + format = GraphicsFormat.B10G11R11_UFloatPack32, + clearBuffer = true, + clearColor = Color.red, + name = "Texture To Release" + }; + passData.textureToRelease = m_RenderGraph.CreateTexture(texDesc); + builder.UseTexture(passData.textureToRelease); + builder.SetRenderFunc((RenderGraphCleanupTestData data, UnsafeGraphContext context) => + { + // textureToRelease has been allocated before executing this node + + renderTextureToRemove = (RenderTexture)data.textureToRelease; + Assert.IsNotNull(renderTextureToRemove); + + // textureToRelease will returned to the texture pool after executing this node + }); + } + }; + + // Render Graph hasn't started yet, no texture allocated + Assert.IsNull(renderTextureToRemove); + + m_Camera.Render(); + + // Cleanup pass has been executed + // RG resource has been created and then released to the pool + // but the graphics resource has not been released, still attached to the pooled resource + // in case a next pass will reuse it + Assert.IsNotNull(renderTextureToRemove); + + m_RenderGraph.Cleanup(); + + // All RG resources and data structures have been released + Assert.IsTrue(renderTextureToRemove == null); + } + + [Test] + public void Cleanup_RenderAgain_AfterCallingCleanup() + { + m_RenderGraphTestPipeline.recordRenderGraphBody = (context, camera, cmd) => + { + using (var builder = m_RenderGraph.AddUnsafePass("MidCleanupPass", out var passData)) + { + builder.AllowPassCulling(false); + + var texDesc = new TextureDesc(Vector2.one, false, false) + { + width = 1920, + height = 1080, + format = GraphicsFormat.B10G11R11_UFloatPack32, + clearBuffer = true, + clearColor = Color.red, + name = "Texture To Release Twice" + }; + + passData.textureToRelease = m_RenderGraph.CreateTexture(texDesc); + builder.SetRenderFunc((RenderGraphCleanupTestData data, UnsafeGraphContext context) => + { + /// + }); + } + }; + + m_Camera.Render(); + + // Cleanup everything in Render Graph, even the native data structures + m_RenderGraph.Cleanup(); + + // Ensure that the Render Graph data structures can be reinitialized at runtime, even native ones + Assert.DoesNotThrow(() => m_Camera.Render()); + } } } diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderPipeline/.buginfo b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderPipeline/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderPipeline/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/RenderPipeline/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Editor/Volumes/.buginfo b/Packages/com.unity.render-pipelines.core/Tests/Editor/Volumes/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Editor/Volumes/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Tests/Editor/Volumes/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.core/Tests/Runtime/.buginfo b/Packages/com.unity.render-pipelines.core/Tests/Runtime/.buginfo index 77553c92767..4bd01309c89 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Runtime/.buginfo +++ b/Packages/com.unity.render-pipelines.core/Tests/Runtime/.buginfo @@ -1,11 +1,11 @@ default: - area: SRP Architecture & API + area: SRP Foundation workflow: when: path: - ^.*Volume.*$ - area: SRP Workflow + area: SRP Settings tools: when: diff --git a/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeProfilerTests.cs b/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeProfilerTests.cs index 4a0468a9564..1543e270faf 100644 --- a/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeProfilerTests.cs +++ b/Packages/com.unity.render-pipelines.core/Tests/Runtime/RuntimeProfilerTests.cs @@ -55,10 +55,11 @@ protected IEnumerator Warmup() } } - // Fails on WebGL and Oculus Quest. + // Fails on WebGL, Oculus Quest and Embedded Platforms (GLES3). // Unfortunately, there is no good way to exclude Oculus Quest from the test without excluding all Android devices. // https://jira.unity3d.com/browse/GFXFOUND-559 - [UnityPlatform(exclude = new RuntimePlatform[] { RuntimePlatform.WebGLPlayer, RuntimePlatform.Android })] + // https://jira.unity3d.com/browse/PLAT-13842 (GLES3 gpuFrameTime is currently only available on Android) + [UnityPlatform(exclude = new RuntimePlatform[] { RuntimePlatform.WebGLPlayer, RuntimePlatform.Android, RuntimePlatform.EmbeddedLinuxArm64 })] class RuntimeProfilerTests : RuntimeProfilerTestBase { [UnityTest] diff --git a/Packages/com.unity.render-pipelines.core/package.json b/Packages/com.unity.render-pipelines.core/package.json index cb525613e7c..91cc95ceaec 100644 --- a/Packages/com.unity.render-pipelines.core/package.json +++ b/Packages/com.unity.render-pipelines.core/package.json @@ -3,7 +3,7 @@ "description": "SRP Core makes it easier to create or customize a Scriptable Render Pipeline (SRP). SRP Core contains reusable code, including boilerplate code for working with platform-specific graphics APIs, utility functions for common rendering operations, and shader libraries. The code in SRP Core is use by the High Definition Render Pipeline (HDRP) and Universal Render Pipeline (URP). If you are creating a custom SRP from scratch or customizing a prebuilt SRP, using SRP Core will save you time.", "version": "17.1.0", "unity": "6000.1", - "displayName": "Core RP Library", + "displayName": "Scriptable Render Pipeline Core", "dependencies": { "com.unity.burst": "1.8.14", "com.unity.mathematics": "1.3.2", diff --git a/Packages/com.unity.render-pipelines.high-definition-config/.buginfo b/Packages/com.unity.render-pipelines.high-definition-config/.buginfo index aa7f21cd9cd..0eaaafec29d 100644 --- a/Packages/com.unity.render-pipelines.high-definition-config/.buginfo +++ b/Packages/com.unity.render-pipelines.high-definition-config/.buginfo @@ -1 +1 @@ -area: SRP Architecture & API +area: SRP Foundation diff --git a/Packages/com.unity.render-pipelines.high-definition-config/package.json b/Packages/com.unity.render-pipelines.high-definition-config/package.json index 1b4ba88114f..9323a0f8454 100644 --- a/Packages/com.unity.render-pipelines.high-definition-config/package.json +++ b/Packages/com.unity.render-pipelines.high-definition-config/package.json @@ -3,7 +3,7 @@ "description": "Configuration files for the High Definition Render Pipeline.", "version": "17.1.0", "unity": "6000.1", - "displayName": "High Definition RP Config", + "displayName": "High Definition Render Pipeline Config", "dependencies": { "com.unity.render-pipelines.core": "17.1.0" } diff --git a/Packages/com.unity.render-pipelines.high-definition/.buginfo b/Packages/com.unity.render-pipelines.high-definition/.buginfo index 6b6b1d34448..0b5ff751b42 100644 --- a/Packages/com.unity.render-pipelines.high-definition/.buginfo +++ b/Packages/com.unity.render-pipelines.high-definition/.buginfo @@ -1,5 +1,5 @@ old: - area: SRP Architecture & API + area: SRP Foundation Workflow: when: @@ -10,7 +10,7 @@ Workflow: - ^.*AdditionalLight?.*$ - ^.*AdditionalReflectionProbe?.*$ - ^.*ContextualMenuDispatcher?.*$ - area: SRP Workflow + area: SRP Settings Tools: when: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/3ds-max-physical-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/3ds-max-physical-material-inspector-reference.md index 02566a51e75..0de5ad2e3b0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/3ds-max-physical-material-inspector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/3ds-max-physical-material-inspector-reference.md @@ -23,8 +23,8 @@ When Unity imports an FBX with a compatible 3DS Physical Material shader, it aut Property - - + Option + Sub-option Description @@ -94,7 +94,7 @@ When Unity imports an FBX with a compatible 3DS Physical Material shader, it aut Property - + Option Description diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/AOVs.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/AOVs.md index 054a85046c9..32f3c233859 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/AOVs.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/AOVs.md @@ -4,7 +4,7 @@ Arbitrary Output Variables (AOVs) are additional images that an [HDRP Camera](hd Here is an example of three AOVs, containing from left to right the Albedo, Normal, and Object ID of each pixel: -![](Images/aov_example.png) +![Example: Three AOVs, containing from left to right the Albedo, Normal, and Object ID of each pixel:](Images/aov_example.png) In HDRP, you can access and configure AOVs in the following ways: - Using the [HDRP Compositor tool](graphics-compositor.md). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Anti-Aliasing.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Anti-Aliasing.md index 284e42b1c6c..9a62582081f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Anti-Aliasing.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Anti-Aliasing.md @@ -4,7 +4,7 @@ This is most obvious if you compare the original and digital signals for an audio source at its highest frequencies, or a visual source in its smallest details. Regular signal processing uses the [Nyquist rate](Glossary.md#NyquistRate) to avoid aliasing, however it's not practical for image rendering because it's resource intensive. -![](Images/MSAA1.png) +![Example of aliasing happening during the rasterization process.](Images/MSAA1.png) An example of the rasterization process creating some aliasing. @@ -96,18 +96,18 @@ When you enable MSAA in your Unity Project, you must also enable it for your Cam Increasing the MSAA Sample Count produces smoother antialiasing, at the cost of performance. Here are some visual examples showing the effect of the different MSAA Sample Counts: -![](Images/MSAA3.png) +![Rendered image sample with MSAA Sample Count set to None.](Images/MSAA3.png) MSAA Sample Count set to None. -![](Images/MSAA4.png) +![Rendered image sample with MSAA Sample Count set to MSAA 2X.](Images/MSAA4.png) MSAA Sample Count set to MSAA 2X. -![](Images/MSAA5.png) +![Rendered image sample with MSAA Sample Count set to MSAA 4X.](Images/MSAA5.png) MSAA Sample Count set to MSAA 4X. -![](Images/MSAA6.png) +![Rendered image sample with MSAA Sample Count set to MSAA 8X.](Images/MSAA6.png) MSAA Sample Count set to MSAA 8X. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/AxF-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/AxF-material-inspector-reference.md index 2c95d399062..e43a69edf2b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/AxF-material-inspector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/AxF-material-inspector-reference.md @@ -2,8 +2,6 @@ The AxF Shader allows you to render X-Rite AxF materials in the High Definition Render Pipeline (HDRP). AxF is a standardized format that allows for the exchange of material appearance data. The production of an AxF file typically involves an authoring suite that includes real-world material measurements from which it can produce various textures and model properties. -![](Images/AxFShader1.png) - To translate AxF file data into Material properties and data that HDRP's AxF Shader can understand and render, you can use a custom AxF Importer. Unity's Industry Partner Advisors (available only for Unity Industry or ISS customers) can also deliver the unsupported **AxF Importer package** upon request. You are not required to use the importer and can instead use the Inspector to assign values yourself. However, the AxF Shader is specifically designed to work with data the AxF Importer translates from AxF files. Unity currently does not provide a method to author certain Assets that AxF Materials rely on to accurately portray the real-world material they represent. This means that, if you create the AxF Material manually, you may not be able to reproduce certain results available from an imported AxF file. ## Importing and Creating an AxF Material diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Custom-Pass-Injection-Points.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Custom-Pass-Injection-Points.md index c44d7802ccd..3e20c3bc9c3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Custom-Pass-Injection-Points.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Custom-Pass-Injection-Points.md @@ -14,12 +14,13 @@ To learn when injection points happen in the render pipeline refer to [Execution Unity triggers the following injection points in a frame, in order from top to bottom: -| **Injection point** | **Available buffers** | **Description** | -|---------------------------| ------------------------------------------------------------ | ----------------------------------------------------------- | -| BeforeRendering | Depth (Write) | Unity clears the depth buffer immediately before this injection point.

In this injection point you can write to the depth buffer so that Unity doesn’t render depth-tested, opaque objects.

You can also clear the buffer you allocated or the `Custom Buffer`.

When you select this Injection point for a [FullscreenCustom Pass](custom-pass-create-gameobject.md#full-screen-custom-pass), Unity assigns the camera color buffer as the target by default. | -| AfterOpaqueDepthAndNormal | Depth (Read \| Write), Normal and roughness (Read \| Write), Motion Vectors (Write) | The available buffers for this injection point contain all opaque objects.

In this injection point you can modify the normal, roughness, depth, and motion vectors buffers. HDRP takes this into account in the lighting and the depth pyramid.

Normals and roughness are in the same buffer. You can use `DecodeFromNormalBuffer` and `EncodeIntoNormalBuffer` methods to read/write normal and roughness data.

The Motion Vectors buffer only includes object motion vector data when you use [forward rendering](Forward-And-Deferred-Rendering.md). To include object motion vector data in the Motion Vectors buffer when using deferred rendering, go to [Frame Settings](Frame-Settings.md) and enable **Depth Prepass within Deferred**. | -| AfterOpaqueAndSky | Color (no pyramid \| Read \| Write), Depth (Read \| Write), Normal and roughness (Read), Motion Vectors (Read \| Write) | The available buffers for this injection point contain all opaque objects and the sky. Note that the Fog is rendered just after this pass, so if you modify the color buffer, fog will be added on top of your effect. | -| BeforePreRefraction | Color (no pyramid \| Read \| Write), Depth (Read \| Write), Normal and roughness (Read), Motion Vectors (Read \| Write) | The available buffers for this injection point contain all opaque objects, the camera and object motion vectors, and the sky.

From this point, the motion vectors buffer is complete.

In this injection point you can render any transparent objects that require refraction. These objects are then included in the color pyramid that Unity uses for refraction when it renders transparent objects. | -| BeforeTransparent | Color (Pyramid \| Read \| Write), Depth (Read \| Write), Normal and roughness (Read), Motion Vectors (Read) | The available buffers for this injection point contain:
- All opaque objects.
- Transparent PreRefraction objects.
- Transparent objects with depth-prepass and screen space reflections (SSR) enabled.

In this Injection Point you can sample the color pyramid that Unity uses for transparent refraction. You can use this to create a blur effect. All objects Unity renders in this injection point will not be in the color pyramid.

You can also use this injection point to draw some transparent objects that refract the whole scene, like water. | -| BeforePostProcess | Color (Pyramid \| Read \| Write), Depth (Read \| Write), Normal and roughness (Read), Motion Vectors (Read) | The available buffers for this injection point contain all geometry in the frame that uses High Dynamic Range (HDR). | -| AfterPostProcess | Color (Read \| Write), Depth (Read) | The available buffers for this injection point contain the final render of the scene, including post-process effects.

This injection point executes the available buffers after Unity applies any post-processing effects.

If you select this injection point, objects that use the depth buffer display jittering artifacts.

When you select this injection point for a [FullscreenCustom Pass](custom-pass-create-gameobject.md#full-screen-custom-pass), Unity assigns the camera color buffer as the target by default. | +| **Injection point** | **Available buffers** | **Description** | +|---------------------------| ------------------------------------------------------------ |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| BeforeRendering | Depth (Write) | Unity clears the depth buffer immediately before this injection point.

In this injection point you can write to the depth buffer so that Unity doesn’t render depth-tested, opaque objects.

You can also clear the buffer you allocated or the `Custom Buffer`.

When you select this Injection point for a [FullscreenCustom Pass](custom-pass-create-gameobject.md#full-screen-custom-pass), Unity assigns the camera color buffer as the target by default. | +| AfterOpaqueDepthAndNormal | Depth (Read \| Write), Normal and roughness (Read \| Write), Motion Vectors (Write) | The available buffers for this injection point contain all opaque objects.

In this injection point you can modify the normal, roughness, depth, and motion vectors buffers. HDRP takes this into account in the lighting and the depth pyramid.

Normals and roughness are in the same buffer. You can use `DecodeFromNormalBuffer` and `EncodeIntoNormalBuffer` methods to read/write normal and roughness data.

The Motion Vectors buffer only includes object motion vector data when you use [forward rendering](Forward-And-Deferred-Rendering.md). To include object motion vector data in the Motion Vectors buffer when using deferred rendering, go to [Frame Settings](Frame-Settings.md) and enable **Depth Prepass within Deferred**. | +| AfterOpaqueAndSky | Color (no pyramid \| Read \| Write), Depth (Read \| Write), Normal and roughness (Read), Motion Vectors (Read \| Write) | The available buffers for this injection point contain all opaque objects and the sky. Note that the Fog is rendered just after this pass, so if you modify the color buffer, fog will be added on top of your effect. | +| BeforePreRefraction | Color (no pyramid \| Read \| Write), Depth (Read \| Write), Normal and roughness (Read), Motion Vectors (Read \| Write) | The available buffers for this injection point contain all opaque objects, the camera and object motion vectors, and the sky.

From this point, the motion vectors buffer is complete.

In this injection point you can render any transparent objects that require refraction. These objects are then included in the color pyramid that Unity uses for refraction when it renders transparent objects. | +| BeforeTransparent | Color (Pyramid \| Read \| Write), Depth (Read \| Write), Normal and roughness (Read), Motion Vectors (Read) | The available buffers for this injection point contain:
- All opaque objects.
- Transparent PreRefraction objects.
- Transparent objects with depth-prepass and screen space reflections (SSR) enabled.

In this Injection Point you can sample the color pyramid that Unity uses for transparent refraction. You can use this to create a blur effect. All objects Unity renders in this injection point will not be in the color pyramid.

You can also use this injection point to draw some transparent objects that refract the whole scene, like water. | +| BeforePostProcess | Color (Pyramid \| Read \| Write), Depth (Read \| Write), Normal and roughness (Read), Motion Vectors (Read) | The available buffers for this injection point contain all geometry in the frame that uses High Dynamic Range (HDR). | +| AfterPostProcess | Color (Read \| Write), Depth (Read) | The available buffers for this injection point contain the final render of the scene, including post-process effects.

This injection point executes the available buffers after Unity applies any post-processing effects.

If you select this injection point, objects that use the depth buffer display jittering artifacts.

When you select this injection point for a [FullscreenCustom Pass](custom-pass-create-gameobject.md#full-screen-custom-pass), Unity assigns the camera color buffer as the target by default.

**Note:** When sampling scene color using HDSceneColor node in a FullScreenShaderGraph at this injection point, consider using a temporary buffer to handle concurrent read/write operations. See [Scene Color Sampling in AfterPostProcess](Custom-Pass-Scene-Color-Read.md) for implementation details. | + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Custom-Pass-Troubleshooting.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Custom-Pass-Troubleshooting.md index e5d80f9c4ea..b7d0e880a02 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Custom-Pass-Troubleshooting.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Custom-Pass-Troubleshooting.md @@ -4,7 +4,7 @@ This section provides examples of common issues you might encounter when using a ## Display scaling issues -![](images/Custom_Pass_Troubleshooting_01.png) +![Custom pass troubleshooting example: Display scaling issues.](images/Custom_Pass_Troubleshooting_01.png) A scaling issue can appear in your built scene when you have two cameras that don't use the same resolution. This is most common between Game and Scene views. This can happen when: @@ -36,7 +36,7 @@ To fix this: Sometimes when you enable [Temporal antialiasing (TAA)](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.1/manual/Anti-Aliasing.html?q=anti#TAA), some GameObjects appear to jitter. -![](images/Custom_Pass_Troubleshooting_02.gif) +![Custom pass troubleshooting example: Jittering GameObjects.](images/Custom_Pass_Troubleshooting_02.gif) Jittering can happen when both of the following conditions are met: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Customizing-HDRP-materials-with-Shader-Graph.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Customizing-HDRP-materials-with-Shader-Graph.md index 8187b39a6f3..4e2c8b23dbd 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Customizing-HDRP-materials-with-Shader-Graph.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Customizing-HDRP-materials-with-Shader-Graph.md @@ -39,8 +39,6 @@ To edit properties for Materials that use Shader Graphs, the Inspector window on 2. To expose the rest of the properties, click on the gear in the top right of the Master Node. See these other properties in the **Surface Options** section of the screenshot below. 3. Edit the values for the gear's properties in the same way as you would do in the Inspector window. The list of inputs on the Master Node, and the available properties in the gear's list, changes depending on what options you select. -![](Images/CreatingAndEditingHDRPShaderGraphs1.png) - ## Material properties When you edit a Shader Graph Asset, you can create properties on the [Blackboard](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest/index.html?subfolder=/manual/Blackboard.html) for Materials that use it. This allows you to change the value of the property at runtime. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Dynamic-Resolution.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Dynamic-Resolution.md index 4c764a0f016..4d4f9a99557 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Dynamic-Resolution.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Dynamic-Resolution.md @@ -13,7 +13,7 @@ When you enable dynamic resolution, HDRP allocates render targets to accommodate HDRP always uses a software method to upscale the result. The method HDRP uses is defined in the **Upscale Filter**. You can select which upscaling method HDRP uses to do this. For more information, see [Choosing an upscale filter](#Choosing_Upscale_Filter). -![](Images/DynamicResolution1.png) +![Dynamic resolution sample.](Images/DynamicResolution1.png) ## Using dynamic resolution @@ -110,9 +110,11 @@ HDRP provides the following upscale filter methods: | ------------------------------------ | ------------------------------------------------------------ | | **Catmull-Rom** | Catmull-Rom uses four bilinear samples. This uses the least resources, but it can cause blurry images after HDRP performs the upscaling step.

Catmull-Rom has no dependencies and runs at the end of the post-processing pipeline. | | **Contrast Adaptive Sharpen (CAS)** | Contrast Adaptive Sharpen (CAS) uses **FidelityFX (CAS) AMDâ„¢**. This method produces a sharp image with an aggressive sharpening step. Do not use this option when the dynamic resolution screen percentage is less than 50%. For information about FidelityFX and Contrast Adaptive Sharpening, refer to [AMD FidelityFX](https://www.amd.com/en/technologies/radeon-software-fidelityfx).

Contrast Adaptive Sharpen (CAS) has no dependencies and runs at the end of the post-processing pipeline. | -| **FidelityFX Super Resolution 1.0** | FidelityFX Super Resolution 1.0 uses a spatial super-resolution method that balances quality and performance. For more information, see [AMD FidelityFX](https://www.amd.com/en/technologies/radeon-software-fidelityfx).

FidelityFX Super Resolution 1.0 has no dependencies and runs at the end of the post-processing pipeline.

FidelityFX Super Resolution 1.0 also runs when at 100% resolution as it can have beneficial sharpening effects.

For more information, see the section [Notes on FidelityFX Super Resolution 1.0](Dynamic-Resolution.md#notes-on-fidelityfx-super-resolution-10-fsr)| +| **AMD FidelityFX Super Resolution 1.0 (FSR1)** | FidelityFX Super Resolution 1.0 uses a spatial super-resolution method that balances quality and performance. For more information, refer to [AMD FidelityFX](https://www.amd.com/en/technologies/radeon-software-fidelityfx).

FSR1 has no dependencies and runs at the end of the post-processing pipeline.

FSR1 also runs when at 100% resolution as it can have beneficial sharpening effects.

For more information, refer to the section [Notes on FidelityFX Super Resolution 1.0](Dynamic-Resolution.md#notes-on-fidelityfx-super-resolution-10-fsr)| +| **AMD FidelityFX Super Resolution 2 (FSR2)** | For more information, refer to [AMD FidelityFX Super Resolution 2](https://gpuopen.com/fidelityfx-superresolution-2/). | | **Temporal Anti-Aliasing (TAA) Upscale** | Temporal Anti-Aliasing (TAA) Upscale uses temporal integration to produce a sharp image. Unity performs this method alongside the normal anti-aliasing.

HDRP executes this upscale filter before post processing and at the same time as the TAA step. This means you can only use the TAA anti-aliasing method. This filter is not compatible with other anti-aliasing methods.

Temporal Anti-Aliasing (TAA) Upscale performs antialiasing on each frame. This means that it also runs when you enable Dynamic Resolution, even when the screen percentage is at 100% resolution.

For more information, see the section [Notes on TAA Upscale](Dynamic-Resolution.md#notes-on-temporal-anti-aliasing-taa-upscale). | | **Spatial-Temporal Post-Processing (STP)** | Spatial-Temporal Post-Processing (STP) uses spatial and temporal upsampling techniques to produce a high quality, anti-aliased image.

Similar to the TAA Upscale filter, you can only use STP with the TAA anti-aliasing method. It is not compatible with other anti-aliasing methods. STP remains active when **Render Scale** is set to **1.0** as it applies temporal anti-aliasing (TAA) affects to the final rendered output.

A limitation of using STP is that it does not support dynamic resolution without hardware support. You can still use STP for fixed resolution scaling in cases where hardware dynamic resolution support is unavailable. However, **Render Scale** must be set to a fixed value.

For more information on STP, refer to [Spatial-Temporal Post-processing](stp/stp-upscaler.md) | +| **NVIDIA Deep Learning Super Sampling (DLSS)** | HDRP supports DLSS only on the following platforms:
  • DirectX 11 on Windows 64-bit
  • DirectX 12 on Windows 64-bit
  • Vulkan on Windows 64-bit
Refer to [DLSS in HDRP](deep-learning-super-sampling-in-hdrp.md). | ## Override upscale options in a script diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings-API.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings-API.md index 520c8ef6fc3..7314e89ca90 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings-API.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Frame-Settings-API.md @@ -82,8 +82,6 @@ In the override mask, to allow you to easily access the bit for a given Frame Se The following example shows how to compare the `humanizedData` from a rendering component's override mask with the rendering component's custom Frame Settings. There are some custom Frame Settings set, but the mask is all zeros which means that this rendering component uses the default Frame Settings. -![](Images/FrameSettingsAPI-watch.png) - ## FrameSettings Scripting API This is a structure that contains information on how a rendering component should render the Scene. For more information about this structure and the API it contains, see [FrameSettings](xref:UnityEngine.Rendering.HighDefinition.FrameSettings). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md index 16497385890..0b99edacdd1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/HDRP-Asset.md @@ -50,34 +50,68 @@ These settings control the draw distance and resolution of the decals atlas that | **- Layers** | Enable the checkbox to allow decals to only affect specific layers.| - ### Dynamic Resolution +For more information about dynamic resolution and upscale filters, refer to [Dynamic Resolution](Dynamic-Resolution.md). + | **Property** | **Description** | |---------------------------------------------|--------------------------------------------------------------| | **Enable** | Enable the checkbox to make HDRP support dynamic resolution in your Unity Project. | -| **Dynamic Resolution** | | -| - **Enable DLSS** | Enable the checkbox to make HDRP support NVIDIA Deep Learning Super Sampling (DLSS).
This property only appears if you enable the NVIDIA package (`com.unity.modules.nvidia`) in your Unity project. | -| - **Mode** | Use the drop-down to select which performance mode DLSS operates on. The options are:
• **Balanced**: Balances performance with quality.
• **MaxPerf**: Fast performance, lower quality.
• **MaxQuality**: High quality, lower performance.
• **UltraPerformance**: Fastest performance, lowest quality. | -| - **Injection Point** | Use the drop-down to select at which point DLSS runs in the rendering pipeline:
• **Before Post**: DLSS runs when all post-processing effects are at full resolution.
• **After Depth Of Field**: Depth of field runs at a low resolution, and DLSS upscales everything in the next rendering step. All other post-processing effects run at full resolution.
• **After Post Process**: DLSS runs at the end of the pipeline when all post-processes are at low resolution. | -| - **Use Optimal Settings** | Enable the checkbox to make DLSS control the Sharpness and Screen Percentage automatically. | -| - **Sharpness** | Controls how the DLSS upsampler renders edges on the image. More sharpness usually means more contrast and a clearer image but can increase flickering and fireflies. Unity ignores this property if you enable **Use Optimal Settings**. | -| **Dynamic Resolution Type** | | -| - **Software** | Allocates render targets to accommodate the maximum resolution possible, then rescales the viewport accordingly. This allows the viewport to render at varying resolutions. | -| - **Hardware** | Treats the render targets, up until the back buffer, as if they are all the scaled size. This means HDRP clears the render targets faster. | -| **Upscale Filter** | | -| - **Catmull-Rom** | A bicubic upsample with 4 taps. | -| - **Contrast Adaptive Sharpen** | An ultra-sharp upsample. This option is not meant for screen percentages less than 50% and still sharpens when you set the screen percentage to 100%. It uses **FidelityFX (CAS) AMDâ„¢**. | -| - **FidelityFX Super Resolution 1.0 AMDâ„¢** | A spatial super-resolution technology that leverages cutting-edge algorithms to produce impressive upscaling quality at very fast performance. | -| - **TAA Upscale** | A temporal anti-aliasing upscaler that uses information from previous frames to produce high-quality visuals. | -| - **Spatial-Temporal Post-processing (STP)**| A low-overhead spatio-temporal anti-aliasing upscaler that attempts to produce sharp visuals at scaling factors as low as 50%. | +| **Advanced Upscalers By Priority** | Displays the list of advanced upscale filters that HDRP can use to increase the resolution after rendering at a lower resolution. To add an upscale filter, select the **Add** (**+**) button. To remove a filter, select it then select the **Remove** (**-**) button.

The options are:
  • **DLSS**: NVIDIA Deep Learning Super Sampling. This option is available only if you enable the NVIDIA built-in package in the [Package Manager window](https://docs.unity3d.com/Manual/upm-ui.html). For more information, refer to [DLSS settings](#dlss-settings).
  • **FSR2**: AMD FidelityFX Super Resolution 2.0. This option is available only if you enable the AMD built-in package in the [Package Manager window](https://docs.unity3d.com/Manual/upm-ui.html). For more information, refer to [FSR2 settings](#fsr2-settings).
  • **STP**: Spatial-Temporal Post-processing. For more information, refer to [STP settings](#stp-settings).
| +| **Dynamic Resolution Type** | Sets how HDRP renders at a lower resolution. The options are:
  • **Software**: Allocates render targets to accommodate the maximum resolution possible, then rescales the viewport accordingly. This allows the viewport to render at varying resolutions.
  • **Hardware**: Treats the render targets up to the back buffer as if they're all the scaled size. This means HDRP clears the render targets faster.
| +| **Default Upscale Filter** | Sets the upscale filter HDRP uses to increase the resolution after rendering at a lower resolution.

The options are:
  • **Catmull-Rom**: A bicubic upsample with 4 taps.
  • **Contrast Adaptive Sharpen**: An ultra-sharp upsample. This option is not meant for screen percentages less than 50% and still sharpens when you set the screen percentage to 100%. This filter uses FidelityFX (CAS) AMDâ„¢.
  • **FidelityFX Super Resolution 1.0 AMDâ„¢ (FSR1)**: A spatial super-resolution technology that leverages cutting-edge algorithms to produce high upscaling quality at very fast performance.
  • **TAA Upscale**: A temporal anti-aliasing upscaler that uses information from previous frames to produce high-quality visuals.
If you add one or more upscale filters to **Advanced Upscalers By Priority**, this property becomes **Default Fallback Upscale Filter**. HDRP uses this filter if your build platform doesn't support the advanced upscale filters you add.| +| **Injection Point** | Sets when HDRP applies the Catmull-Rom upscale filter. This property is available here only if you set **Default Upscale Filter** to **Catmull-Rom**. For more information, refer to [Injection points dropdown](#injection-points). | +| **Override FSR Sharpness** | Enables an **FSR Sharpness** slider that lets you set the sharpness of the FSR1 upscale filter. A value of 1.0 means maximum sharpness. A value of 0 means no sharpening. You can also set the sharpness per camera in the [Camera Inspector window](hdrp-camera-component-reference.md). This property is available only if you set **Default Upscale Filter** to **FidelityFX Super Resolution 1.0**. | +| **TAA Upscale Injection Point** | Sets when HDRP applies the TAA Upscaling filter. This property is available here only if you set **Default Upscale Filter** to **TAA Upscaling**. For more information, refer to [Injection points dropdown](#injection-points). | | **Use Mip Bias** | Apply a negative bias on the texture samplers of deferred, opaque, and transparent passes. This improves detail on textures but increases the texture fetching cost. Cost varies per platform. | +| **Force Screen Percentage** | The specific screen percentage that HDRP uses for dynamic resolution. This property is only visible when you enable the **Force Screen Percentage**. | | **Minimum Screen Percentage** | The minimum screen percentage that dynamic resolution can reach. | | **Maximum Screen Percentage** | The maximum screen percentage that dynamic resolution can reach. This value must be higher than the **Min Screen Percentage**. | -| **Force Screen Percentage** | | -| - **Forced Screen Percentage** | The specific screen percentage that HDRP uses for dynamic resolution. This property is only visible when you enable the **Force Screen Percentage**. | -| **Low Res Transparency Min Threshold** | The minimum percentage threshold allowed to clamp low-resolution transparency. When the resolution percentage falls below this threshold, HDRP will clamp the low resolution to this percentage. | -| **Ray Tracing Half Resolution Threshold** | The minimum percentage threshold allowed to render ray tracing effects at half resolution. When the resolution percentage falls below this threshold, HDRP will render ray tracing effects at full resolution. | +| **Low Res Transparency Min Threshold** | Sets the minimum resolution that HDRP can render transparency, as a percentage of full screen resolution. | +| **Low Res Screen Space GI Min Threshold** | Sets the minimum resolution that HDRP can render screen-space global illumination, as a percentage of full screen resolution. | +| **Low Res Volumetric Clouds Min Threshold** | Sets the minimum resolution that HDRP can render volumetric clouds, as a percentage of full screen resolution. | +| **Ray Tracing Half Resolution Threshold** | Sets the minimum resolution that HDRP can render ray tracing at half resolution. If the resolution falls below this threshold, HDRP renders ray tracing at full resolution. | + + +#### DLSS settings + +The following properties are available only if you add **DLSS** to **Advanced Upscalers By Priority**. + +| **Property** | **Description** | +|-|-| +| **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
  • **Maximum Quality**
  • **Balanced**
  • **Maximum Performance**
  • **Ultra Performance**
| +| **DLSS Injection Point** | Sets when DLSS runs in the rendering pipeline. For more information, refer to [Injection points dropdown](#injection-points). | +| **DLSS Use Optimal Settings** | Enables DLSS controlling screen percentage automatically. | + + +#### FSR2 settings + +The following properties are available only if you add **FSR2** to **Advanced Upscalers By Priority**. + +| **Property** | **Description** | +|-|-| +| **FSR2 Injection Point** | Sets when HDRP applies the FSR2 upscale filter. For more information, refer to [Injection points dropdown](#injection-points). | +| **FSR2 Enable Sharpness** | Enables an **FSR2 Sharpness** slider that lets you set the sharpness of the FSR2 upscale filter. A value of 1.0 means maximum sharpness. A value of 0 means no sharpening. You can also set the sharpness per camera in the [Camera Inspector window](hdrp-camera-component-reference.md). | +| **FSR2 Use Optimal Settings** | Enables the **FSR2 Mode** property. | +| **FSR2 Mode** | Sets whether FSR2 prioritizes quality or performance. This parameter is available only if you enable **FSR2 Use Optimal Settings**. The options are:
  • **Quality**
  • **Balanced**
  • **Performance**
  • **Ultra Performance**
| + + +#### STP settings + +The following property is available only if you add **STP** to **Advanced Upscalers By Priority**. + +| **Property** | **Description** | +|-|-| +| **STP Injection Point** | Sets when HDRP applies the STP upscale filter. For more information, refer to [Injection points dropdown](#injection-points). | + + +#### Injection points dropdown + +| **Option** | **Description** | +|-|-| +|**Before Post Process**|HDRP upscales when post-processing effects are at full resolution.| +|**After Depth Of Field**|HDRP upscales when depth of field is at low resolution, but post-processing effects are at full resolution.| +|**After Post Process**|HDRP upscales at the end of the pipeline, when post-processing effects are at low resolution.| 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 995cb82f790..6ba9dc953c6 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 @@ -426,7 +426,7 @@ Use HDRP's water system to create and control realistic water surfaces. HDRP's w - Simulation-based caustics. - Underwater rendering. - Deformer. -- Foam Generator. +- Foam. - Water Excluder. - A mirrored simulation on the CPU for high-fidelity game interactions. - A shader graph interaction for advanced visual customization. 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 6c1161871bd..a3169a06b8c 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 water mask. +- Glacier: Demonstrates current, water deformers, 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~/Images/AxFShader1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/AxFShader1.png deleted file mode 100644 index ffc41715d31..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/AxFShader1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/CreatingAndEditingHDRPShaderGraphs1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/CreatingAndEditingHDRPShaderGraphs1.png deleted file mode 100644 index f8f604f9d42..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/CreatingAndEditingHDRPShaderGraphs1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Custom_Pass_DrawRenderers_Error.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Custom_Pass_DrawRenderers_Error.png deleted file mode 100644 index d9fae9d23d0..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Custom_Pass_DrawRenderers_Error.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Custom_Pass_HDRPAsset_CBF.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Custom_Pass_HDRPAsset_CBF.png deleted file mode 100644 index d47a4c5d277..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Custom_Pass_HDRPAsset_CBF.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettingsAPI-watch.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettingsAPI-watch.png deleted file mode 100644 index 6a75cae8018..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/FrameSettingsAPI-watch.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LayeredLit1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LayeredLit1.png deleted file mode 100644 index 76396517a83..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LayeredLit1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LightAnchor0.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LightAnchor0.png deleted file mode 100644 index 78ba7ee383e..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/LightAnchor0.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/MatCap_Settings.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/MatCap_Settings.png deleted file mode 100644 index 39ccecec279..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/MatCap_Settings.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Matcap1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Matcap1.png deleted file mode 100644 index db6da5856e8..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Matcap1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-CloudLayer.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-CloudLayer.png deleted file mode 100644 index 8947be10796..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-CloudLayer.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-GradientSky1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-GradientSky1.png deleted file mode 100644 index 286f201a483..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-GradientSky1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky1.png deleted file mode 100644 index fc1ef93bf2b..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky2.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky2.png deleted file mode 100644 index 1da782046c1..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-HDRISky2.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-IndirectLightingController1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-IndirectLightingController1.png deleted file mode 100644 index 52d8c0aa4e2..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-IndirectLightingController1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-Shadows1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-Shadows1.png deleted file mode 100644 index cfb28cf0d47..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-Shadows1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-VolumetricFog1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-VolumetricFog1.png deleted file mode 100644 index c9a31c94fad..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Override-VolumetricFog1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Post-processingColorCurves1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Post-processingColorCurves1.png deleted file mode 100644 index 5460948016f..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Post-processingColorCurves1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Post-processingLiftGammaGain1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Post-processingLiftGammaGain1.png deleted file mode 100644 index e75ffcd1d9f..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/Post-processingLiftGammaGain1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RayTracingGettingStarted1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RayTracingGettingStarted1.png deleted file mode 100644 index 1a78b8a8d84..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RayTracingGettingStarted1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RaytracingQualityNode.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RaytracingQualityNode.png deleted file mode 100644 index 7e23fc5f6f4..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RaytracingQualityNode.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizard1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizard1.png deleted file mode 100644 index d7a58b6e408..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizard1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardDXRTab.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardDXRTab.png deleted file mode 100644 index a1bd33739b5..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardDXRTab.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardHDRPTab.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardHDRPTab.png deleted file mode 100644 index 879ada6e923..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardHDRPTab.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardVRTab.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardVRTab.png deleted file mode 100644 index da7121a7eb3..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RenderPipelineWizardVRTab.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RendererAndMaterialPriority1.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RendererAndMaterialPriority1.png deleted file mode 100644 index d1c4cd4007a..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RendererAndMaterialPriority1.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RendererAndMaterialPriority5.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RendererAndMaterialPriority5.png deleted file mode 100644 index 07d2f1a2abd..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/RendererAndMaterialPriority5.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/SampleWaterVFX.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/SampleWaterVFX.png deleted file mode 100644 index 90c06d035f2..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/SampleWaterVFX.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ShaderGraphCanvasSettings.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ShaderGraphCanvasSettings.png deleted file mode 100644 index b17d51ab09b..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/ShaderGraphCanvasSettings.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/UpgradingToHDRP2.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/UpgradingToHDRP2.png deleted file mode 100644 index 77d676e640c..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/UpgradingToHDRP2.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/caustics-simulation-bands.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/caustics-simulation-bands.jpg new file mode 100644 index 00000000000..4bbfbf0ca6e Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/caustics-simulation-bands.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/caustics.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/caustics.jpg new file mode 100644 index 00000000000..f648c821896 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/caustics.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/custom-material-inspector-ui-blocks.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/custom-material-inspector-ui-blocks.png deleted file mode 100644 index 16426fc5258..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/custom-material-inspector-ui-blocks.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-in-the-wake-of-a-gameobject.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-in-the-wake-of-a-gameobject.jpg new file mode 100644 index 00000000000..dd71b811c70 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-in-the-wake-of-a-gameobject.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-on-the-crests-of-waves-amount-one.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-on-the-crests-of-waves-amount-one.jpg new file mode 100644 index 00000000000..d36dc530c99 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-on-the-crests-of-waves-amount-one.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-on-the-crests-of-waves-amount-zero.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-on-the-crests-of-waves-amount-zero.jpg new file mode 100644 index 00000000000..bcbae0bb9ae Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/foam-on-the-crests-of-waves-amount-zero.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/introduction-to-water-decals.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/introduction-to-water-decals.jpg new file mode 100644 index 00000000000..a8c4e40612f Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/introduction-to-water-decals.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/material-variants.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/material-variants.png deleted file mode 100644 index d8fa989700b..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/material-variants.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/more-deep-foam.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/more-deep-foam.jpg new file mode 100644 index 00000000000..c2298bf86d5 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/more-deep-foam.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/more-surface-foam.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/more-surface-foam.jpg new file mode 100644 index 00000000000..5eaf6cf6086 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/more-surface-foam.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/new-empty-water-decal.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/new-empty-water-decal.png new file mode 100644 index 00000000000..8f750abecac Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/new-empty-water-decal.png differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg new file mode 100644 index 00000000000..4c822c17376 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power-2.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.gif b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.gif deleted file mode 100644 index c0d2cd6ae73..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.gif and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg new file mode 100644 index 00000000000..cce0e7a0f47 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_diffuse_power.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_dual_lobe_labelled.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_dual_lobe_labelled.png deleted file mode 100644 index 7c76b79a6eb..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/profile_dual_lobe_labelled.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shader-variants.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shader-variants.png deleted file mode 100644 index d1179cfdec5..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shader-variants.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.gif b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.gif deleted file mode 100644 index da90ad78530..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.gif and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.mp4 b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.mp4 new file mode 100644 index 00000000000..c7fc8aa8af4 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/shared/lens-flare/screenspacelensflares-threshold.mp4 differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/trailing-foam.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/trailing-foam.jpg new file mode 100644 index 00000000000..035d564f753 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/trailing-foam.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-debug-watermask.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-debug-simulationmask.png similarity index 100% rename from Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-debug-watermask.png rename to Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-debug-simulationmask.png diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-deform-a-water-surface-x-axis.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-deform-a-water-surface-x-axis.jpg new file mode 100644 index 00000000000..455e6e9433e Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-deform-a-water-surface-x-axis.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-deform-a-water-surface-y-axis.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-deform-a-water-surface-y-axis.jpg new file mode 100644 index 00000000000..890ab1b9649 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-deform-a-water-surface-y-axis.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-buffer-underwater.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-buffer-underwater.png deleted file mode 100644 index dda08ff01b5..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-buffer-underwater.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-island-scene.jpg b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-island-scene.jpg new file mode 100644 index 00000000000..bdecc26eeda Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-sample-island-scene.jpg differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-surface-3d-deformation.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-surface-3d-deformation.png new file mode 100644 index 00000000000..404f4da01e9 Binary files /dev/null and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/water-surface-3d-deformation.png differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-deformer.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-deformer.png index 7b3a640fb94..ae9a1c85d24 100644 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-deformer.png and b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-deformer.png differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-simulation-foam.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-simulation-foam.png deleted file mode 100644 index c0d263a386e..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-simulation-foam.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellandripples.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellandripples.png deleted file mode 100644 index 3299c9738ba..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellandripples.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellonly.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellonly.png deleted file mode 100644 index 0bcbe921771..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframe-swellonly.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframeripplesonly.png b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframeripplesonly.png deleted file mode 100644 index fd2c79ab831..00000000000 Binary files a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Images/watersystem-wireframeripplesonly.png and /dev/null differ diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/LUT-Authoring-Photoshop.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/LUT-Authoring-Photoshop.md index e4150c5cf68..557f2772c50 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/LUT-Authoring-Photoshop.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/LUT-Authoring-Photoshop.md @@ -19,7 +19,7 @@ Export the current [Camera](hdrp-camera-component-reference.md)'s view to a log- 2. Select **Edit** > **Rendering** > **Render Selected HDRP Camera to Log EXR** **(**or press **Ctrl+Shift+Alt+E)**. 3. Save the EXR file. -![](Images/LUTAuthoringPhototshop1.png) +![Camera view before applying LUT effect.](Images/LUTAuthoringPhototshop1.png) After you export the EXR file, transform the data from the format that Unity uses (Alexa LogC El.1000) to Linear RGB space, so that external software can use it. To do this, HDRP provides a set of ready-to-use transform LUTs. To get them: @@ -32,7 +32,7 @@ After you export the EXR file, transform the data from the format that Unity use Import the EXR file into Photoshop. Because it's a raw log-encoded file, it appears washed-out. -![](Images/LUTAuthoringPhototshop2.png) +![EXR file imported in Photoshop.](Images/LUTAuthoringPhototshop2.png) Add a non-destructive **Color Lookup** adjustment layer to your image (menu: **Layer** > **New Adjustment Layer** > **Color Lookup…**). Then, in the new layer's **Properties**: @@ -40,13 +40,13 @@ Add a non-destructive **Color Lookup** adjustment layer to your image (menu: **L - Set **Table Order** to **BGR**. - In the **3DLUT File** drop-down, select **Load 3D LUT…** and select the Unity Log To Linear file to transform the LUT to a usable color space. This is in your Unity Project folder at Assets/HDRP Sample Content/Post-processing/Cube LUTs/. -![](Images/LUTAuthoringPhototshop3.png) +![Example image with the LUT file from Unity applied to it.](Images/LUTAuthoringPhototshop3.png) ## Step 4: Apply color grading You can now start grading your image. Make sure you only do global color operations through the use of non-destructive adjustment layers. LUTs can't store local operators or any filters that affect neighboring pixels (such as blur), so these create visual artifacts. Place all the adjustment layers on top of the **Color Lookup** layer, unless you intend to grade directly on the Log input. -![](Images/LUTAuthoringPhototshop4.png) +![Example image with color grading applied in Photoshop.](Images/LUTAuthoringPhototshop4.png) ## Step 5: Export your work as a CUBE file @@ -66,6 +66,6 @@ Unity automatically interprets the CUBE file as a usable Texture3D Asset. You ca 4. Assign your CUBE Texture to the **Lookup Texture** property. 5. Change the **Contribution** to set how much the **Lookup Texture** contributes to the Scene. -![](Images/LUTAuthoringPhototshop5.png) +![Unity scene with the Tonemapping effect that uses a lookup texture created in Photoshop.](Images/LUTAuthoringPhototshop5.png) You can continue to color grade in Photoshop and override the previously saved CUBE file. Unity automatically updates the grading in the Scene with your changes. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/LUT-Authoring-Resolve.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/LUT-Authoring-Resolve.md index c8615a98eec..e7c80724617 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/LUT-Authoring-Resolve.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/LUT-Authoring-Resolve.md @@ -19,7 +19,7 @@ Export the current [Camera](hdrp-camera-component-reference.md)'s view to a log- 2. Select **Edit** > **Rendering** > **Render Selected HDRP Camera to Log EXR** **(**or press **Ctrl+Shift+Alt+E)**. 3. Save the EXR file. -![](Images/LUTAuthoringResolve1.png) +![Camera view before applying LUT effect.](Images/LUTAuthoringResolve1.png) After you export the EXR file, transform the data from the format that Unity uses (Alexa LogC El.1000) to Linear RGB space, so that external software can use it. To do this, HDRP provides a set of ready-to-use transform LUTs. To get them: @@ -47,13 +47,13 @@ Now import the EXR into Resolve and apply the **Unity Log To Linear r1** LUT to 2. In the context menu, select **3D Lut**. 3. Select the **Unity Log To Linear r1** LUT. -![](Images/LUTAuthoringResolve2.png) +![Color settings in the DaVinci Resolve editor.](Images/LUTAuthoringResolve2.png) ## Step 4: Apply color grading You can now start grading your image. Make sure you only do global color operations because LUTs can't store local operators or any filters that affect neighboring pixels (such as blur or sharpen). -![](Images/LUTAuthoringResolve3.png) +![Fame in the video editor with LUT color grading.](Images/LUTAuthoringResolve3.png) ## Step 5: Export your work as a CUBE file @@ -73,6 +73,6 @@ Unity automatically interprets the CUBE file as a usable Texture3D Asset. You ca 4. Assign your CUBE Texture to the **Lookup Texture** property. 5. Change the **Contribution** to set how much the **Lookup Texture** contributes to the Scene. -![](Images/LUTAuthoringResolve4.png) +![Using the CUBE file as a color lookup texture in Unity.](Images/LUTAuthoringResolve4.png) You can continue to color grade in Resolve and override the previously saved CUBE file. Unity automatically updates the grading in the Scene with your changes. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Light-Component.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Light-Component.md index 6ed657b6865..aaa53ef5b24 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Light-Component.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Light-Component.md @@ -39,8 +39,6 @@ To make a Light work with the **Animation window**, when you click on the **Add -| **- Flare Tint** | Controls the tint of the flare of the celestial body. | -| **- Flare Multiplier** | Multiplier applied on the flare intensity. | HDRP allows you to use a RenderTexture as a light cookie. However, for the sake of performance, if you make any changes to the RenderTexture, HDRP doesn't automatically update the cookie atlas. To notify the system that the RenderTexture content has changed and so make the system upload the change to the cookie atlas, call `IncrementUpdateCount()` on the RenderTexture. If you don't do this, the system doesn't update the cookie. ## Preset diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-GI.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-GI.md index dcfbedd1298..1a07e544424 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-GI.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-GI.md @@ -6,7 +6,7 @@ HDRP implements [ray-traced global illumination](Ray-Traced-Global-Illumination. SSGI and RTGI replace all [lightmap](https://docs.unity3d.com/Manual/Lightmapping.html) and [Light Probe](https://docs.unity3d.com/Manual/LightProbes.html) data. If you enable this override on a Volume that affects the Camera, Light Probes and the ambient probe stop contributing to lighting for GameObjects. -![](Images/HDRPFeatures-SSGI.png) +![A sample scene rendered with SSGI.](Images/HDRPFeatures-SSGI.png) ## Enable Screen Space Global Illumination [!include[](Snippets/Volume-Override-Enable-Override.md)] diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-Reflection.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-Reflection.md index 9095d477047..22fd761d550 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-Reflection.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Screen-Space-Reflection.md @@ -44,7 +44,8 @@ In the following example image, the car GameObject is in the center of the Camer This example image uses **Speed From Reflected Surface** to accumulate the samples from the car and partially accumulate the samples from the sky. This makes the car and its reflection appear green, and the surface that reflects the sky appear orange. -![](Images/ScreenSpaceReflectionPBR_SpeedRejectionSmooth.gif) +![Example: This image uses the **Speed From Reflected Surface** property to accumulate the samples from the car and partially accumulate the samples from the sky. This makes the car and its reflection appear green, and the surface that reflects the sky appear orange.](Images/ScreenSpaceReflectionPBR_SpeedRejectionSmooth.gif) + ## Limitations ### Screen-space reflection @@ -53,7 +54,7 @@ To calculate SSR, HDRP reads a color buffer with a blurred mipmap generated duri The color buffer only includes transparent GameObjects that use the **BeforeRefraction** [Rendering Pass](Surface-Type.md). However, HDRP incorrectly reflects a transparent GameObject using the depth of the surface behind it, even if you enable **Depth Write** in the GameObject's Material properties. This is because HDRP calculates SSR before it adds the depth of transparent GameObjects to the depth buffer. -![](Images/SSRTransparents.png) +![Example: How opaque, refraction-based transparent, and default transparent materials interact with the depth buffer, affecting their visibility in screen space reflections in a 3D rendering environment.](Images/SSRTransparents.png) If a transparent material has **Receive SSR Transparent** enabled, HDRP always uses the **Approximation** algorithm to calculate SSR, even you select **PBR Accumulation**. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Visual-Environment.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Visual-Environment.md index 21c36ef1f83..3dc7ef855b9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Visual-Environment.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Override-Visual-Environment.md @@ -17,8 +17,6 @@ You can use the **Visual Environment** override to control the sky and fog for t ## Properties -![](Images/Override-VisualEnvironment1.png) - [!include[](snippets/Volume-Override-Enable-Properties.md)] ### Sky @@ -56,4 +54,3 @@ After you have set your **Sky Type**, if you want to override the default settin On the [Gradient Sky](Override-Gradient-Sky.md) override itself, you can enable the checkboxes next to each property to override the property with your own values. For example, enable the checkbox next to the **Middle** property and use the color picker to change the color to pink. -![](Images/Override-VisualEnvironment2.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Physical-Light-Units.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Physical-Light-Units.md index 4bfc60aabac..da0841a351d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Physical-Light-Units.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Physical-Light-Units.md @@ -88,4 +88,4 @@ For more examples of indoor light levels see Archtoolbox’s web page on [Recomm The following cheat sheet contains the color temperature values and light intensities of common real-world [Light](Light-Component.md) sources. It also contains [Exposure](Override-Exposure.md) values for different illumination scenarios. -![](Images/LightCheatSheet.png) +![Unity Lighting & Exposure Cheat Sheet. A visual guide showing typical lighting values across color temperature, directional light intensities, local light intensities, and exposure value. Color temperature (Kelvin): Ranges from 1,900 K (candle) to 15,000 K (blue sky), with intermediate examples like incandescent (3,000 K), fluorescent (4,000 K), sunlight at noon (5,500 K), cloudy (6,500 K), and shade (8,000 K). Directional light intensities (Lux): Ranges from 0.001 lx (dark night) to 130,000 lx (sun with PBS sky), with intermediate examples for moonlight (0.5 lx), low sun (5,000 lx), cloudy (20,000 lx), and noon sun (100,000 lx). Local light intensities (Lumen): From 12 lm (candlelight) to 10,000 lm (exterior light), with examples like decorative lights (300 lm) and interior lights (1,000 lm). Exposure value (EV): From -2 EV (moonless) to 14 EV (sunlit), with stages like moonlit (1 EV), interior (4 EV), low sun (7 EV), and cloudy (10 EV).](Images/LightCheatSheet.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Planar-Reflection-Probe.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Planar-Reflection-Probe.md index d5b8fef13c8..f53a0367676 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Planar-Reflection-Probe.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Planar-Reflection-Probe.md @@ -80,12 +80,12 @@ You can use Scene view gizmos to visually customize specific properties. | **Gizmo** | **Property** | **Description** | | ------------------------------------- | ------------------------------------- | ------------------------------------------------------------ | -| ![](Images/ReflectionProbeGizmo1.png) | **Influence Volume boundary** | Provides Scene view handles that allow you to move the boundaries of the [Influence Volume](#InfluenceVolume), which defines the area this Reflection Probe affects reflective Materials. Edits the **Box Size** or **Radius** value, depending on the **Shape** you select. | -| ![](Images/ReflectionProbeGizmo2.png) | **Blend Distance boundary** | Provides Scene view handles that allows you to alter the inward distance from the **Box Size** or **Radius** at which this Planar Reflection Probe blends with other Reflection Probes. For the **Box** shape, when **Per Axis Control** is enabled, there is a separate handle for each size of the box. | -| ![](Images/ReflectionProbeGizmo3.png) | **Blend Normal Distance boundary** | Provides Scene view handles that allow you to resize the boundary where pixels with a normal pointing away from the **Capture Position** don’t receive any influence from this Probe. | -| ![](Images/ReflectionProbeGizmo4.png) | **Mirror Position** | Changes the behavior of the Move Tool so that it alters the **Mirror** **Position** property, rather than the **Position** of the **Transform**. | -| ![](Images/ReflectionProbeGizmo5.png) | **Mirror Rotation** | Changes the behavior of the Rotate Tool so that it alters the **Mirror Rotation** property, rather than the **Rotation** of the **Transform**. | -| ![](Images/ReflectionProbeGizmo6.png) | **Chrome Gizmo**. | Displays a chrome quad to preview the probe's texture in the scene. | +| ![Influence Volume boundary gizmo](Images/ReflectionProbeGizmo1.png) | **Influence Volume boundary** | Provides Scene view handles that allow you to move the boundaries of the [Influence Volume](#InfluenceVolume), which defines the area this Reflection Probe affects reflective Materials. Edits the **Box Size** or **Radius** value, depending on the **Shape** you select. | +| ![Blend Distance boundary gizmo](Images/ReflectionProbeGizmo2.png) | **Blend Distance boundary** | Provides Scene view handles that allows you to alter the inward distance from the **Box Size** or **Radius** at which this Planar Reflection Probe blends with other Reflection Probes. For the **Box** shape, when **Per Axis Control** is enabled, there is a separate handle for each size of the box. | +| ![Blend Normal Distance boundary gizmo](Images/ReflectionProbeGizmo3.png) | **Blend Normal Distance boundary** | Provides Scene view handles that allow you to resize the boundary where pixels with a normal pointing away from the **Capture Position** don’t receive any influence from this Probe. | +| ![Mirror Position gizmo](Images/ReflectionProbeGizmo4.png) | **Mirror Position** | Changes the behavior of the Move Tool so that it alters the **Mirror** **Position** property, rather than the **Position** of the **Transform**. | +| ![Mirror Rotation gizmo](Images/ReflectionProbeGizmo5.png) | **Mirror Rotation** | Changes the behavior of the Rotate Tool so that it alters the **Mirror Rotation** property, rather than the **Rotation** of the **Transform**. | +| ![Chrome gizmo](Images/ReflectionProbeGizmo6.png) | **Chrome Gizmo**. | Displays a chrome quad to preview the probe's texture in the scene. | ## Best practices diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Channel-Mixer.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Channel-Mixer.md index e7f7f38eef9..c624ab64caf 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Channel-Mixer.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Channel-Mixer.md @@ -13,7 +13,7 @@ The Channel Mixer effect modifies the influence of each input color channel on t ## Properties -![](Images/Post-processingChannelMixer1.png) +The Channel Mixer component has the following properties. ### Output channels diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Color-Curves.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Color-Curves.md index c61bee9ba84..519186e8e13 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Color-Curves.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Color-Curves.md @@ -13,8 +13,6 @@ Grading curves are an advanced way to adjust specific ranges in hue, saturation, ## Properties -![](Images/Post-processingColorCurves1.png) - | **Curve** | **Description** | | -------------- | ------------------------------------------------------------ | | **Master** | This curve affects the luminance across the whole image. The x-axis of the graph represents input luminance and the y-axis represents output luminance. You can use this to further adjust the appearance of basic attributes such as contrast and brightness across all color channels at the same time. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Lens-Distortion.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Lens-Distortion.md index d6f20c488bb..b9775b7c866 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Lens-Distortion.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Lens-Distortion.md @@ -13,8 +13,6 @@ The **Lens Distortion** effect distorts the final rendered picture to simulate t ## Properties -![](Images/Post-processingLensDistortion1.png) - | **Property** | **Description** | | ---------------- | ------------------------------------------------------------ | | **Intensity** | Use the slider to set the overall strength of the distortion effect. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Lift-Gamma-Gain.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Lift-Gamma-Gain.md index b955b368bd9..cc903028e4d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Lift-Gamma-Gain.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Lift-Gamma-Gain.md @@ -13,8 +13,6 @@ This effect allows you to perform three-way color grading. The **Lift Gamma Gain ## Properties -![](Images/Post-processingLiftGammaGain1.png) - | **Property** | **Description** | | ------------ | ------------------------------------------------------------ | | **Lift** | Use this to control the dark tones. This has a more exaggerated effect on shadows.
• Use the trackball to select which color HDRP should shift the hue of the dark tones to.
•Use the slider to offset the color lightness of the trackball color. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Motion-Blur.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Motion-Blur.md index 104e421c2ed..c26f1e37976 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Motion-Blur.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Motion-Blur.md @@ -21,58 +21,58 @@ Motion Blur includes [advanced properties](https://docs.unity3d.com/Packages/com Property - + Sub-property Description Intensity - + N/A Set the strength of the Motion Blur effect. This scales the magnitude of the velocities present in the velocity buffer. Set this value to 0 to disable Motion Blur. Quality - + N/A Specifies the quality level to use for this effect. Each quality level applies different preset values. Unity also stops you from editing the properties that the preset overrides. If you want to set your own values for every property, select Custom. Sample Count - + N/A Set the maximum number of sample points HDRP uses to compute the Motion Blur effect. Higher values increase the quality and produce a smoother blur. Higher values also increase the resource intensity of the effect. Maximum Velocity - + N/A Use the slider to set the maximum velocity, in pixels, that HDRP allows for all sources of motion blur except Camera rotation. This clamps any value above this threshold to the threshold value. Higher values result in a more intense blur, and an increase in resource intensity. Minimum Velocity - + N/A Use the slider to set the minimum velocity, in pixels, that triggers motion blur. Higher values mean that HDRP doesn't calculate Motion Blur for slow-moving GameObjects. This decreases the resource intensity. Camera Motion Blur - + N/A Indicates whether camera movement contributes to motion blur. Disable this property to stop camera movement from contributing to motion blur. Camera Clamp Mode - + N/A Specifies the method HDRP uses to clamp the motion vectors that derive from camera movement/rotation. Note that although this specifically clamps the motion vectors that come from the camera, this may change motion vector velocities relative to the camera too. For example, a GameObject that has the camera as a parent (and so moves and rotates with the camera) might not have a zero motion vector when the camera moves. The options are:

• None: The motion vector component derived from the Camera isn't treated differently.
•Rotation: The motion vector component derived from the Camera rotation is clamped separately.
•Translation: The motion vector component derived from the Camera translation is clamped separately.
•Separate Translation And Rotation: The motion vector components derived from the Camera rotation and translation are clamped separately with separate clamp options.
•Full Camera Motion Vector: The full motion vector component derived from the Camera full movement (rotation and translation) is clamped separate from the Object motion, but with a single threshold. - + N/A Rotation Clamp Use the slider to set the maximum velocity that HDRP allows Camera rotation to contribute to the velocities of GameObjects. This value is expressed in terms of screen fraction. Higher values result in Camera rotation giving wider blurs.
This property is only relevant if you set Camera Clamp Mode to Rotation or Separate Translation And Rotation. - + N/A Translation Clamp Use the slider to set the maximum velocity that HDRP allows Camera translation to contribute to the velocities of GameObjects. This value is expressed in terms of screen fraction. Higher values result in Camera rotation giving wider blurs.
This property is only relevant if you set Camera Clamp Mode to Translation or Separate Translation And Rotation. - + N/A Motion Vector Clamp Use the slider to set the maximum velocity that HDRP allows Camera transform changes to contribute to the velocities of GameObjects. This value is expressed in terms of screen fraction. Higher values result in Camera rotation giving wider blurs.
This property is only relevant if you set Camera Clamp Mode to Full Camera Motion Vector. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Tonemapping.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Tonemapping.md index ae993f53aca..aa740b15553 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Tonemapping.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Post-Processing-Tonemapping.md @@ -15,7 +15,7 @@ To use Tonemapping, refer to [High Dynamic Range (HDR) and tonemapping](HDR-Outp ## Properties -![](Images/Post-processingTonemapping1.png) +![The tonemapping component properties.](Images/Post-processingTonemapping1.png) | **Property** | **Description** | | --------------------- | ------------------------------------------------------------ | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Ambient-Occlusion.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Ambient-Occlusion.md index 527cdf92abd..26229ec3049 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Ambient-Occlusion.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Ambient-Occlusion.md @@ -2,11 +2,11 @@ Ray-Traced Ambient Occlusion is a ray tracing feature in the High Definition Render Pipeline (HDRP). It is an alternative to HDRP's s [screen space ambient occlusion](Override-Ambient-Occlusion.md), with a more accurate ray-traced solution that can use off-screen data. -![](Images/RayTracedAmbientOcclusion1.png) +![An example of a screen space ambient occlusion texture.](Images/RayTracedAmbientOcclusion1.png) **Screen space ambient occlusion** -![](Images/RayTracedAmbientOcclusion2.png) +![An example of a ray-traced ambient occlusion texture.](Images/RayTracedAmbientOcclusion2.png) **Ray-traced ambient occlusion** diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Global-Illumination.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Global-Illumination.md index a245b1cfe3a..32e00661871 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Global-Illumination.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Global-Illumination.md @@ -2,11 +2,11 @@ Ray-Traced Global Illumination is a ray tracing feature in the High Definition Render Pipeline (HDRP). It's a more accurate alternative to [Screen Space Global Illumination](Override-Screen-Space-GI.md), Light Probes and lightmaps. -![](Images/RayTracedGlobalIllumination1.png) +![Ray-Traced Global Illumination off](Images/RayTracedGlobalIllumination1.png) **Ray-Traced Global Illumination off** -![](Images/RayTracedGlobalIllumination2.png) +![Ray-Traced Global Illumination on](Images/RayTracedGlobalIllumination2.png) **Ray-Traced Global Illumination on** diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Reflections.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Reflections.md index 22a69bb3d5a..64ec340cf6b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Reflections.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Traced-Reflections.md @@ -2,11 +2,11 @@ Ray-Traced Reflections is a ray tracing feature in the High Definition Render Pipeline (HDRP). It's an alternative, more accurate, ray-traced solution to [Screen Space Reflection](Override-Screen-Space-Reflection.md) that can make use of off screen data. -![](Images/RayTracedReflections1.png) +![Screen-space reflections.](Images/RayTracedReflections1.png) Screen-space reflections -![](Images/RayTracedReflections2.png) +![Ray-traced reflections.](Images/RayTracedReflections2.png) Ray-traced reflections @@ -34,13 +34,16 @@ The same principle applies to the [StackLit Shader Graph](stacklit-master-stack- For an example of a 75% smooth Lit material with different **Coat Mask** values, see the following images: -![](Images/ray-traced-reflection-clear-coat-1.png) +![A Lit material with a Coat Mask value of 0.](Images/ray-traced-reflection-clear-coat-1.png) + A Lit material with a Coat Mask value of 0. -![](Images/ray-traced-reflection-clear-coat-2.png) +![A Lit material with a Coat Mask value of 0.1.](Images/ray-traced-reflection-clear-coat-2.png) + A Lit material with a Coat Mask value of 0.1. -![](Images/ray-traced-reflection-clear-coat-3.png) +![A Lit material with a Coat Mask value of 1.0.](Images/ray-traced-reflection-clear-coat-3.png) + A Lit material with a Coat Mask value of 1.0. ## Properties diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Debug.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Debug.md index d737beb33ba..19905b29040 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Debug.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Debug.md @@ -6,67 +6,25 @@ The High Definition Render Pipeline (HDRP) includes the [Rendering Debugger wind 2. Select the **Lighting** panel. 3. Use the **Fullscreen Debug Mode** drop-down menu to select which ray tracing effect to debug. -![](Images/RayTracingLightCluster1.png) +![Light Cluster Debug Mode: The color shows the number of lights in each cell of the cluster.](Images/RayTracingLightCluster1.png) -**Light Cluster [Debug Mode](Ray-Tracing-Debug.md#debug-modes)**: The color shows the number of lights in each cell of the cluster. +**Light Cluster Debug Mode**: The color shows the number of lights in each cell of the cluster. -![](Images/RayTracingDebugRTAS.png) +![Ray Tracing Acceleration Structure Debug Mode: This debug mode displays the GameObjects HDRP uses to compute specific ray traced effects.](Images/RayTracingDebugRTAS.png) -**Ray Tracing Acceleration Structure [Debug Mode](Ray-Tracing-Debug.md#debug-modes)**: This debug mode displays the GameObjects HDRP uses to compute specific ray traced effects. +**Ray Tracing Acceleration Structure Debug Mode**: This debug mode displays the GameObjects HDRP uses to compute specific ray traced effects. ## Debug modes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Fullscreen Debug ModeDescription
Screen Space Ambient OcclusionWhen Ray-Traced Ambient Occlusion is active, this displays the screen space buffer that holds the ambient occlusion.
Screen Space ReflectionWhen Ray-Traced Reflections are active, this displays the ray-traced reflections.
Transparent Screen Space ReflectionWhen Ray-Traced Reflections are active, this displays the ray-traced reflections on transparent objects.
Contact ShadowsWhen Ray-Traced Contact Shadows are active, this displays the ray-traced contact shadows.
Screen Space ShadowsWhen screen space shadows are active, this displays the set of screen space shadows. If you select this option, Unity exposes the Screen Space Shadow Index slider that allows you to change the currently active shadows. Area lights shadows take two channels.
Screen Space Global IlluminationWhen Ray-Traced Global Illumination is active, this displays a screen space buffer that holds the indirect diffuse lighting.
Recursive Ray-TracingWhen Recursive Ray Tracing is active, this displays the pixels that have been evaluated using the effect.
Ray-Traced Subsurface ScatteringWhen Ray-Traced Subsurface Scattering is active, this displays the subsurface lighting value for the pixels that have been evaluated using the technique.
Light ClusterThis displays the light cluster with the color that varies by the number of the lights in each cell. The red color indicates that the number of lights is over 12 or equal to the maximum number of lights per cell.
Light CategoryUse the drop-down to visualize the number of the lights in the selected light catetgory.
Ray Tracing Acceleration StructureThis mode displays the GameObjects included in the ray tracing acceleration structure for the following effects:
  • Shadows
  • Ambient Occlusion
  • Global Illumination
  • Reflections
  • Recursive Rendering
  • Path Tracer
HDRP only builds the acceleration structure when you activate the effect you select in this mode, otherwise the debug view is black.
This mode has the following visualization options:
  • InstanceID: Assigns a color randomly based on the GameObject's InstanceID.
  • PrimitiveID: Assigns a color randomly based on the GameObject's PrimitiveID.
+| **Fullscreen Debug Mode** | **Description** | +|---|---| +| **Screen Space Ambient Occlusion** | When Ray-Traced Ambient Occlusion is active, this displays the screen space buffer that holds the ambient occlusion. | +| **Screen Space Reflection** | When Ray-Traced Reflections are active, this displays the ray-traced reflections. | +| **Transparent Screen Space Reflection** | When Ray-Traced Reflections are active, this displays the ray-traced reflections on transparent objects. | +| **Contact Shadows** | When Ray-Traced Contact Shadows are active, this displays the ray-traced contact shadows. | +| **Screen Space Shadows** | When screen space shadows are active, this displays the set of screen space shadows. If you select this option, Unity exposes the Screen Space Shadow Index slider that allows you to change the currently active shadows. Area lights shadows take two channels. | +| **Screen Space Global Illumination** | When Ray-Traced Global Illumination is active, this displays a screen space buffer that holds the indirect diffuse lighting. | +| **Recursive Ray-Tracing** | When Recursive Ray Tracing is active, this displays the pixels that have been evaluated using the effect. | +| **Ray-Traced Subsurface Scattering** | When Ray-Traced Subsurface Scattering is active, this displays the subsurface lighting value for the pixels that have been evaluated using the technique. | +| **Light Cluster** | This displays the light cluster with the color that varies by the number of the lights in each cell. The red color indicates that the number of lights is over 12 or equal to the maximum number of lights per cell.
  • **Light Category**: Use the drop-down to visualize the number of the lights in the selected light category.
| +| **Ray Tracing Acceleration Structure** | This mode displays the GameObjects included in the ray tracing acceleration structure for the following effects:
  • Shadows
  • Ambient Occlusion
  • Global Illumination
  • Reflections
  • Recursive Rendering
  • Path Tracer
HDRP only builds the acceleration structure when you activate the effect you select in this mode, otherwise the debug view is black. This mode has the following visualization options:
  • InstanceID: Assigns a color randomly based on the GameObject's InstanceID.
  • PrimitiveID: Assigns a color randomly based on the GameObject's PrimitiveID.
| diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md index 95df44b565b..ebfbcdf0781 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Getting-Started.md @@ -56,9 +56,7 @@ HDRP enables DirextX12 by default. To enable DirectX 12 manually: 4. Unity uses Direct3d11 by default. To make Unity use Direct3d12, move **Direct3d12 (Experimental)** to the top of the list. 5. To apply the changes, you may need to restart the Unity Editor. If a window prompt appears telling you to restart the Editor, click **Restart Editor** in the window. -The Unity Editor window should now include the <DX12> tag in the title bar: - -![](Images/RayTracingGettingStarted1.png) +The Unity Editor window should now include the <DX12> tag in the title bar. @@ -198,7 +196,7 @@ HDRP supports ray tracing for DirectX 12 and specific console platforms. Consult HDRP ray tracing in Unity isn't compatible with the following features: - Vertex animation, for example wind deformation of vegetation. -- [Decals](decals.md). +- Emissive [Decals](decals.md). To disable emission, go to the [Decal Material Inspector window](decal-material-inspector-reference.md) and disable **Affect Emissive**. - Ray tracing is not compatible with the detail meshes and trees in the [Terrain system](https://docs.unity3d.com/Manual/script-Terrain.html). It is compatible with terrain geometry. To include detailed meshes and trees in ray traced reflections, use [mixed tracing](Override-Screen-Space-Reflection.md#mixed-tracing). - Volumetric [fog](create-a-local-fog-effect.md). - [Tessellation](Tessellation.md). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Light-Cluster.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Light-Cluster.md index 7930ed2241f..8cb9d9685a5 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Light-Cluster.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Light-Cluster.md @@ -6,7 +6,7 @@ To create a light cluster HDRP builds an axis-aligned grid which, in each cell, In the rasterization rendering step, HDRP uses the tile structure for opaque objects and the cluster structure for transparent objects. The main difference between these two structures and this one used for ray tracing is that the light cluster structure is not based on the Camera frustum. -![](Images/RayTracingLightCluster1.png) +![Light Cluster Debug Mode](Images/RayTracingLightCluster1.png) **Light Cluster [Debug Mode](Ray-Tracing-Debug.md#debug-modes)** diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Recursive-Rendering.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Recursive-Rendering.md index c840766eebf..83f32b878a3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Recursive-Rendering.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Recursive-Rendering.md @@ -6,7 +6,7 @@ Rays ignore the smoothness of a Material when being reflected or refracted, whic HDRP might display the sky color instead of a GameObject that has ray tracing applied. This happens when the GameObject is further away from the Camera than the Max Ray Length value set in the volume component. To make the GameObject appear correctly, increase the value of the Max Ray Length property. -![](Images/RayTracingRecursiveRendering1.png) +![Car gear shift rendered with recursive ray tracing.](Images/RayTracingRecursiveRendering1.png) **Car gear shift rendered with recursive ray tracing** diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Probe-Usage.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Probe-Usage.md index 9dc6f89d0da..e8e74fd8c2f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Probe-Usage.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Probe-Usage.md @@ -30,15 +30,15 @@ Use this volume to include or exclude pixels from the probe's influence. **Note**: When a pixel is inside an influence volume, the probe still processes it even if the specular value the probe provides isn't significant. This is important to handle the performance of probes. -![](Images/ReflectionProbe_Influence.svg) +![A Venn diagram. A gray circle representing the reflection probe sits at the center of a yellow square symbolizing its influence volume. A mesh object is depicted as a gray rectangle that partially overlaps with the square. Pixels affected by the reflection probe are those located within the intersection of the square and rectangle.](Images/ReflectionProbe_Influence.svg) ### Blend influence Unity linearly weights the specular lighting value the probe provides between the influence volume and the blend volume. Use blending to create smooth transitions at the border of the probe's influence, or when probes overlap. -![](Images/ReflectionProbe_InfluenceBlend.svg) -![](Images/ReflectionProbe_InfluenceBlendOverlap.svg) +![A Venn diagram. A reflection probe, shown as a gray circle, sits at the center of a green square representing the blend volume. The blend influence decreases from 1 at the outer border of the green square to zero at the outer border of a surrounding yellow square, with the space between the two borders defining the blend distance. A gray rectangle, symbolizing the mesh object, partially overlaps both the green and yellow squares.](Images/ReflectionProbe_InfluenceBlend.svg) +![Two light probes, A and B, from left to right, are represented by two gray circles. Each sits at the center of a green square which represents their respective blend volumes. The right border of the left green square touches the left green rectangle of the right square. Each green square sits at the center of a larger yellow square, which represents the influence volumes of the light probes. They partially overlap horizontally. A mesh object is depicted as a gray rectangle that partially overlaps all squares. The intersection of the gray rectangle and the intersection of the two yellow circles, excluding the green rectangles, is the area of overlapping influence.](Images/ReflectionProbe_InfluenceBlendOverlap.svg) ### Blend normal influence @@ -48,4 +48,5 @@ For example, when a light ray can't reach a pixel due to occlusion, but the pixe You can set a blend normal distance similarly to a blend distance. The probe doesn't influence pixels that are inside the influence volume, but outside of the blend normal distance, if their normal points away from the probe. -![](Images/ReflectionProbe_InfluenceBlendNormal.svg) +![A Venn diagram. A gray circle representing the reflection probe sits at the center of a grey house shape. A yellow square representing the influence volume encloses the house shape. A blue square representing the blend normal volume is delineated by the two walls, and the roof and floor of the house shape, which are not visible. The space between the border of the blue square and the border of the enclosing yellow square defines the blend distance. Pixels on the inner side of the roof, whose normals point towards the probe, are influenced by the probe; pixels on the outer side of the roof, whose normals point away from the probe, are discarded. +](Images/ReflectionProbe_InfluenceBlendNormal.svg) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Proxy-Volume.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Proxy-Volume.md index 329adb65bf9..e71095e74ed 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Proxy-Volume.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Reflection-Proxy-Volume.md @@ -35,7 +35,7 @@ You can reuse the same Proxy Volume with other Reflection Probes, as long as the Use the Scene view Gizmo to visually modify the size of the **Box** and **Sphere** shapes. Click and drag the handles to move the boundaries of the Proxy Volume. -![](Images/ReflectionProxyVolume2-gizmo.png)
+![Scene view Gizmo](Images/ReflectionProxyVolume2-gizmo.png)
## Properties | **Property** | **Description**| @@ -45,4 +45,4 @@ Use the Scene view Gizmo to visually modify the size of the **Box** and **Sphere ## Additional resources - [Reflection in HDRP](Reflection-in-HDRP.md) -- [Use the appropriate Proxy Volume in refraction](create-a-refractive-material.md#use-proxy-volume). \ No newline at end of file +- [Use the appropriate Proxy Volume in refraction](create-a-refractive-material.md#use-proxy-volume). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Render-Pipeline-Wizard.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Render-Pipeline-Wizard.md index f39f5927414..1ac76e1b877 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Render-Pipeline-Wizard.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Render-Pipeline-Wizard.md @@ -4,8 +4,6 @@ The High Definition Render Pipeline (HDRP) includes the **HDRP Wizard** to help To open the **Render Pipeline Wizard**, go to **Window > Rendering** and select **HDRP Wizard**. -![](Images/RenderPipelineWizard1.png) - ## Packages At the top of the window, there is an information text that shows you the currently installed version of HDRP. The **Package Manager** button provides a shortcut to the HDRP package in the Package Manager window. @@ -36,8 +34,6 @@ Each configuration is separated into two scopes: This section provides you with configuration options to help you make your Unity Project use HDRP. -![](Images/RenderPipelineWizardHDRPTab.png) - #### Global | **Configuration Option** | **Description** | | -------------------------------- | ------------------------------------------------------------ | @@ -64,51 +60,18 @@ This section provides you with configuration options to help you make your Unity This section provides extra configuration options to help you set up your HDRP Project to support virtual reality. If you can't find an option in this section of the documentation, refer to the [HDRP section](#HDRPTab) options. This is only supported on Windows OS. You can adjust the extra configuration options in the **Global** scope. -![](Images/RenderPipelineWizardVRTab.png) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Configuration OptionDescription
Legacy VR SystemChecks that Virtual Reality Supported is disabled. This is the deprecated system.
Select the Fix button to disable Virtual Reality Supported.
XR Management PackageChecks that the XR Management Package is installed.
Select the Fix button to install it.
Oculus PluginThe wizard can't check this directly. This option gives information on the procedure to follow to check it.
To install the plugin manually, go to Edit > Project Settings > XR Plugin Manager
Single-Pass InstancingThe wizard can't check this directly. This option gives information on the procedure to follow to check it.
Go to Edit > Project Settings > XR Plugin Manager > Oculus and make sure Stereo Rendering Mode uses Single-Pass Instancing
XR Legacy Helpers PackageChecks that the XR Legacy Helpers Package is installed. It's required to handle inputs with the TrackedPoseDriver component.
Select the Fix button to install it.
+| **Configuration Option** | **Suboption** | **Description** | +|-------------------------------|----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Legacy VR System** | | Checks that Virtual Reality Supported is disabled. This is the deprecated system.
Select the Fix button to disable Virtual Reality Supported. | +| **XR Management Package** | | Checks that the XR Management Package is installed.
Select the Fix button to install it. | +| **XR Management Package** | **Oculus Plugin** | The wizard can't check this directly. This option gives information on the procedure to follow to check it.
To install the plugin manually, go to Edit > Project Settings > XR Plugin Manager | +| **XR Management Package** | **Single-Pass Instancing** | The wizard can't check this directly. This option gives information on the procedure to follow to check it.
Go to Edit > Project Settings > XR Plugin Manager > Oculus and make sure Stereo Rendering Mode uses Single-Pass Instancing | +| **XR Legacy Helpers Package** | | Checks that the XR Legacy Helpers Package is installed. It's required to handle inputs with the TrackedPoseDriver component.
Select the Fix button to install it. | ### HDRP + DXR This section provides extra configuration options to help you set up your HDRP Project to support ray tracing. If you can't find an option in this section of the documentation, refer to the [HDRP tab](#HDRPTab) options. This is only supported on Windows OS. -![](Images/RenderPipelineWizardDXRTab.png) - **Note**: Every **Fix** will be disabled if your hardware or OS doesn't support DXR. #### Global diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Renderer-And-Material-Priority.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Renderer-And-Material-Priority.md index 5dbbd6c45c6..459ec3c59fb 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Renderer-And-Material-Priority.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Renderer-And-Material-Priority.md @@ -18,24 +18,21 @@ The resulting queue is a list of GameObjects that are first sorted by their Mate Materials with a **Transparent Surface Type** have a **Sorting Priority** property that you can use to sort groups of Meshes that use different Materials. This property is an integer value clamped between -50 and 50. -![](Images/RendererAndMaterialPriority1.png) - HDRP supports negative values so that you can easily assign new Materials to the lowest priority. This is helpful if you want to assign a new Material to the lowest priority when the lowest priority is already being used for another Material. In this case, you can just assign the new Material’s priority to a negative value, instead of increasing every other Material’s sorting priority by one to accommodate the new Material. HDRP uses the **Sorting Priority** to sort GameObjects that use different Materials in your Scene. HDRP renders Materials with lower **Sorting Priority** values first. This means that Meshes using Materials with a higher **Sorting Priority** value appear in front of those using Materials with lower ones, even if Meshes using the first Material are further away from the Camera. -For example, the following Scene includes two spheres (**Sphere 1** and **Sphere 2**) that use two different Materials. As you can see, **Sphere 1** is closer to the **Camera** than **Sphere 2**. - +For example, the following Scene includes two spheres (**Sphere 1** and **Sphere 2**) that use two different Materials. **Sphere 1** is closer to the **Camera** than **Sphere 2**. -![](Images/RendererAndMaterialPriority2.png) +![Two spheres (Sphere 1 and Sphere 2) that use two different Materials. Sphere 1 is closer to the Camera than Sphere 2.](Images/RendererAndMaterialPriority2.png) When the **Sort Priority** of each Material is the same, HDRP treats them with equal importance, and bases the rendering order on the Material's distance from the Camera. In this example, the **Sort Priority** of both Materials is set to **0**, so HDRP renders them in the order defined by their distance from the Camera, which means **Sphere 1** appears in front of **Sphere 2**. -![](Images/RendererAndMaterialPriority3.png) +![Example: The Sort Priority of both Materials is set to 0, so HDRP renders them in the order defined by their distance from the Camera, which means Sphere 1 appears in front of Sphere 2.](Images/RendererAndMaterialPriority3.png) When the **Sort Priority** properties of different Materials aren't the same, HDRP displays Meshes using Materials with a higher priority in front of those using Materials with a lower priority. To achieve this, HDRP draws Meshes using lower priority Materials first and draws Meshes using the higher priority Materials later, on top of the Meshes it’s already drawn. In the example, setting the **Sort Priority** of **Sphere 2** to **1** means that HDRP renders **Sphere 1** first, then renders **Sphere 2** (drawing it over **Sphere 1**). This makes **Sphere 2** appear in front of **Sphere 1**, despite **Sphere 1** being closer to the **Camera**. -![](Images/RendererAndMaterialPriority4.png) +![Example: Setting the Sort Priority of Sphere 2 to 1 means that HDRP renders Sphere 1 first, then renders Sphere 2 (drawing it over Sphere 1). This makes Sphere 2 appear in front of Sphere 1, despite Sphere 1 being closer to the Camera.](Images/RendererAndMaterialPriority4.png) **Note**: When you enable **Depth Write** on the material, the **Sort Priority** is ignored. This is because the **Depth Test** performed in the Shader overwrites the **Sort Priority** of the material. @@ -45,8 +42,6 @@ When the **Sort Priority** properties of different Materials aren't the same, HD Mesh Renderers have a **Priority** property to sort Renderers using the same Material in your Scene. -![](Images/RendererAndMaterialPriority5.png) - To modify the render order for GameObjects using the same Material, use the **Priority** property in the Mesh Renderer’s Inspector. The **Priority** is a per-Renderer property that allows you to influence the rendering order for Renderers in your Scene. HDRP displays Renderers with higher **Priority** values in front of those with lower **Priority** values. @@ -55,15 +50,15 @@ You can also edit the Renderer **Priority** for Mesh Renderers in scripts by set ## Example usage -The following Scene includes two spheres (**Sphere 1** and **Sphere 2**) that use the same Material. As you can see, **Sphere 1** is closer to the **Camera** than **Sphere 2**. +The following Scene includes two spheres (**Sphere 1** and **Sphere 2**) that use the same Material. **Sphere 1** is closer to the **Camera** than **Sphere 2**. -![](Images/RendererAndMaterialPriority6.png) +![Two spheres (Sphere 1 and Sphere 2) that use the same Material. Sphere 1 is closer to the Camera than Sphere 2.](Images/RendererAndMaterialPriority6.png) When the Renderer **Priority** of each Mesh Renderer is the same, HDRP treats them with equal importance, and bases the rendering order on each Mesh Renderer’s distance from the Camera. In this example, the Renderer **Priority** of both Mesh Renderers is set to **0**, so HDRP renders them in the order defined by their distance from the Camera, which means **Sphere 1** appears in front of **Sphere 2**. -![](Images/RendererAndMaterialPriority7.png) +![Example: The Renderer Priority of both Mesh Renderers is set to 0, so HDRP renders them in the order defined by their distance from the Camera, which means Sphere 1 appears in front of Sphere 2.](Images/RendererAndMaterialPriority7.png) When the **Renderer Priority** properties of different Mesh Renderers aren't the same, HDRP displays Mesh Renderers with a higher priority in front of those with a lower priority. To achieve this, HDRP draws lower priority Meshes first and then draws higher priority Meshes on top of the Meshes it’s already drawn. In the example, setting the **Renderer Priority** of **Sphere 2** to **1** means that HDRP renders **Sphere 1** first, then renders **Sphere 2** (drawing it over **Sphere 1**). This makes **Sphere 2** appear in front of **Sphere 1** despite **Sphere 1** being closer to the **Camera**. -![](Images/RendererAndMaterialPriority8.png) +![Example: Setting the Renderer Priority of Sphere 2 to 1 means that HDRP renders Sphere 1 first, then renders Sphere 2 (drawing it over Sphere 1). This makes Sphere 2 appear in front of Sphere 1 despite Sphere 1 being closer to the Camera.](Images/RendererAndMaterialPriority8.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/SGNode-Raytracing-Quality.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/SGNode-Raytracing-Quality.md index d3124b3495f..7464c643089 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/SGNode-Raytracing-Quality.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/SGNode-Raytracing-Quality.md @@ -15,8 +15,6 @@ To add the Raytracing Quality Keyword node to the graph: To use this keyword in the graph, you need to create a [Keyword Node](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest/index.html?subfolder=/manual/Keyword-Node.html). To do this, drag the **Raytracing Quality** Keyword node from the Blackboard to the graph or open the Create Node Menu and search for **Raytracing Quality** . -![](Images/RaytracingQualityNode.png) - ### Available Ports | Name | Direction | Type | Description | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md index d6ddc9f63a7..61062fbc95e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/TableOfContents.md @@ -206,25 +206,29 @@ * [Quality and performance decisions](water-quality-and-performance-decisions.md) * [Water Override for Volumes](water-the-water-system-volume-override.md) * [Water surface fluctuations](water-decals-masking-landing.md) - * [Enable mask and water decals](enable-mask-and-water-decals.md) + * [Water decals](introduction-to-water-decals.md) + * [Enable mask and current water decals](enable-mask-and-current-water-decals.md) * [Configure swell, agitation, or ripples](add-swell-agitation-or-ripples.md) * [Simulating currents with water decals](simulating-currents-with-water-decals.md) - * [Simulating foam or ripples with masks](simulating-foam-or-ripples-with-masks.md) + * [Simulating ripples with masks](simulating-foam-or-ripples-with-masks.md) + * [Check waves and ripples](add-caustics-and-foam-and-check-waves-and-ripples.md) + * [Float objects on a water surface](float-objects-on-a-water-surface.md) + * [Align objects to the water surface using normals](align-objects-to-water-surface-using-normals.md) * [Decals and masking in the water system](water-decals-and-masking-in-the-water-system.md) * [Foam in the Water System](water-foam-in-the-water-system.md) - * [Caustics in the Water System](water-caustics-in-the-water-system.md) + * [Introduction to foam](introduction-to-foam.md) + * [Create wind-driven foam on the whole water surface](create-wind-driven-foam-on-the-whole-water-surface.md) + * [Create local foam in the wake of a GameObject](create-local-foam-in-the-wake-of-a-gameobject.md) + * [Add foam with a script](add-foam-with-script.md) + * [Customize caustics in the water system](water-caustics-in-the-water-system.md) * [Create a current in the Water System](water-create-a-current-in-the-water-system.md) * [Deform a water surface](water-deform-a-water-surface.md) * [Exclude part of a water surface](water-exclude-part-of-the-water-surface.md) * [Underwater view](water-underwater-view.md) * [Materials in the Water System](water-materials-in-the-water-system.md) - * [Scripting in the Water System](water-scripting-in-the-water-system.md) - * [Float objects on a water surface](float-objects-on-a-water-surface.md) - * [Align objects to the water surface using normals](align-objects-to-water-surface-using-normals.md) - * [Add caustics](add-caustics-and-foam-and-check-waves-and-ripples.md) - * [Synchronize water surfaces](synchronize-water-surfaces.md) + * [Synchronize multiple water surfaces](synchronize-water-surfaces.md) * [Debug in the Water System](water-debug-mode.md) - * [Environment limitations](Environment-Limitations.md) + * [Interaction between the water system and the VFX Graph](water-vfx-interaction.md) * [Camera and scene composition](camera-and-scene-composition.md) * [Graphics Compositor](graphics-compositor.md) * [Understand the Graphics Compositor](understand-the-graphics-compositor.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-caustics-and-foam-and-check-waves-and-ripples.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-caustics-and-foam-and-check-waves-and-ripples.md index d884b4a1a13..7e8e2fbc0ae 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-caustics-and-foam-and-check-waves-and-ripples.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-caustics-and-foam-and-check-waves-and-ripples.md @@ -1,89 +1,8 @@ -# Add caustics or foam and check waves and ripples +# Check waves and ripples -To add caustics or foam, or get information about water surface displacement due to waves and ripples, get buffers from the [`WaterSurface`](xref:UnityEngine.Rendering.HighDefinition.WaterSurface) class: +To get information about water surface displacement due to waves and ripples, use the [GetDeformationBuffer](../api/UnityEngine.Rendering.HighDefinition.WaterSurface.html#UnityEngine_Rendering_HighDefinition_WaterSurface_GetDeformationBuffer) API. -| Action | API | -|-----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Add caustics | [GetCausticsBuffer](../api/UnityEngine.Rendering.HighDefinition.WaterSurface.html#UnityEngine_Rendering_HighDefinition_WaterSurface_GetCausticsBuffer_System_Single__) | -| Add foam | [GetFoamBuffer](../api/UnityEngine.Rendering.HighDefinition.WaterSurface.html#UnityEngine_Rendering_HighDefinition_WaterSurface_GetFoamBuffer_UnityEngine_Vector2__) | -| Check waves and ripples | [GetDeformationBuffer](../api/UnityEngine.Rendering.HighDefinition.WaterSurface.html#UnityEngine_Rendering_HighDefinition_WaterSurface_GetDeformationBuffer) | - -## Example: Add caustics - -``` -using UnityEngine; -using UnityEngine.Rendering.HighDefinition; - -public class WaterCausticsExample : MonoBehaviour -{ - // Reference to the water surface component - public WaterSurface waterSurface; - - // Size of the region on the water surface from which the caustics effect is calculated - public float regionSize = 1.0f; - - // Material to apply the caustics effect - public Material waterMaterial; - - void Start() - { - // Get the caustics buffer for the specified region size on the water surface - Texture causticsBuffer = waterSurface.GetCausticsBuffer(out regionSize); - - if (causticsBuffer != null) - { - // Apply the caustics buffer as a texture to the water material - waterMaterial.SetTexture("_CausticsTex", causticsBuffer); - Debug.Log("Caustics buffer applied successfully."); - } - else - { - Debug.LogWarning("Caustics buffer could not be retrieved."); - } - } -} -``` - -## Example: Add foam - -``` -using UnityEngine; -using UnityEngine.Rendering.HighDefinition; - -public class WaterFoamExample : MonoBehaviour -{ - // Reference to the water surface component - public WaterSurface waterSurface; - - // The area of the water surface where the foam buffer should be queried - public Vector2 foamArea; - - // Material to apply the foam effect - public Material waterMaterial; - - // Shader property name for foam texture in the water material - private readonly string _foamTextureProperty = "_FoamTex"; - - void Start() - { - // Get the foam buffer for the specified 2D area on the water surface - Texture foamBuffer = waterSurface.GetFoamBuffer(out foamArea); - - if (foamBuffer != null) - { - // Apply the foam buffer as a texture to the water material - waterMaterial.SetTexture(_foamTextureProperty, foamBuffer); - Debug.Log("Foam buffer applied successfully."); - } - else - { - Debug.LogWarning("Foam buffer could not be retrieved."); - } - } -} -``` - -## Example: Check waves and ripples +## Example ``` using UnityEngine; diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-foam-with-script.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-foam-with-script.md new file mode 100644 index 00000000000..0b78538ed6b --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-foam-with-script.md @@ -0,0 +1,42 @@ +# Add foam with a script + +To add caustics or foam, or get information about water surface displacement due to waves and ripples, get buffers from the [GetFoamBuffer](../api/UnityEngine.Rendering.HighDefinition.WaterSurface.html#UnityEngine_Rendering_HighDefinition_WaterSurface_GetFoamBuffer_UnityEngine_Vector2__) API. + +## Example: Add foam + +``` +using UnityEngine; +using UnityEngine.Rendering.HighDefinition; + +public class WaterFoamExample : MonoBehaviour +{ + // Reference to the water surface component + public WaterSurface waterSurface; + + // The area of the water surface where the foam buffer should be queried + public Vector2 foamArea; + + // Material to apply the foam effect + public Material waterMaterial; + + // Shader property name for foam texture in the water material + private readonly string _foamTextureProperty = "_FoamTex"; + + void Start() + { + // Get the foam buffer for the specified 2D area on the water surface + Texture foamBuffer = waterSurface.GetFoamBuffer(out foamArea); + + if (foamBuffer != null) + { + // Apply the foam buffer as a texture to the water material + waterMaterial.SetTexture(_foamTextureProperty, foamBuffer); + Debug.Log("Foam buffer applied successfully."); + } + else + { + Debug.LogWarning("Foam buffer could not be retrieved."); + } + } +} +``` diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-swell-agitation-or-ripples.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-swell-agitation-or-ripples.md index 3de9df3ba50..cee740e839b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-swell-agitation-or-ripples.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/add-swell-agitation-or-ripples.md @@ -1,10 +1,10 @@ -# Configure swell, agitation, or ripples with a water mask +# Configure swell, agitation, or ripples with a simulation mask -To configure swell, agitation or ripples, use a Water Mask to affect the influence the simulation has on specific areas of the water surface. +To configure swell, agitation, or ripples, use a simulation mask to affect the influence the simulation has on specific areas of the water surface. Masks take into account the Wrap Mode of the texture. For Ocean, Sea, or Lake water surface types, select **Clamp** rather than the default **Repeat** value. -To add a Water Mask: +To add a simulation mask: 1. Create and import a texture where the color channels represent the fluctuations. @@ -21,7 +21,7 @@ To add a Water Mask: The darker the color of a channel, the lesser the effect. For example, use white for 100% intensity and black for 0% intensity. -1. In the Water Volume Inspector window, drag the texture to the **Water Mask** property. +1. In the Water Volume Inspector window, drag the texture to the **Simulation Mask** property. ![A water mask that's more red towards the left and more blue towards the right.](Images/WaterMask_Example-22.2.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/arnold-standard-surface-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/arnold-standard-surface-material-inspector-reference.md index b0bb90f5929..b063030fef3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/arnold-standard-surface-material-inspector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/arnold-standard-surface-material-inspector-reference.md @@ -4,11 +4,12 @@ The Arnold Standard Surface shader replicates the Arnold Standard Surface shader **Note**: There are slight differences between what you see in Autodesk® Maya or Autodesk® 3DsMax and what you see in HDRP and HDRP doesn't support some material features. -![](Images/arnold-standard-surface-example-maya.png) +![Arnold Standard materials seen in Autodesk® Maya viewport.](Images/arnold-standard-surface-example-maya.png) Arnold Standard materials seen in **Autodesk® Maya** viewport. -![](Images/arnold-standard-surface-example-unity.png) +![Arnold Standard materials imported from FBX seen in Unity.](Images/arnold-standard-surface-example-unity.png) + The same materials imported from FBX seen in Unity. Note that the HDRP implementation of this shader uses a Shader Graph. @@ -30,8 +31,8 @@ When Unity imports an FBX with a compatible Arnold shader, it automatically crea Property - - + Option + Suboption Description @@ -98,6 +99,7 @@ When Unity imports an FBX with a compatible Arnold shader, it automatically crea + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/canvas-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/canvas-material.md index a8f424dfa3f..b6cbd974d45 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/canvas-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/canvas-material.md @@ -2,8 +2,6 @@ The Canvas Master Stack material type enables you to author Shader Graph shaders that can be applied to [UGUI user interface elements](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/UICanvas.html). -![](Images/ShaderGraphCanvasSettings.png) - ## Create a Canvas Shader Graph To create a Canvas material in Shader Graph, use one of the following methods: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/cloud-layer-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/cloud-layer-volume-override-reference.md index 919e68a8bd6..8898a5210a8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/cloud-layer-volume-override-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/cloud-layer-volume-override-reference.md @@ -4,8 +4,6 @@ The Cloud Layer Volume Override lets you configure a simple representation of cl ## Properties -![](Images/Override-CloudLayer.png) - [!include[](snippets/Volume-Override-Enable-Properties.md)] | Property | Description | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/convert-from-built-in-convert-lighting-and-shadows.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/convert-from-built-in-convert-lighting-and-shadows.md index c9aa3bcb095..3ffb6891bdb 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/convert-from-built-in-convert-lighting-and-shadows.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/convert-from-built-in-convert-lighting-and-shadows.md @@ -43,8 +43,6 @@ To set up lighting in your HDRP Project: 3. Enable **Mode** and set it to **Automatic**. 4. To refresh the exposure, go to the Scene view and enable **Always Refresh**. - ![](Images/UpgradingToHDRP2.png) - 7. HDRP supports colored light cookies, whereas the Built-in light cookies use a texture format that only contains alpha. To correct the Light cookie: 1. In the Project window, select your Light cookie from your **Assets** folder. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-fog-volume-shader.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-fog-volume-shader.md index b94bbcbcfc8..42a867d4ffc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-fog-volume-shader.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-fog-volume-shader.md @@ -4,7 +4,7 @@ Use the Fog Volume [shader graph](https://docs.unity3d.com/Packages/com.unity.sh For details on the settings in the Fog Volume shader graph, refer to [Fog Volume Master Stack](fog-volume-master-stack-reference.md) -![](Images/Volumetric-ground-fog.png) +![Example fog effect.](Images/Volumetric-ground-fog.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-physically-based-sky.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-physically-based-sky.md index c2eb3e00f4c..7bdb67ab59a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-physically-based-sky.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-physically-based-sky.md @@ -2,9 +2,9 @@ The Physically Based Sky Volume Override lets you configure how the High Definition Render Pipeline (HDRP) renders physically based sky. -![](Images/Override-PhysicallyBasedSky2.png) +![A forest in daytime, with a clear sky and a hazy sun.](Images/Override-PhysicallyBasedSky2.png) -![](Images/Override-PhysicallyBasedSky3.png) +![The same forest at night, with the trees in silhouette and the sky a gradient of dark yellow and orange.](Images/Override-PhysicallyBasedSky3.png) ## Using Physically Based Sky diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-refractive-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-refractive-material.md index fe4079d38d4..0b4bd73bddc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-refractive-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-a-refractive-material.md @@ -85,7 +85,7 @@ To set color tint and light absorption: - In a Material's settings, in the [Transparency Inputs](Surface-Type.md#transparency-inputs) section, set **Transmission Color** and **Absorption Distance**. - In Shader Graph, in the Master Stack, input a value or map into **Absorption Distance** and **Transmittance Color**. -![](Images/refraction-absorption.png)
+![Materials with the same transmission color but decreasing absorption distance from left to right.](Images/refraction-absorption.png)
Materials with the same transmission color but decreasing absorption distance from left to right. @@ -98,8 +98,7 @@ To set smoothness: - In a Material's settings, in the [Surface Inputs](Surface-Type.md) section, set **Smoothness**. - In Shader Graph, in the Master Stack, set **Smoothness**. -![](Images/refraction-smoothness.png)
-Materials with decreasing smoothness from left to right. +![Materials with decreasing smoothness from left to right.](Images/refraction-smoothness.png)
### Add a Reflection Probe diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-eye-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-eye-material.md index 680556d19ea..84de5470101 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-eye-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-eye-material.md @@ -84,5 +84,5 @@ Inspector window with the **Sclera Diffusion Profile** fix option highlighted. You must provide seperate Texture maps for the Iris and Sclera. This is because of the way that properties for subsurface scattering, limbal ring, smoothness, and other surface information blends between the Iris and Sclera. This means you need to create a Sclera map with no Iris information, and an Iris map with no Sclera information: -![](Images/eye-shader-sclera-map.png)![](Images/eye-shader-iris-map.png) +![An eye shader sclera map.](Images/eye-shader-sclera-map.png)![An eye shader iris map.](Images/eye-shader-iris-map.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-hdri-sky.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-hdri-sky.md index 7114b93b2da..e1e383ac750 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-hdri-sky.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-an-hdri-sky.md @@ -4,7 +4,7 @@ A High-dynamic-range imaging (HDRI) Sky is a simple sky representation that uses Tip: [Unity HDRI Pack](https://assetstore.unity.com/packages/essentials/beta-projects/unity-hdri-pack-72511) is available on the Unity Asset Store and provides 7 pre-converted HDR Cubemaps ready for use within your Project. -![](Images/HDRPFeatures-HDRISky.png) +![A stylized car floating on a dirt road in a vast plain.](Images/HDRPFeatures-HDRISky.png) ## Using HDRI Sky diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-local-foam-in-the-wake-of-a-gameobject.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-local-foam-in-the-wake-of-a-gameobject.md new file mode 100644 index 00000000000..4e576ac3b99 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-local-foam-in-the-wake-of-a-gameobject.md @@ -0,0 +1,17 @@ +# Create local foam near a GameObject + +To create foam on a water surface near a GameObject, follow these steps: + +1. In the **Hierarchy** window, open the context menu (right-click) and select **Water > Surface**, then create a water surface. + +1. In the **Inspector** window of the water surface, in the **Water decals** section, enable **Foam**. + +1. In the **Hierarchy** window, right-click a GameObject and select **Water > Surface > Water decal**. + + The new water decal is now a child of the GameObject. + +1. In the **Scene** view, move the water decal close to the GameObject. + +1. Move the GameObject along the water surface and notice how a trail of foam forms in its wake. + +![Local foam near a GameObject](Images/trailing-foam.jpg) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-realistic-clouds-volumetric-clouds.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-realistic-clouds-volumetric-clouds.md index 7ad835a9d3f..fa6524bdeee 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-realistic-clouds-volumetric-clouds.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-realistic-clouds-volumetric-clouds.md @@ -23,7 +23,7 @@ The [**Volumetric Clouds** Volume component override](volumetric-clouds-volume-o **Note**: When editing Volumetric Cloud properties in the Editor, set **Temporal Accumulation Factor** to a lower value. This allows you to see changes instantly, rather than blended over time. -![](Images/volumetric-clouds-2.png) +![Volumetric Clouds example.](Images/volumetric-clouds-2.png) Refer to the [Volumetric Clouds Volume Override reference](volumetric-clouds-volume-override-reference.md) for more information. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-simple-clouds-cloud-layer.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-simple-clouds-cloud-layer.md index a8c2020b13a..4ce8a8f5da3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-simple-clouds-cloud-layer.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-simple-clouds-cloud-layer.md @@ -4,7 +4,7 @@ A Cloud Layer is a simple representation of clouds in the High Definition Render Refer to [Understand clouds](understand-clouds.md) for more information about clouds in the High Definition Render Pipeline (HDRP). -![](Images/HDRPFeatures-CloudLayer.png) +![Cloud Layer sample: A simple representation of clouds in the High Definition Render Pipeline (HDRP).](Images/HDRPFeatures-CloudLayer.png) ## Using the Cloud Layer diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-wind-driven-foam-on-the-whole-water-surface.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-wind-driven-foam-on-the-whole-water-surface.md new file mode 100644 index 00000000000..e039e0564e2 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/create-wind-driven-foam-on-the-whole-water-surface.md @@ -0,0 +1,32 @@ +# Create wind-driven foam on the entire water surface + +You can create foaming whitecaps to simulate waves breaking when wind speeds exceed a certain threshold. + +Simulation foam automatically appears on local maximum on high wave crests depending on the properties set below. + +To create foam on the entire water surface: + +- In the **Hierarchy** window, open the context menu (right-click) and select **Water** > **Surface**, then create a river, an ocean, a sea, or a lake. + +- To create more deep foam, increase the Distant Wind Speed in the **Simulation** section of the **Inspector** window of the water surface. + + ![Distant Wind Speed set to 250](Images/more-deep-foam.jpg) + + Distant Wind Speed set to 250. + +- To create more surface foam, also increase the foam amount in the **Foam** section of the **Inspector** window of the water surface. + + ![Distant Wind Speed set to 250 and foam amount set to 1](Images/more-surface-foam.jpg) + + Distant Wind Speed set to 250 and foam amount set to 1. + +- To fine-tune foam generation across wind conditions, edit the Wind Speed Dimmer curve in the **Foam** section of the **Inspector** window of the water surface. + + This control determines the amount of foam that Distant Wind Speed values produce. + + ![Wind Speed Dimmer curve](Images/water-foam-dimmer.png)
+ * A: Distant Wind Speed values at the bottom of the curve don't produce any foam. + * B: Distant Wind Speed values in the range where the curve rises produce some foam. + * C: Distant Wind Speed values in the range at the top of the curve produce lots of foam. + * D: The x-axis of this graph represents normalized Distant Wind Speed. + * E: The y-axis of this graph represents the percentage of the maximum foam amount. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/custom-material-inspectors.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/custom-material-inspectors.md index ac90208d53b..b2b2e65329f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/custom-material-inspectors.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/custom-material-inspectors.md @@ -8,8 +8,6 @@ This page contains information about how to create custom Material Inspectors in Material Inspectors for most HDRP shaders are made of UI blocks. A UI block is a foldable section that contains a named group of properties. For example, **Surface Options** and **Surface Inputs** in the below image are both UI blocks. -![](Images/custom-material-inspector-ui-blocks.png) - The order of the UI block list defines the display order of the UI blocks in the Inspector. The first item in the list renders at the top and the last item renders at the bottom. For information about how to create UI Blocks for a custom Material Inspector, see [UI blocks](#creating-ui-blocks). @@ -69,11 +67,11 @@ This code sample fetches the `_MyColor` property in the shader and displays it. 2. Select the property to display and view it in the Node Settings tab of the Graph Inspector. 3. Set **Reference** to the name `FindProperty` uses. In this example, it's **_MyColor**. -![](Images/custom-material-inspector-node-settings-example.png) +![Example: The _MyColor property in the Node Settings tab of the Graph Inspector.](Images/custom-material-inspector-node-settings-example.png) The following image shows how the Inspector looks for the UI block in the code sample. -![](Images/custom-material-inspector-ui-block-example.png) +![How the Inspector looks for the UI block in the code sample.](Images/custom-material-inspector-ui-block-example.png) #### Implementing a foldout section @@ -117,7 +115,7 @@ You can also hardcode the bit in a UI block but this isn't best practice especia The following image shows how the Inspector looks for the UI block in the above code sample. -![](Images/custom-material-inspector-ui-block-foldout-example.png) +![How the Inspector looks for the UI block in the above code sample.](Images/custom-material-inspector-ui-block-foldout-example.png) #### Block cross-reference @@ -165,7 +163,7 @@ public class LightingInspectorExample : LightingShaderGraphGUI This code sample produces the following Inspector: -![](Images/custom-material-inspector-lit-example.png) +![Inspector produced by code sample.](Images/custom-material-inspector-lit-example.png) ### Custom Unlit Material Inspector @@ -192,7 +190,7 @@ public class UnlitExampleGUI : UnlitShaderGraphGUI This code sample produces the following Inspector: -![](Images/custom-material-inspector-unlit-example.png) +![Inspector produced by code sample.](Images/custom-material-inspector-unlit-example.png) ### Custom Decal Material Inspector @@ -220,7 +218,7 @@ public class DecalGUIExample : DecalShaderGraphGUI This code sample produces the following Inspector: -![](Images/custom-material-inspector-decal-example.png) +![Inspector produced by code sample.](Images/custom-material-inspector-decal-example.png) ### Bespoke Material Inspector diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/custom-pass-create-gameobject.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/custom-pass-create-gameobject.md index f817fbe5af7..0d5a309eb33 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/custom-pass-create-gameobject.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/custom-pass-create-gameobject.md @@ -135,7 +135,7 @@ To create and assign a full-screen shader graph that reads from the custom colo This copies the contents of the custom color buffer to the Camera color buffer. -![](Images/FS_CustomColorBuffer.png) +![Shader graph screenshot: Read from the custom color buffer.](Images/FS_CustomColorBuffer.png) For more information on how to modify a full-screen Shader Graph, see the [full-screen master stack](fullscreen-master-stack-reference.md). @@ -153,9 +153,7 @@ For information about the Draw renderers Custom Pass properties, refer to [Custo Unity uses the **Pass Name** to select which pass of the shader it renders on an HDRP material. To render the object color, select **Forward** or **ForwardOnly**. Use the **DepthForwardOnly** Pass Name if you only want to render the depth of the object. -If you see the following warning when you create a new draw renderers CustomPass, this might be due to your [HDRP Asset](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.3/manual/HDRP-Asset.md) settings: - -![](Images/Custom_Pass_DrawRenderers_Error.png) +If you see the "Your HDRP settings do not support ForwardOnly, some objects might not render." warning when you create a new draw renderers CustomPass, this might be due to your [HDRP Asset](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@10.3/manual/HDRP-Asset.md) settings. To fix this, navigate to your HDRP Asset in your **Assets** folder (if you are using the HDRP template, this is in **Assets > Settings**) and change the **Lit Shader Mode** to **Both**. For more information, see [Changing the depth of a renderer in your scene](#Changing-Renderer-Depth). @@ -485,8 +483,6 @@ To change the buffer format of the Custom Pass component in your HDRP asset, go | R11G11B10 | 32 | This format has a higher precision than R8G8B8A8 but does not support alpha channels. | | R16G16B16A16 | 64 | This format has the highest precision but uses twice as much memory as R8G8B8A8 and R11G11B10. | -![](Images/Custom_Pass_HDRPAsset_CBF.png) - You can sample the custom color and depth buffers in Shader Graph using the following nodes: - [Custom Color Node](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest?subfolder=/manual/HD-Custom-Color-Node.html) - [Custom Depth Node](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest?subfolder=/manual/HD-Custom-Depth-Node.html) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/debug-materials-and-shaders-matcap.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/debug-materials-and-shaders-matcap.md index aa3f60b3968..ed46639e403 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/debug-materials-and-shaders-matcap.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/debug-materials-and-shaders-matcap.md @@ -6,9 +6,7 @@ MatCap mode is useful to navigate and get a sense of the Scene without setting u ## Using MatCap -To activate MatCap mode, disable the Lighting toggle in the Scene view. - -![](Images/MatCap1.png) +To activate MatCap mode, disable the Lighting toggle in the [Scene view Debug Mode overlay](https://docs.unity3d.com/Manual/ViewModes.html). MatCap mode preserves the normal maps and you can use the original Material albedo. To configure MatCap mode, go to **Edit** > **Preferences** > **HD Render Pipeline** and use the following properties. @@ -17,8 +15,6 @@ MatCap mode preserves the normal maps and you can use the original Material albe 1. Open the **Graphics** tab in the **Preferences** window (menu: **Edit > Preferences > Graphics**). 2. Under **High Definition Render Pipeline** and **MatCap Mode**: -![](Images/MatCap_Settings.png) - | **Property** | **Description** | | ------------------------- | ------------------------------------------------------------ | | **Mix Albedo** | Enable to make HDRP mix the albedo of the Material with its material capture. | @@ -37,11 +33,11 @@ You can also activate MatCap view as a **Lighting Debug Mode** in the [Rendering ## MatCap examples -![](Images/MatCap2.png) +![An interior room with a spaceship, darkly lit with a red spotlight in the corner.](Images/MatCap2.png)
MatCap off -![](Images/MatCap3.png) +![The same view, with a bright albedo material applied.](Images/MatCap3.png)
MatCap on -![](Images/MatCap4.png) +![The same with its original colors, but with a brighter, flatter look.](Images/MatCap4.png)
MatCap on with albedo diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-material-inspector-reference.md index a135f9a3f47..65b1846ef88 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-material-inspector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-material-inspector-reference.md @@ -1,6 +1,6 @@ # Decal Material Inspector reference -![](Images/HDRPFeatures-DecalShader.png) +![Decal Material sample.](Images/HDRPFeatures-DecalShader.png) You can modify the properties of a Decal material in the Decal Material Inspector. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-projector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-projector-reference.md index cc3a32db9e3..b2ae3dc79f0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-projector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/decal-projector-reference.md @@ -10,15 +10,15 @@ The Decal Projector includes a Scene view representation of its bounds and proje * An arrow that indicates the direction the projector faces. The base of this arrow is on the pivot point. -![](Images/DecalProjector2.png) +![Decal Projector Scene view.](Images/DecalProjector2.png) The decal Projector also includes three gizmos. The first two add handles on every face for you to click and drag to alter the size of the projector's bounds. |**Button**|**Gizmo**|**Description**| |-----|-----|-----| -|![](Images/DecalProjector3.png)|**Scale**|Scales the decal with the projector box. This changes the UVs of the Material to match the size of the projector box. This stretches the decal. The Pivot remains still.| -|![](Images/DecalProjector4.png)|**Crop**|Crops the decal with the projector box. This changes the size of the projector box but not the UVs of the Material. This crops the decal. The Pivot remains still.| -|![](Images/DecalProjector5.png)|**Pivot / UV**|Moves the decal's pivot point without moving the projection box. This changes the transform position.
Note this also sets the UV used on the projected texture.| +|![Decal Projector Scale gizmo.](Images/DecalProjector3.png)|**Scale**|Scales the decal with the projector box. This changes the UVs of the Material to match the size of the projector box. This stretches the decal. The Pivot remains still.| +|![Decal Projector Crop gizmo.](Images/DecalProjector4.png)|**Crop**|Crops the decal with the projector box. This changes the size of the projector box but not the UVs of the Material. This crops the decal. The Pivot remains still.| +|![Decal Projector Pivot / UV gizmo.](Images/DecalProjector5.png)|**Pivot / UV**|Moves the decal's pivot point without moving the projection box. This changes the transform position.
Note this also sets the UV used on the projected texture.| The color of the gizmos can be set up in the Preference window inside Color panel. @@ -28,8 +28,6 @@ Using the Inspector allows you to change all of the Decal Projector properties, ## Properties -![](Images/DecalProjector6.png) - | **Property** | **Description** | | ----------------------- | ------------------------------------------------------------ | | **Scale Mode** | The scaling mode to apply to decals that use this Decal Projector. The options are:
• **Scale Invariant**: Ignores the transformation hierarchy and uses the scale values in this component directly.
• **Inherit from Hierarchy**: Multiplies the [lossy scale](https://docs.unity3d.com/ScriptReference/Transform-lossyScale.html) of the Transform with the Decal Projector's own scale then applies this to the decal. Note that since the Decal Projector uses orthogonal projection, if the transformation hierarchy is [skewed](https://docs.unity3d.com/Manual/class-Transform.html), the decal does not scale correctly. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md index 2060e0af1db..ef76e23a274 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/deep-learning-super-sampling-in-hdrp.md @@ -78,10 +78,9 @@ If you need a specific custom mip bias for a Texture, create a custom sampler th Out = SAMPLE_TEXTURE2D_BIAS(TextureInput, SamplerInput, UV, MipBias); ``` -![](Images/CustomMipSupportNode.png) +![Example: The above script in the Node Settings Body field.](Images/CustomMipSupportNode.png) - -![](Images/CustomMipSupportNodeExample.png) +![Example: Custom Mip support node in a shader graph.](Images/CustomMipSupportNodeExample.png) ## Additional resources diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md index 6df8269c623..035615c337e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/diffusion-profile-reference.md @@ -28,7 +28,7 @@ To create a Diffusion Profile, navigate to **Assets > Create > Rendering > HDRP The following image displays the effect of each Texturing Mode option on a human face model: -![](Images/profile_texturing_mode.png) +![Three versions of a close-up view of a pair of lips. Subsurface Scattering (Disabled): the textured lines on the lips and the shadows are clear. Subsurface Scattering (Post-Scatter): the lines and shadows are blurrier. Subsurface Scattering (Pre and Post-Scatter): the lines and shadows are even blurrier.](Images/profile_texturing_mode.png) To simulate the thin oily layer on the skin of lips, HDRP uses two specular lobes (dual lobes). A specular lobe is the shape of light reflecting off the surface, based on the smoothness of the surface. @@ -38,12 +38,15 @@ If you use the StackLit shader, set the __Dual Specular Lobe Parametrization__ t The following image shows the effect of dual lobes on a human face model, with **Lobe Mix** set to 0.5. -![](Images/profile_dual_lobe.png) +![Four versions of a close-up view of a nose and mouth. The first lobe has a smoothess of 0.8, and little specular light. The second lobe has a smoothness of 1.2, and a greater amount of specular light on the nose and lips. The Lobe Mix of 0.5 has a look that's between the two. The final image is the full color result.](Images/profile_dual_lobe.png) The following image shows the effect of increasing **Diffuse Shading Power** on a human face model. -![](Images/profile_diffuse_power.gif) - + + + + +
Drag the slider to compare the images. ### Transmission only @@ -57,7 +60,7 @@ The following image shows the effect of increasing **Diffuse Shading Power** on The image below displays a human ear model without transmission (left) and with a configured **Thickness Remap** value (right): -![](Images/transmission_thick.png) +![Two images of an ear in very bright light. Light is visible through he ear on the right.](Images/transmission_thick.png) ### Profile Previews diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/enable-mask-and-current-water-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/enable-mask-and-current-water-decals.md new file mode 100644 index 00000000000..e22a6bba07e --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/enable-mask-and-current-water-decals.md @@ -0,0 +1,7 @@ +# Enable mask and current water decals + +To enable mask and current water decals, follow these steps: + +1. In the main menu, go to **Edit** > **Project Settings**. + +1. In the **Project Settings** window, go to **Graphics**, and enable **Enable Mask and Current Water Decals** in the **Water System** section. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/enable-mask-and-water-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/enable-mask-and-water-decals.md deleted file mode 100644 index 3e61be290e2..00000000000 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/enable-mask-and-water-decals.md +++ /dev/null @@ -1,7 +0,0 @@ -# Enable mask and water decals - -To enable mask and water decals, follow these steps: - -1. Go to **Edit** > **Project Settings**. - -1. In the **Project Settings** window, select the **Graphics** tab and enable **Enable Mask and Current Water Decals** in the **Water System** section. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-master-stack-reference.md index 1868f78232e..33c3bf76ef8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-master-stack-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-master-stack-reference.md @@ -115,8 +115,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add - - + + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-material-inspector-reference.md index 77a2286c6fe..60f335a4fd0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-material-inspector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/eye-material-inspector-reference.md @@ -36,7 +36,7 @@ Refer to [Eyes](eyes.md) for more information. | **Property** | **Description** | | ---------------------------- | ------------------------------------------------------------ | | **Pupil Radius** | Sets the radius of the Pupil in the Iris Map as a percentage. | -| **Pupil Debug Mode** | When enabled, displays a debug mode that allows you to calibrate the desired **Pupil Radius** for your Iris Map. For proper calibration, ensure that the **Iris Offset** is **0**, the **Pupil Aperture** is **0.5** (the neutral position) and then the white circle must be inside the iris pattern. See the following screenshot for an example:
![](Images/eye-shader-pupil-debug-mode.png) | +| **Pupil Debug Mode** | When enabled, displays a debug mode that allows you to calibrate the desired **Pupil Radius** for your Iris Map. For proper calibration, ensure that the **Iris Offset** is **0**, the **Pupil Aperture** is **0.5** (the neutral position) and then the white circle must be inside the iris pattern. See the following screenshot for an example:
![A front view of an eye, with a white pupil inside the iris.](Images/eye-shader-pupil-debug-mode.png) | | **Pupil Aperture** | Sets the state of the pupil’s aperture, 0 being the smallest aperture (**Min Pupil Aperture**) and 1 the widest aperture (**Max Pupil Aperture**). | | **Minimal Pupil Aperture** | Sets the minimum pupil aperture value. | | **Maximal Pupil Aperture** | Sets the maximum pupil aperture value. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fabric-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fabric-master-stack-reference.md index 7ab55869560..ef3e4b62a7d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fabric-master-stack-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fabric-master-stack-reference.md @@ -113,8 +113,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add - - + + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-master-stack-reference.md index 7a4a10d1758..b2b0243f3f8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-master-stack-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-master-stack-reference.md @@ -4,7 +4,7 @@ The Fog Volume master stack refers to the settings and contexts that the Fog Vol To use this master stack, [set up a Fog Volume in your scene](fog.md). -![](Images/Volumetric-ground-fog.png) +![Example fog effect.](Images/Volumetric-ground-fog.png) An example of a Fog Volume shader graph used to create smoke at ground level. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-override-reference.md index 23348890102..fb2b8324fab 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-override-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fog-volume-override-reference.md @@ -6,8 +6,6 @@ Refer to [Create a global fog effect](create-a-global-fog-effect.md) for more in ## Properties -![](Images/Override-VolumetricFog1.png) - [!include[](snippets/volume-override-api.md)] [!include[](snippets/Volume-Override-Enable-Properties.md)] diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/frame-settings-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/frame-settings-reference.md index a5c4e867357..aeee6128167 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/frame-settings-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/frame-settings-reference.md @@ -10,239 +10,239 @@ These settings determine the method that the Cameras and Reflection Probes using - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -257,160 +257,160 @@ These settings control lighting features for your rendering components. Here you - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -425,33 +425,33 @@ This is only supported on DX12 and Vulkan. If Asynchronous execution is disabled - + - + - + - + - + - + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fullscreen-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fullscreen-master-stack-reference.md index 283234a4404..2bb33f7fab9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/fullscreen-master-stack-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/fullscreen-master-stack-reference.md @@ -2,7 +2,7 @@ You can modify the properties of a Fullscreen Shader Graph in the Fullscreen Master Stack. -![](Images/Fullscreen-shader-rain.png) +![A full-screen shader that applies a raindrop effect to the screen.](Images/Fullscreen-shader-rain.png) A full-screen shader that applies a raindrop effect to the screen. @@ -76,40 +76,23 @@ The properties in the Graph Settings window control the overall appearance of th ### Surface Options -| **Property** | **Description** | | -| --------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| **Allow Override Material** | Exposes the Graph Settings properties in the Material’s **Surface Options**. **Note:** You can only expose properties that you enable in **Graph Settings.** If you enable one of these properties, you can’t disable it in the Inspector under the Material’s **Surface Options.** | | -| **Blend Mode** | Specifies the blend mode to use when Unity renders the full-screen shader. Each option has an equivalent [`BlendMode`](https://docs.unity3d.com/ScriptReference/Rendering.BlendMode.html) operation. **Note**: When you write to a Blit shader, disable this property to avoid undesired effects. | | -| | **Alpha** | Uses the shader’s alpha value to control its opacity. `BlendMode` operation: `Blend SrcAlpha OneMinusSrcAlpha` | -| | **Premultiply** | Multiplies the RGB values of the transparent shader by its alpha value, then applies a similar effect to the shader as **Alpha**. `BlendMode` operation: `Blend One OneMinusSrcAlpha` | -| | **Additive** | Adds the color values of the full-screen shader and the Camera output together. `BlendMode` operation: `Blend One One` | -| | **Multiply** | Multiplies the color of the full-screen shader with the color of the Camera’s output. `BlendMode` operation: `Blend DstColor Zero` | -| | **Custom** | Set every parameter of the blending equation manually. For more information, see [Custom blend modes](#custom-blend-modes). | -| **Depth Test ** | Specifies the function this shader uses to perform the depth test. | | -| | **Disabled** | Does not perform a depth test. | -| | **Never** | The depth test never passes. | -| | **Less** | The depth test passes if the pixel's depth value is less than the value stored in the depth buffer. | -| | **Equal** | The depth test passes if the pixel's depth value is equal to the value stored in the depth buffer. | -| | **Less Equal** | The depth test passes if the pixel's depth value is less than or equal to the value stored in the depth buffer. This renders the tested pixel in front of other pixels. | -| | **Greater** | The depth test passes if the pixel's depth value is greater than the value stored in the depth buffer. | -| | **Not Equal** | The depth test passes if the pixel's depth value is not equal to the value stored in the depth buffer. | -| | **Greater Equal** | The depth test passes if the pixel's depth value is greater than or equal to the value stored in the depth buffer. | -| | **Always** | The depth test always passes, and Unity does not compare the pixel's depth value to the value it has stored in the depth buffer. | -| **Depth Write** | Indicates whether HDRP writes depth values for GameObjects that use this shader. Enable this property to write the depth value to the depth buffer and use a [depth Fragment](#graph-settings) block. | | -| **Depth Write Mode** | Determines the depth value’s input format before Unity passes it to the depth buffer. This property determines which Depth block you can use in the [Fragment context](#fragment-context).This property appears when you enable **Depth Write**. | | -| | **LinearEye** | Converts the depth value into a value scaled to world space. This new value represents the depth (in meters) from the near to the far plane of the Camera. | -| | **Linear01** | Uses a linear depth value range between 0 and 1. | -| | **Raw** | Does not convert the depth buffer value. Use this setting with a nonlinear depth value or when you directly sample the depth value from the depth buffer. | -| Enable Stencil | This property gives you control over all stencil fields. See [Stencil properties](#stencil-properties) for information about the options that become available when you enable this property. | | -| Custom Editor GUI | Accepts the full name of a C# class that inherits [`FullscreenShaderGUI`](https://docs.unity3d.com/Packages/com.unity.shadergraph@15.0/api/UnityEditor.Rendering.Fullscreen.ShaderGraph.FullscreenShaderGUI.html). For information on how to use a custom editor, see [ShaderLab: assigning a custom editor](https://docs.unity3d.com/2021.2/Documentation/Manual/SL-CustomEditor.html). | | +| **Property** | **Description** | +|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Allow Override Material** | Exposes the Graph Settings properties in the Material's **Surface Options**. **Note:** You can only expose properties that you enable in **Graph Settings.** If you enable one of these properties, you can't disable it in the Inspector under the Material's **Surface Options.** | +| **Blend Mode** | Specifies the blend mode to use when Unity renders the full-screen shader. Each option has an equivalent [`BlendMode`](https://docs.unity3d.com/ScriptReference/Rendering.BlendMode.html) operation. **Note**: When you write to a Blit shader, disable this property to avoid undesired effects.
  • Alpha: Uses the shader's alpha value to control its opacity. `BlendMode` operation: `Blend SrcAlpha OneMinusSrcAlpha`.
  • Premultiply: Multiplies the RGB values of the transparent shader by its alpha value, then applies a similar effect to the shader as Alpha. `BlendMode` operation: `Blend One OneMinusSrcAlpha`.
  • Additive: Adds the color values of the full-screen shader and the Camera output together. `BlendMode` operation: `Blend One One`.
  • Multiply: Multiplies the color of the full-screen shader with the color of the Camera's output. `BlendMode` operation: `Blend DstColor Zero`.
  • Custom: Set every parameter of the blending equation manually. For more information, see Custom blend modes.
| +| **Depth Test** | Specifies the function this shader uses to perform the depth test.
  • Disabled: Does not perform a depth test.
  • Never: The depth test never passes.
  • Less: The depth test passes if the pixel's depth value is less than the value stored in the depth buffer.
  • Equal: The depth test passes if the pixel's depth value is equal to the value stored in the depth buffer.
  • Less Equal: The depth test passes if the pixel's depth value is less than or equal to the value stored in the depth buffer. This renders the tested pixel in front of other pixels.
  • Greater: The depth test passes if the pixel's depth value is greater than the value stored in the depth buffer.
  • Not Equal: The depth test passes if the pixel's depth value is not equal to the value stored in the depth buffer.
  • Greater Equal: The depth test passes if the pixel's depth value is greater than or equal to the value stored in the depth buffer.
  • Always: The depth test always passes, and Unity does not compare the pixel's depth value to the value it has stored in the depth buffer.
| +| **Depth Write** | Indicates whether HDRP writes depth values for GameObjects that use this shader. Enable this property to write the depth value to the depth buffer and use a [depth Fragment](#graph-settings) block. | +| **Depth Write Mode** | Determines the depth value's input format before Unity passes it to the depth buffer. This property determines which Depth block you can use in the [Fragment context](#fragment-context).This property appears when you enable **Depth Write**.
  • LinearEye: Converts the depth value into a value scaled to world space. This new value represents the depth (in meters) from the near to the far plane of the Camera.
  • Linear01: Uses a linear depth value range between 0 and 1.
  • Raw: Does not convert the depth buffer value. Use this setting with a nonlinear depth value or when you directly sample the depth value from the depth buffer.
| +| Enable Stencil | This property gives you control over all stencil fields. See [Stencil properties](#stencil-properties) for information about the options that become available when you enable this property. | +| Custom Editor GUI | Accepts the full name of a C# class that inherits [`FullscreenShaderGUI`](https://docs.unity3d.com/Packages/com.unity.shadergraph@15.0/api/UnityEditor.Rendering.Fullscreen.ShaderGraph.FullscreenShaderGUI.html). For information on how to use a custom editor, see [ShaderLab: assigning a custom editor](https://docs.unity3d.com/2021.2/Documentation/Manual/SL-CustomEditor.html). | ## Custom Blend Mode -Use the **Custom** blend mode to create a blend mode different from those available in [Surface Options](#surface-options). To show these options, set **Blend Mode** to **Custom**. The Custom blend mode properties specify the blending operation to use for this full-screen shader’s alpha and color channels. +Use the **Custom** blend mode to create a blend mode different from those available in [Surface Options](#surface-options). To show these options, set **Blend Mode** to **Custom**. The Custom blend mode properties specify the blending operation to use for this full-screen shader's alpha and color channels. -In the blend mode properties, **Src** (source) refers to the full-screen shader itself. **Dst** (destination) refers to the Scene camera’s raw output, which this shader doesn't affect. The blending operation applies the source contents to the destination contents to produce a rendering result. +In the blend mode properties, **Src** (source) refers to the full-screen shader itself. **Dst** (destination) refers to the Scene camera's raw output, which this shader doesn't affect. The blending operation applies the source contents to the destination contents to produce a rendering result. For more information on the blending equation, see [ShaderLab command: Blend](https://docs.unity3d.com/Manual/SL-Blend.html). @@ -139,37 +122,16 @@ Determines the blending equation HDRP uses for the alpha channel. Each setting d These properties affect how this full-screen Shader Graph uses the stencil buffer. For more information on the stencil buffer, see [SL-Stencil](https://docs.unity3d.com/Manual/SL-Stencil.html). -| **Property** | **Description** | | -| ------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| **Show Only HDRP Bits** | Determines whether you can set a custom value for the **Reference**, **Read Mask** and **Write Mask** properties. | | -| **Reference** | Determines the stencil reference value this shader uses for all stencil operations. When you disable **Show Only HDRP Bits,** you can set a custom value for this property.
**Important:** If you override a bit HDRP has reserved (bits 0, 1, 2, 3, 4, and 5), it can cause rendering artefacts. | | -| | **None** | Assigns no reference value. | -| | **UserBit0** | Stencil bit number 6. | -| | **UserBit1** | Stencil bit number 7. | -| | **AllUserBits** | Stencil bit numbers 6 and 7. | -| **Read Mask** | Determines which bits this shader can read during the stencil test. When you enable **Show Only HDRP Bits,** you can set a custom value for this property.
**Important**: If you override a bit HDRP has reserved (bits 0,1,2,3,4, and 5), it can cause rendering artefacts. | | -| | **None** | Assigns no reference value. | -| | **UserBit0** | Stencil bit number 6. | -| | **UserBit1** | Stencil bit number 7. | -| | **AllUserBits** | Stencil bit numbers 6 and 7. | -| **Write Mask ** | Determines which bits this shader can write to during the stencil test. When you enable **Show Only HDRP Bits,** you can set a custom value for this property.
**Important**: If you override a bit HDRP has reserved (bits 0,1,2,3,4, and 5), it can cause rendering artefacts. | | -| | **None** | Assigns no reference value. | -| | **UserBit0** | Stencil bit number 6. | -| | **UserBit1** | Stencil bit number 7. | -| | **AllUserBits** | Stencil bit numbers 6 and 7. | -| **Comparison** | Determines the comparison function this shader uses during the stencil test. | | -| | **Disabled** | Does not perform a stencil test. | -| | **Never** | The stencil test never passes. | -| | **Less** | The stencil test passes if the pixel's depth value is less than the value stored in the depth buffer. | -| | **Equal** | The stencil test passes if the pixel's depth value is equal to the value stored in the depth buffer. | -| | **Less Equal** | The stencil test passes if the pixel's depth value is less than or equal to than the depth buffer value. This renders the tested pixel in front of other pixels. | -| | **Greater** | The stencil test passes if the pixel's depth value is greater than the value stored in the depth buffer. | -| | **Not Equal** | The stencil test passes if the pixel's depth value is not equal to the value stored in the depth buffer. | -| | **Greater Equal** | The stencil test passes if the pixel's depth value is greater than or equal to the value stored in the depth buffer. | -| | **Always** | The stencil test always passes,and Unity does not compare the pixel's depth value to the value it has stored in the depth buffer. | -| **Pass** | Determines the operation this shader executes if the stencil test succeeds.
For more information on this property’s options, see [pass and fail options](#stencil-pass-fail). | | -| **Fail** | Determines the operation this shader executes if the stencil test fails.
For more information on this property’s options, see [pass and fail options](#stencil-pass-fail). | | -| **Depth Fail** | Determines the operation this shader executes if the depth test fails. This option has no effect if the depth test **Comparison** value is **Never** or **Disabled.**
For more information on this property’s options, see [pass and fail options](#stencil-pass-fail). | | +| **Property** | **Description** | +|-------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Show Only HDRP Bits** | Determines whether you can set a custom value for the **Reference**, **Read Mask** and **Write Mask** properties. | +| **Reference** | Determines the stencil reference value this shader uses for all stencil operations. When you disable **Show Only HDRP Bits,** you can set a custom value for this property.
**Important:** If you override a bit HDRP has reserved (bits 0, 1, 2, 3, 4, and 5), it can cause rendering artefacts.
  • None: Assigns no reference value.
  • UserBit0: Stencil bit number 6.
  • UserBit1: Stencil bit number 7.
  • AllUserBits: Stencil bit numbers 6 and 7.
| +| **Read Mask** | Determines which bits this shader can read during the stencil test. When you enable **Show Only HDRP Bits,** you can set a custom value for this property.
**Important**: If you override a bit HDRP has reserved (bits 0,1,2,3,4, and 5), it can cause rendering artefacts.
  • None: Assigns no reference value.
  • UserBit0: Stencil bit number 6.
  • UserBit1: Stencil bit number 7.
  • AllUserBits: Stencil bit numbers 6 and 7.
| +| **Write Mask ** | Determines which bits this shader can write to during the stencil test. When you enable **Show Only HDRP Bits,** you can set a custom value for this property.
**Important**: If you override a bit HDRP has reserved (bits 0,1,2,3,4, and 5), it can cause rendering artefacts.
  • None: Assigns no reference value.
  • UserBit0: Stencil bit number 6.
  • UserBit1: Stencil bit number 7.
  • AllUserBits: Stencil bit numbers 6 and 7.
| +| **Comparison** | Determines the comparison function this shader uses during the stencil test.
  • Disabled: Does not perform a stencil test.
  • Never: The stencil test never passes.
  • Less: The stencil test passes if the pixel's depth value is less than the value stored in the depth buffer.
  • Equal: The stencil test passes if the pixel's depth value is equal to the value stored in the depth buffer.
  • Less Equal: The stencil test passes if the pixel's depth value is less than or equal to the depth buffer value. This renders the tested pixel in front of other pixels.
  • Greater: The stencil test passes if the pixel's depth value is greater than the value stored in the depth buffer.
  • Not Equal: The stencil test passes if the pixel's depth value is not equal to the value stored in the depth buffer.
  • Greater Equal: The stencil test passes if the pixel's depth value is greater than or equal to the value stored in the depth buffer.
  • Always: The stencil test always passes, and Unity does not compare the pixel's depth value to the value it has stored in the depth buffer.
| +| **Pass** | Determines the operation this shader executes if the stencil test succeeds.
For more information on this property's options, see [pass and fail options](#stencil-pass-fail). | +| **Fail** | Determines the operation this shader executes if the stencil test fails.
For more information on this property's options, see [pass and fail options](#stencil-pass-fail). | +| **Depth Fail** | Determines the operation this shader executes if the depth test fails. This option has no effect if the depth test **Comparison** value is **Never** or **Disabled.**
For more information on this property's options, see [pass and fail options](#stencil-pass-fail). | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/gradient-sky-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/gradient-sky-volume-override-reference.md index ae498dbc8bc..78250794bcc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/gradient-sky-volume-override-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/gradient-sky-volume-override-reference.md @@ -1,61 +1,19 @@ # Gradient Sky Volume Override reference -![](Images/Override-GradientSky1.png) - The Gradient Sky Volume Override component exposes options that you can use to define how the High Definition Render Pipeline (HDRP) updates the indirect lighting the sky generates in the Scene. [!include[](snippets/Volume-Override-Enable-Properties.md)] Refer to [Create a gradient sky](create-a-gradient-sky.md) for more information. -
PropertyOption Description
PropertyOptionSub-option Description
PropertyOptionSub-option Description
PropertySub-property Description
Lit Shader ModeN/A Select the Shader Mode HDRP uses for the Lit Shader when the rendering component using these Frame Settings renders the Scene.
N/A Depth Prepass within Deferred If you enable Decals then HDRP forces a depth prepass and you can not disable this feature. This feature fills the depth buffer with all Meshes, without rendering any color. It's an optimization option that depends on the Unity Project you are creating, meaning that you should measure the performance before and after you enable this feature to make sure it benefits your Project. This is only available if you set Lit Shader Mode to Deferred.
N/A Clear GBuffers Enable the checkbox to make HDRP clear GBuffers for Cameras using these Frame Settings. This is only available if you set Lit Shader Mode to Deferred.
N/A MSAA Select the MSAA quality for the rendering components using these Frame Settings. This is only available if you set Lit Shader Mode to Forward.
Note: Using a different value for multiple different cameras has an impact on memory consumption.
N/A Alpha To Mask Enable the checkbox to make HDRP render with Alpha to Mask Materials that have enabled it. This is only available if you enable MSAA within Forward.
Opaque ObjectsN/A Enable the checkbox to make HDRP render Materials that have their Surface Type set to Opaque. If you disable this settings, Cameras/Reflection Probes using these Frame Settings don't render any opaque GameObjects.
Transparent ObjectsN/A Enable the checkbox to make HDRP render Materials that have their Surface Type set to Transparent. If you disable this setting, Cameras/Reflection Probes using these Frame Settings don't render any transparent GameObjects.
DecalsN/A Enable the checkbox to make HDRP process decals. Enable this on cameras that you want to render decals.
Decal LayersN/A Enable the checkbox to make HDRP process Decal Layers.
Transparent PrepassN/A Enable the checkbox to make HDRP perform a Transparent Prepass. Enabling this feature causes HDRP to add polygons from transparent Materials to the depth buffer to improve sorting.
Transparent PostpassN/A Enable the checkbox to make HDRP perform a Transparent Postpass. Enabling this feature causes HDRP to add polygons to the depth buffer that post-processing uses.
Low Resolution TransparentN/A Enable the checkbox to allow HDRP to perform a low resolution render pass. If you disable this checkbox, HDRP renders transparent Materials using the Low Resolution render pass in full resolution.
Ray TracingN/A Enable the checkbox to allow this Camera to use ray tracing features. This is only available if you enable Ray Tracing in your HDRP Asset.
Custom PassN/A Enable the checkbox to allow this Camera to use custom passes. This is only enabled if you enable Custom Passes in your HDRP asset.
Motion VectorsN/A Enable the checkbox to make HDRP perform a Motion Vectors pass, allowing Cameras using these Frame Settings to use Motion Vectors. Disabling this feature means the Cameras using these Frame Settings don't calculate object motion vectors or camera motion vectors.
N/A Opaque Object Motion Enable the checkbox to make HDRP support object motion vectors. Enabling this feature causes HDRP to calculate motion vectors for moving objects and objects with vertex animations. HDRP Cameras using these Frame Settings still calculate camera motion vectors if you disable this feature.
N/A Transparent Object Motion Enable the checkbox to allow HDRP to write the velocity of transparent GameObjects to the velocity buffer. To make HDRP write transparent GameObjects to the velocity buffer, you must also enable the Transparent Writes Velocity checkbox on each transparent Material. Enabling this feature means that effects, such as motion blur, affect transparent GameObjects. This is useful for alpha blended objects like hair.
RefractionN/A Enable the checkbox to make HDRP process Refraction for Cameras/Reflection Probes using these Frame Settings. Refraction is when a transparent surface scatters light that passes through it. This add a resolve of ColorBuffer after the drawing of opaque materials to be use for Refraction effect during transparent pass.
DistortionN/A Enable the checkbox to make HDRP process Distortion. Enabling this feature causes HDRP to calculate a distortion pass. This allows Meshes with transparent Materials to distort the light that enters them.
N/A Rough Distortion Enable the checkbox to allow HDRP to modulate distortion based on the roughness of the material. If you enable this option, HDRP generates a color pyramid with mipmaps to process distortion. This increases the resource intensity of the distortion effect.
Post-processN/A Enable the checkbox to make HDRP perform a Post-processing pass. Disable this feature to remove all post-processing effects from this Camera/Reflection Probe.
N/A Custom Post-process Enable the checkbox to allow HDRP to execute custom post processes. Disable this feature to remove all custom post-processing effects from this Camera/Reflection Probe.
N/A Stop NaN Enable the checkbox to allow HDRP to replace pixel values that aren't a number (NaN) with black pixels for Cameras that have Stop NaNs enabled.
N/A Depth Of Field Enable the checkbox to allow HDRP to add depth of field to Cameras affected by a Volume containing the Depth Of Field override.
N/A Motion Blur Enable the checkbox to allow HDRP to add motion blur to Cameras affected by a Volume containing the Motion Blur override.
N/A Panini Projection Enable the checkbox to allow HDRP to add panini projection to Cameras affected by a Volume containing the Panini Projection override.
N/A Bloom Enable the checkbox to allow HDRP to add bloom to Cameras affected by a Volume containing the Bloom override.
N/A Lens Distortion Enable the checkbox to allow HDRP to add lens distortion to Cameras affected by a Volume containing the Lens Distortion override.
N/A Chromatic Aberration Enable the checkbox to allow HDRP to add chromatic aberration to Cameras affected by a Volume containing the Chromatic Aberration override.
N/A Vignette Enable the checkbox to allow HDRP add a vignette to Cameras affected by a Volume containing the Vignette override.
N/A Color Grading Enable the checkbox to allow HDRP to process color grading for Cameras.
N/A Tonemapping Enable the checkbox to allow HDRP to process tonemapping for Cameras.
N/A Lens Flare Data Driven Enable to use the Lens Flare (SRP) component.
N/A Lens Flare Screen Space Enable to use the Screen Space Lens Flare volume override.
N/A Film Grain Enable the checkbox to allow HDRP to add film grain to Cameras affected by a Volume containing the Film Grain override.
N/A Dithering Enable the checkbox to allow HDRP to add dithering to Cameras that have Dithering enabled.
N/A Anti-aliasing Enable the checkbox to allow HDRP to do a post-process antialiasing pass for Cameras. This method that HDRP uses is the method specified in the Camera's Anti-aliasing drop-down.
After Post-processN/A Enable the checkbox to make HDRP render GameObjects that use an Unlit Material and have their Render Pass set to After Post-process. This is useful to render GameObjects that aren't affected by Post-processing effects. Disable this checkbox to make HDRP not render these GameObjects at all.
N/A Depth Test Enable the checkbox to allow HDRP to perform a depth test for Shaders rendered in the After Post-process rendering pass. HDRP disables the depth test when you enable dynamic resolution scaling or any effect that uses jittered depth (DLSS, TAA) to prevent artefacts.
LOD Bias ModeN/A Use the drop-down to select the method that Cameras use to calculate their level of detail (LOD) bias. An LOD bias is a multiplier for a Camera’s LOD switching distance. A larger value increases the view distance at which a Camera switches the LOD to a lower resolution.
•From Quality Settings: The Camera uses the LOD Bias property from your Unity Project's Quality Settings. To change this value, open the Project Settings window (menu: Edit > Project Settings), go to Quality > HDRP > Rendering and set the LOD Bias to the value you want.
•Scale Quality Settings: The Camera multiplies the LOD Bias property below by the LOD Bias property in your Unity Project's Quality Settings.
•Fixed: The Camera uses the LOD Bias property below.
N/A LOD Bias Set the value that Cameras use to calculate their LOD bias. The Camera uses this value differently depending on the LOD Bias Mode you select.
Maximum LOD Level ModeN/A Use the drop-down to select the mode that Cameras use to set their maximum level of detail. LODs begin at 0 (the most detailed) and increasingly get less detailed. The maximum level of detail is the least detailed LOD that this Camera renders. This is useful when you use realtime Reflection Probes because they often don't need to use the highest LOD to capture their view of the Scene.
•From Quality Settings: The Camera uses the Maximum LOD Level property from your Unity Project's Quality Settings. To change this value, open the Project Settings window (menu: Edit > Project Settings…), go to Quality > HDRP > Rendering and set the Maximum LOD Level to the value you want.
•Offset Quality Settings: The Camera adds the Maximum LOD Level property below to the Maximum LOD Level property in your Unity Project's Quality Settings.
•Fixed: The Camera uses the Maximum LOD Level property below.
N/A Maximum LOD Level Set the value that Cameras use to calculate their maximum level of detail. The Camera uses this value differently depending on the Maximum LOD Level Mode you select.
Material Quality LevelN/A Select which material quality level to use when rendering from this Camera.
•From Quality Settings: The Camera uses the Material Quality Level property from your Unity Project's Quality Settings. To change this value, open the Project Settings window (menu: Edit > Project Settings…), go to Quality > HDRP > Rendering and set the Material Quality Level to the value you want.
Asymmetric ProjectionN/A Enable the checkbox to allow HDRP to account for asymmetric projection when evaluating the view direction based on pixel coordinates.
Screen Coordinates OverrideN/A Enable the checkbox to allow HDRP to use Screen Coordinates Override for post processing and custom passes. This allows post effects to be compatible with Cluster Display for example.
PropertyOptionSub-option Description
Shadow MapsN/AN/A Enable the checkbox to make HDRP process Shadows. This makes this Camera/Reflection Probe capture shadows.
Contact ShadowsN/AN/A Enable the checkbox to make HDRP process Contact Shadows. Enabling this feature causes HDRP to calculate Contact Shadows for this Camera/Reflection Probe.
Probe VolumeN/AN/A Use Adaptive Probe Volumes.
N/A Normalize Reflection ProbesN/A Use the data in Adaptive Probe Volumes to adjust lighting from Reflection Probes to match the local environment, which reduces the number of Reflection Probes you need.
Screen Space ShadowsN/AN/A [DXR only] Enable the checkbox to allow Lights to render shadow maps into screen space buffers to reduce lighting Shader complexity. This technique increases processing speed but also increases the memory footprint.
ShadowmaskN/AN/A Enable the checkbox to make HDRP support the Shadowmasks lighting mode.
Screen Space RefectionN/AN/A Enable the checkbox to make HDRP process Screen Space Reflections (SSR). This allows HDRP to calculate SSR for this Camera/Reflection Probe.
N/A TransparentN/A Enable the checkbox to make HDRP process Screen Space Reflections (SSR) on transparent materials.
Screen Space Global IlluminationN/AN/A Enable the checkbox to make HDRP process Screen Space Global Illumination (SSGI).
Screen Space Ambient OcclusionN/AN/A Enable the checkbox to make HDRP process Screen Space Ambient Occlusion (SSAO). This allows HDRP to calculate SSAO for this Camera/Reflection Probe.
TransmissionN/AN/A Enable the checkbox to make HDRP process the transmission effect. This allows subsurface scattering Materials to use transmission, for example, light transmits through a leaf with a subsurface scattering Material.
FogN/AN/A Enable the checkbox to make HDRP process atmospheric scattering. This allows your Camera/Reflection Probe to process atmospheric scattering effects such as the fog from your Scene’s Volumes.
N/A VolumetricsN/A Enable the checkbox to make HDRP process Volumetrics. Enabling this setting allows your rendering component to render volumetric fog and lighting.
N/AN/A Reprojection Enable the checkbox to improve the quality of volumetrics at runtime. Enabling this feature causes HDRP to use several previous frames to calculate the volumetric effects. Using these previous frames helps to reduce noise and smooth out the effects.
Light LayersN/AN/A Enable the checkbox to make HDRP process Light Layers.
Exposure ControlN/AN/A Enable the checkbox to use the exposure values you can set on relevant components in HDRP. Disable this checkbox to use a neutral value (0 Ev100) instead.
Reflection ProbeN/AN/A Enable the checkbox to allow this Camera to use Reflection Probes.
Planar Reflection ProbeN/AN/A Enable the checkbox to allow this Camera to use Planar Reflection Probes.
Metallic Indirect FallbackN/AN/A Enable the checkbox to render Materials with base color as diffuse for this Camera. This renders metals as diffuse Materials. This is a useful Frame Setting to use for real-time Reflection Probes because it renders metals as diffuse Materials to stop them appearing black when Unity can't calculate several bounces of specular lighting.
Sky ReflectionN/AN/A Enable the checkbox to allow this Camera to use the Sky Reflection. The Sky Reflection affects specular lighting.
Direct Specular LightingN/AN/A Enable the checkbox to allow this Camera to render direct specular lighting. This allows HDRP to disable direct view dependent lighting. It doesn't save any performance.
Subsurface ScatteringN/AN/A Enable the checkbox to make HDRP process subsurface scattering. Enabling this feature causes HDRP to simulate how light penetrates surfaces of translucent GameObjects, scatters inside them, and exits from different locations.
N/A Quality ModeN/A Use the drop-down to select how to set the quality level for Subsurface Scattering.
• From Quality Settings: The Camera uses the Subsurface Scattering Sample Budget property that's set in the Material Section of your Unity Project's Quality Settings.
• Override Quality Settings: Allows you to set a custom sample budget for sample surface scattering for this Camera in the field below.
N/A Quality LevelN/A Use the drop-down to select the quality level when to set the Quality Mode to From Quality Settings.
N/A Custom Sample BudgetN/A The custom number of samples to use for Subsurface Scattering calculations when to set the Quality Mode to Override Quality Settings.
PropertySub-property Description
Asynchronous ExecutionN/A Enable the checkbox to allow HDRP to execute certain compute Shader commands in parallel.
N/A Light List Enable the checkbox to allow HDRP to build the Light List asynchronously.
N/A Screen Space Reflection Enable the checkbox to allow HDRP to calculate screen space reflection asynchronously.
N/A Screen Space Ambient Occlusion Enable the checkbox to allow HDRP to calculate screen space ambient occlusion asynchronously.
N/A Volume Voxelization Enable the checkbox to allow HDRP to calculate volumetric voxelization asynchronously.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
TopUse the color picker to select the color of the upper hemisphere of the sky.
MiddleUse the color picker to select the color of the horizon.
BottomUse the color picker to select the color of the lower hemisphere of the sky. This is below the horizon.
Gradient DiffusionSet the size of the Middle property in the Skybox. Higher values make the gradient thinner, shrinking the size of the Middle section. Low values make the gradient thicker, increasing the size of the Middle section.
Intensity ModeUse the drop-down to select the method that HDRP uses to calculate the sky intensity.

Exposure: HDRP calculates intensity from an exposure value in EV100.
Multiplier: HDRP calculates intensity from a flat multiplier.
ExposureSet the amount of light per unit area that HDRP applies to the HDRI Sky cubemap.
This property only appears when you select Exposure from the Intensity Mode drop-down.
MultiplierSet the multiplier for HDRP to apply to the Scene as environmental light. HDRP multiplies the environment light in your Scene by this value.
This property only appears when you select Multiplier from the Intensity Mode drop-down.
Update ModeUse the drop-down to set the rate at which HDRP updates the sky environment (using Ambient and Reflection Probes).

On Changed: HDRP updates the sky environment when one of the sky properties changes.
On Demand: HDRP waits until you manually call for a sky environment update from a script.
Realtime: HDRP updates the sky environment at regular intervals defined by the Update Period.
+| **Property** | **Sub-property** | **Description** | +|------------------------|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Top** | N/A | Use the color picker to select the color of the upper hemisphere of the sky. | +| **Middle** | N/A | Use the color picker to select the color of the horizon. | +| **Bottom** | N/A | Use the color picker to select the color of the lower hemisphere of the sky. This is below the horizon. | +| **Gradient Diffusion** | N/A | Set the size of the Middle property in the Skybox. Higher values make the gradient thinner, shrinking the size of the Middle section. Low values make the gradient thicker, increasing the size of the Middle section. | +| **Intensity Mode** | N/A | Use the drop-down to select the method that HDRP uses to calculate the sky intensity.
  • Exposure: HDRP calculates intensity from an exposure value in EV100.
  • Multiplier: HDRP calculates intensity from a flat multiplier.
| +| **Intensity Mode** | **Exposure** | Set the amount of light per unit area that HDRP applies to the HDRI Sky cubemap. This property only appears when you select Exposure from the Intensity Mode drop-down. | +| **Intensity Mode** | **Multiplier** | Set the multiplier for HDRP to apply to the Scene as environmental light. HDRP multiplies the environment light in your Scene by this value. This property only appears when you select Multiplier from the Intensity Mode drop-down. | +| **Update Mode** | N/A | Use the drop-down to set the rate at which HDRP updates the sky environment (using Ambient and Reflection Probes).
  • On Changed: HDRP updates the sky environment when one of the sky properties changes.
  • On Demand: HDRP waits until you manually call for a sky environment update from a script.
  • Realtime: HDRP updates the sky environment at regular intervals defined by the Update Period.
| + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hair-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hair-master-stack-reference.md index 60086f16791..e52b79bb39a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hair-master-stack-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hair-master-stack-reference.md @@ -34,7 +34,7 @@ The Approximate model doesn’t automatically look realistic in every lighting s The Approximate model is best for darker hair tones. For best results with lighter hair tones, use the Physical model. -![](Images/hair-kajiya.png) +![Approximate hair Material Type sample.](Images/hair-kajiya.png) @@ -61,7 +61,7 @@ Change the [**Base Color** block](hair-master-stack-reference.md#fragment-contex The Physical Material Type is based on the [Marschner](http://www.graphics.stanford.edu/papers/hair/hair-sg03final.pdf) human hair fiber reflectance model. -![](Images/hair-marschner.png) +![Physical Material Type sample.](Images/hair-marschner.png) @@ -84,7 +84,7 @@ The Scattering Mode options appear when you select the **Physical** material typ | **Physical** | Physically simulates light transport through a volume of hair (multiple scattering). This feature is not available for public use yet. | | **Approximate** | Estimates the appearance of light transport through a volume of hair (multiple scattering). This mode does not take into account how transmittance affects the way light travels and slows through a volume of hair. It also ignores the effect that a hair's roughness has on the spread of light. | -![](Images/hair-multiple-scattering.png) +![Hair multiple scattering sample.](Images/hair-multiple-scattering.png) ## Geometry Type @@ -218,6 +218,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add + + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdri-sky-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdri-sky-volume-override-reference.md index d96406ed937..2e058ec1fa2 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdri-sky-volume-override-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdri-sky-volume-override-reference.md @@ -6,91 +6,89 @@ Refer to [Create an HDRI sky](create-an-HDRI-sky.md) for more information. ## Properties -![](Images/Override-HDRISky1.png) - [!include[](snippets/Volume-Override-Enable-Properties.md)]
PropertyOptionSub-option Description
- + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -99,102 +97,100 @@ Refer to [Create an HDRI sky](create-an-HDRI-sky.md) for more information. ## Advanced Properties -![](Images/Override-HDRISky2.png) - These properties only appear if you enable [advanced properties](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest?subfolder=/manual/advanced-properties.html) and then enable **Backplate**.
PropertySub-property Description
HDRI SkyN/A Assign an HDRI texture to render the sky in HDRP.
Distortion ModeN/A Select how HDRP calculates sky distortion:
None: No distortion.
Procedural: Distorts the sky using uniform wind direction.
Flowmap: Uses a user-provided flowmap for distortion.
N/A Orientation Set the distortion orientation relative to the X-world vector (degrees).
This can be relative to the Global Wind Orientation in the Visual Environment.
N/A Speed Define how fast HDRP scrolls the distortion texture.
This value can be relative to the Global Wind Speed defined in the Visual Environment.
N/A Flowmap Assign a LatLong flowmap for sky UV distortion.
Visible only when you select Flowmap from the Distortion Mode drop-down.
N/A Upper Hemisphere Only Enable if the flowmap distorts only the sky above the horizon.
Visible only when you select Flowmap from the Distortion Mode drop-down.
Intensity ModeN/A Choose how HDRP calculates sky intensity:
Exposure: Based on EV100 exposure.
Multiplier: Applies a flat multiplier.
Lux: Targets a specific Lux value.
N/A Exposure Set the light per unit area applied to the HDRI Sky cubemap.
Visible only when you set Exposure in Intensity Mode from the Intensity Mode drop-down.
N/A Multiplier Set a multiplier for environment light in the scene.
Visible only when you select Multiplier from the Intensity Mode drop-down.
N/A Desired Lux Value Set an absolute intensity for the HDR Texture you set in HDRI Sky, in Lux. This value represents the light received in a direction perpendicular to the ground. This is similar to the Lux unit you use to represent the Sun, so it's complimentary.
Visible only when you select Lux from the Intensity Mode drop-down.
N/A Upper Hemisphere Lux Value Displays the relative intensity, in Lux, for the current HDR texture set in HDRI Sky. The final multiplier HDRP applies for intensity is Desired Lux Value / Upper Hemisphere Lux Value. This field is an informative helper.
This property only appears when you select Lux from the Intensity Mode drop-down.
RotationN/A Use the slider to set the angle to rotate the cubemap, in degrees.
N/A Lock Sun Make the Sun rotate automatically when you move the HDRI Sky, and the HDRI Sky rotate automatically when you rotate the sun.
Update ModeN/A Use the drop-down to set the rate at which HDRP updates the sky environment (using Ambient and Reflection Probes).
On Changed: HDRP updates the sky environment when one of the sky properties changes.
On Demand: HDRP waits until you manually call for a sky environment update from a script.
Realtime: HDRP updates the sky environment at regular intervals defined by the Update Period.
N/A Update Period Set the update interval in seconds. Use 0 for per-frame updates. Visible only when you set the Update Mode to Realtime.
- - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md index da80419f2b5..2c8e8b1bdf0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-camera-component-reference.md @@ -47,35 +47,74 @@ The Camera Inspector includes the following groups of properties: | |**Barrel Clipping** | Use the slider to set the strength of the “cat eye†effect. You can see this effect on bokeh as a result of lens shadowing (distortion along the edges of the frame). This property affects the look of the [Depth of Field](Post-Processing-Depth-of-Field.md) bokeh. | | |**Anamorphism** | Use the slider to stretch the sensor to simulate an anamorphic look. Positive values distort the Camera vertically, negative values distort the Camera horizontally. This property affects the look of the [Depth of Field](Post-Processing-Depth-of-Field.md) bokeh and the [Bloom](Post-Processing-Bloom.md) effect if you enable its *Anamorphic* property. | + ## Rendering -| **Property** ||**Description**| -| --------- | - | :-------------------------------------------------------------------- | -| **Allow Dynamic Resolution** || Enable the checkbox to make this Camera support dynamic resolution for buffers linked to it. | -| **Allow DLSS** || Enable this property to allow this Camera to use NVIDIA Deep Learning Super Sampling (DLSS). To use NVIDIA DLSS, enable the NVIDIA package (com.unity.modules.nvidia) in your Unity project and enable DLSS in your [HDRP Asset](HDRP-Asset.md). | -| |**Use Custom Quality** | Indicates whether this Camera overrides the DLSS quality mode specified in the [HDRP Asset](HDRP-Asset.md). When you enable this property, HDRP uses the **Mode** property. | -| |**Mode** | Specifies the performance quality mode override for performance quality mode for DLSS.The options are:
• **Balanced**: - Balances performance with quality.
• **MaxPerf**: Fast performance, lower quality.
• **MaxQuality**: High quality, lower performance.
• **UltraPerformance**: Fastest performance, lowest quality.
This property only appears if you enable **Use Custom Quality**. | -| |**Use Custom Attributes** | Enable this property to make this Camera override the DLSS attributes specified in the [HDRP Asset](HDRP-Asset.md). | -| |**Use Optimal Settings** | Enable this property to allow DLSS to automatically control the sharpness and screen percentage for this Camera. This property only appears if you enable **Use Custom Attributes**. | -| |**Sharpness** | The pixel sharpness that the DLSS upscaler uses for this Camera.
This property only appears if you enable **Use Custom Attributes**. | -| **Post Anti-aliasing** || This Camera can use [multisample anti-aliasing (MSAA)](Anti-Aliasing.md#MSAA), at the same time as post-process anti-aliasing. This is because MSAA is a hardware feature. To control post-process anti-aliasing, use the [Frame Settings](Frame-Settings.md).
• **No Anti-aliasing**: This Camera processes MSAA but doesn't process any post-process anti-aliasing.
• **Fast Approximate Anti-aliasing (FXAA)**: Smooths edges on a per-pixel level. This is the most efficient anti-aliasing technique in HDRP.
• **Temporal Anti-aliasing (TAA)**: Uses frames from a history buffer to smooth edges more effectively than fast approximate anti-aliasing.
• **Subpixel Morphological Anti-aliasing (SMAA)**: Finds patterns in borders of the image and blends the pixels on these borders according to the pattern. | -|| **SMAA Quality Preset** | Use the drop-down to select the quality of SMAA. The difference in resource intensity is small between **Low** and **High**.
• **Low**: The lowest SMAA quality. This is the least resource-intensive option.
• **Medium**: A good balance between SMAA quality and resource intensity.
• **High**: The highest SMAA quality. This is the most resource-intensive option. This property only appears when you select **Subpixel Morphological Anti-aliasing (SMAA)** from the **Anti-aliasing** drop-down. | -| |**TAA Quality Preset** | The quality level of TAA. The default settings for higher presets aren't guaranteed to produce better results than lower presets. The result depends on the content in your scene. However, the high quality presets give you more options that you can use to adapt the anti-aliasing to your content. | -| |**TAA Sharpening Mode** | Specifies the sharpening method to use.
• **Low quality**: Provides fast sharpening, but might produce lower quality results or artifacts compared to the other sharpening methods.
• **Post Sharpen**: Provides higher-quality sharpening than **Low Quality**, but is more resource-intensive.
• **Contrast Adaptive Sharpening**: AMD's FidelityFX Contrast Adaptive Sharpening. Provides higher-quality sharpening than **Low Quality**, but gives you less control. | -| |**TAA Sharpen Strength** | The intensity of the sharpening filter that Unity applies to the result of TAA. This reduces the soft look that TAA can produce. High values can cause ringing issues (dark lines along the edges of geometry) | -| |**TAA Ringing Reduction** | Controls how much of the sharpening result HDRP takes from the result without ringing. Reduces unnatural dark outlines, but might also decrease sharpening. Values above 0.0 lead to a small extra cost. This property appears only when you set **TAA Sharpening Mode** to **Post Sharpen** | -| |**TAA History Sharpening** | This strength of the history sharpening effect. When this value is above 0, Unity samples the history buffer with a bicubic filter that sharpens the result of TAA. You can use this to produce a sharper image during motion. A high value can cause ringing issues (dark lines along the edges of geometry).If you set this value to 0, it increases the performance of TAA because Unity simplifies the history buffer sampling| -| |**TAA Anti-flickering** | The strength of TAA's anti-flickering effect. Use this to reduce some cases of flickering. When you increase this value, the risk o [ghosting](Glossary.md#Ghosting) or [disocclusion](Glossary.md#Disocclusion) artifacts.
This property is only visible when **TAA Quality Preset** is set to a value above **Low**. | -| |**TAA Speed rejection** | Controls the threshold at which Unity rejects history buffer contribution for TAA. You can increase this value to remove ghosting artifacts. This works because Unity rejects history buffer contribution when a GameObject's current speed and reprojected speed history are very different. When you increase this value, it might also reintroduce some aliasing for fast-moving GameObjects. Controls the threshold at which Unity rejects history buffer contribution for TAA. When you set this value to 0, it increases the performance of TAA because Unity doesn't process speed rejection. | -| |**TAA Anti-ringing** | Enable this property to reduce the ringing artifacts caused by high history sharpening values. When you enable this property, it reduces the effect of the history sharpening. This property is only visible when TAA Quality Preset is set to High. | -| |**TAA Base blend factor** | Determines how much the history buffer is blended together with current frame result. Higher values means more history contribution, which leads to better anti aliasing, but also more prone to ghosting.
This property is only visible when Advanced properties are displayed for the camera. | -| |**TAA Jitter Scale** | Controls the scale of jitter, which is the random offset HDRP applies to the camera position each frame. Use a low value to reduce flickering and jittering at the cost of more aliasing. | -| **Dithering** | |Enable the checkbox to apply 8-bit dithering to the final render. This can help reduce banding on wide gradients and low light areas. | -| **Stop NaNs** | |Enable the checkbox to make this Camera replace values that aren't a number (NaN) with a black pixel. This stops certain effects from breaking, but is a resource-intensive process. Only enable this feature if you experience NaN issues that you can not fix. | -| **Culling Mask** | |Use the drop-down to set the Layer Mask that the Camera uses to exclude GameObjects from the rendering process. The Camera only renders Layers that you include in the Layer Mask. | -| **Occlusion Culling** | |Enable the checkbox to make this Camera not render GameObjects that aren't currently visible. For more information, see the [Occlusion Culling documentation](). | -| **Exposure Target** | |The GameObject to center the [Auto Exposure](Override-Exposure.md) procedural mask around. | +| **Property** | **Description** | +|-|-| +| **HDRP Dynamic Resolution** | Enable the checkbox to make this Camera support dynamic resolution for buffers linked to it. | +| **Allow DLSS** | Enables NVIDIA Deep Learning Super Sampling (DLSS). This property has an effect only if you add DLSS to your [HDRP Asset](HDRP-Asset.md). For more information, refer to [DLSS settings](#dlss-settings). | +| **Allow FSR2** | Enables AMD FidelityFX Super Resolution 2.0 (FSR2). This property has an effect only if you add FSR2 to your [HDRP Asset](HDRP-Asset.md). For more information, refer to [FSR2 settings](#fsr2-settings). | +| **Override FSR Sharpness** | Enables an **FSR Sharpness** slider that lets you set the sharpness of the FidelityFX Super Resolution 1.0 (FSR1) upscale filter. A value of 1.0 means maximum sharpness. A value of 0 means no sharpening. This property has an effect only if you set **Default Upscale Filter** to **FSR1** in your [HDRP Asset](HDRP-Asset.md). | +| **Post Anti-aliasing** | This Camera can use [multisample anti-aliasing (MSAA)](Anti-Aliasing.md#MSAA), at the same time as post-process anti-aliasing. This is because MSAA is a hardware feature. To control post-process anti-aliasing, use the [Frame Settings](Frame-Settings.md).
• **No Anti-aliasing**: This Camera processes MSAA but doesn't perform any post-process anti-aliasing.
• **Fast Approximate Anti-aliasing (FXAA)**: Smooths edges on a per-pixel level. This is the most efficient anti-aliasing technique in HDRP.
• **Temporal Anti-aliasing (TAA)**: Uses frames from a history buffer to smooth edges more effectively than fast approximate anti-aliasing.
• **Subpixel Morphological Anti-aliasing (SMAA)**: Finds patterns in borders of the image and blends the pixels on these borders according to the pattern. | +| **Dithering** | Enable the checkbox to apply 8-bit dithering to the final render. This can help reduce banding on wide gradients and low light areas. | +| **Stop NaNs** | Enable the checkbox to make this Camera replace values that aren't a number (NaN) with a black pixel. This stops certain effects from breaking, but is a resource-intensive process. Only enable this feature if you experience NaN issues that you can't fix. | +| **Culling Mask** | Use the drop-down to set the Layer Mask that the Camera uses to exclude GameObjects from the rendering process. The Camera only renders Layers that you include in the Layer Mask. | +| **Occlusion Culling** | Enable the checkbox to make this Camera not render GameObjects that aren't currently visible. For more information, refer to the [Occlusion Culling documentation](). | +| **Exposure Target** | The GameObject to center the [Auto Exposure](Override-Exposure.md) procedural mask around. | + + +### DLSS settings + +The following properties are available only if you enable **Allow DLSS**. + +| **Property** | **Description** | +|-|-| +| **Use DLSS Custom Quality** | Indicates whether this Camera overrides the DLSS quality mode specified in the [HDRP Asset](HDRP-Asset.md). | +| **DLSS Mode** | Sets whether DLSS prioritizes quality or performance. The options are:
  • **Maximum Quality**
  • **Balanced**
  • **Maximum Performance**
  • **Ultra Performance**
This property is available only if you enable **Use DLSS Custom Quality**. | +| **Use DLSS Custom Attributes** | Overrides the DLSS properties specified in the [HDRP Asset](HDRP-Asset.md), on this camera. | +| **DLSS Use Optimal Settings** | Enables DLSS controlling sharpness and screen percentage automatically. This property is available only if you enable **Use DLSS Custom Attributes**. | + + +### FSR2 settings + +The following properties are available only if you enable **Allow FSR2**. + +| **Property** | **Description** | +|-|-| +| **Use FSR2 Custom Quality** | Indicates whether this camera overrides the FSR2 quality mode specified in the [HDRP Asset](HDRP-Asset.md). | +| **FSR2 Use Optimal Settings** | Enables the **FSR2 Mode** property. This property is available only if you enable **Use FSR2 Custom Quality**. | +| **FSR2 Mode** | Sets whether FSR2 prioritizes quality or performance. The options are:
  • **Quality**
  • **Balanced**
  • **Performance**
  • **Ultra Performance**
This property is available only if you enable **FSR2 Use Optimal Settings**. | +| **Use FSR2 Custom Attributes** | Overrides the FSR2 properties specified in the [HDRP Asset](HDRP-Asset.md), on this camera. | +| **FSR2 Enable Sharpness** | Enables an **FSR2 Sharpness** slider that lets you set the sharpness of the FSR2 upscale filter. A value of 1.0 means maximum sharpness. A value of 0 means no sharpening. You can also set the sharpness in your [HDRP Asset](hdrp-asset.md). This property is available only if you enable **Use FSR2 Custom Attributes**. | + + +### TAA settings + +The following properties are available only if you set **Post Anti-aliasing** to **Temporal Anti-aliasing (TAA)**. + +| **Property** | **Description** | +|-|-| +| **Quality Preset** | The quality level of TAA. The default settings for higher presets aren't guaranteed to produce better results than lower presets. The result depends on the content in your scene. However, the high quality presets give you more options that you can use to adapt the anti-aliasing to your content. | +| **Sharpening Mode** | Specifies the sharpening method to use.
• **Low quality**: Provides fast sharpening, but might produce lower quality results or artifacts compared to the other sharpening methods.
• **Post Sharpen**: Provides higher-quality sharpening than **Low Quality**, but is more resource-intensive.
• **Contrast Adaptive Sharpening**: AMD's FidelityFX Contrast Adaptive Sharpening. Provides higher-quality sharpening than **Low Quality**, but gives you less control. | +| **Sharpen Strength** | The intensity of the sharpening filter that Unity applies to the result of TAA. This reduces the soft look that TAA can produce. High values can cause ringing issues (dark lines along the edges of geometry) | +| **Ringing Reduction** | Controls how much of the sharpening result HDRP takes from the result without ringing. Reduces unnatural dark outlines, but might also decrease sharpening. Values above 0.0 lead to a small extra cost. This property appears only when you set **TAA Sharpening Mode** to **Post Sharpen** | +| **History Sharpening** | Sets the strength of the history sharpening effect. When this value is above 0, Unity samples the history buffer with a bicubic filter that sharpens the result of TAA. You can use this to produce a sharper image during motion. A high value can cause ringing issues (dark lines along the edges of geometry). If you set this value to 0, it increases the performance of TAA because Unity simplifies the history buffer sampling| +| **Anti-flickering** | Sets the strength of TAA's anti-flickering effect. Use this to reduce some cases of flickering. Increasing this value might lead to more [ghosting](Glossary.md#Ghosting) or [disocclusion](Glossary.md#Disocclusion) artifacts.
This property is only visible when **TAA Quality Preset** is set to a value above **Low**. | +| **Speed rejection** | Controls the threshold at which Unity rejects history buffer contribution for TAA. You can increase this value to remove ghosting artifacts. This works because Unity rejects history buffer contribution when a GameObject's current speed and reprojected speed history are very different. When you increase this value, it might also reintroduce some aliasing for fast-moving GameObjects. Setting this value to 0 increases the performance of TAA because Unity doesn't process speed rejection. | +| **Anti-ringing** | Enable this property to reduce the ringing artifacts caused by high history sharpening values. When you enable this property, it reduces the effect of the history sharpening. This property is only visible when TAA Quality Preset is set to **High**. | +| **Base blend factor** | Determines how much the history buffer is blended together with the current frame result. Higher values mean more history contribution, which leads to better anti-aliasing, but is also more prone to ghosting.
This property is only visible when Advanced properties are displayed for the camera. | +| **Jitter Scale** | Controls the scale of jitter, which is the random offset HDRP applies to the camera position at each frame. Use a low value to reduce flickering and jittering at the cost of more aliasing. | + + +### SMAA settings + +The following properties are available only if you set **Post Anti-aliasing** to **Subpixel Morphological Anti-aliasing (SMAA)**. + +| **Property** | **Description** | +|-|-| +| **SMAA Quality Preset** | Use the drop-down to select the quality of SMAA. The difference in resource intensity is small between **Low** and **High**.
• **Low**: The lowest SMAA quality. This is the least resource-intensive option.
• **Medium**: A good balance between SMAA quality and resource intensity.
• **High**: The highest SMAA quality. This is the most resource-intensive option. This property only appears when you select **Subpixel Morphological Anti-aliasing (SMAA)** from the **Anti-aliasing** drop-down. | ## Environment diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-scene-view-camera-settings-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-scene-view-camera-settings-reference.md index d2680be0fef..1ed2e3eae0f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-scene-view-camera-settings-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/hdrp-scene-view-camera-settings-reference.md @@ -6,29 +6,9 @@ For information on the Scene view Camera settings menu and how to use it, refer ## Properties -
PropertyOptionSub-option Description
BackplateN/AN/A Projects the lower hemisphere of the HDRI onto a selected shape (Rectangle, Circle, Ellipse, or Infinite plane).
N/A TypeN/A Specifies the shape of the backplate.

Disc: Projects the bottom of the HDRI texture onto a disc.

Rectangle: Projects the bottom of the HDRI texture onto a rectangle.

Ellipse: Projects the bottom of the HDRI texture onto an ellipse.

Infinite: Projects the bottom of the HDRI texture onto an infinite plane.
N/A Ground LevelN/A Specifies the height of the ground in the scene.
N/A ScaleN/A The scale of the backplate. HDRP uses the X and Y values of this property to scale the backplate (for Ellipse X and Y must be different).
N/A ProjectionN/A HDRP uses this number to control the projection of the bottom hemisphere of the HDRI on the backplate. Small projection distance implies higher pixel density with more distortion, large projection distance implies less pixel density with less distortion.
N/A RotationN/A Rotates the physical backplate.
N/A Texture RotationN/A Rotates the HDRI texture projected onto the backplate.
N/A Texture OffsetN/A Offsets the texture projected onto the backplate.
N/A Blend AmountN/A The percentage of the transition between the backplate and the background HDRI. 0 means no blending, 25 means the blending starts at the end of the boundary of the backplate, 50 means the blending starts from the middle of the backplate and 100 means the transition starts from the center of the backplate with a smoothstep.
N/A Point/Spot ShadowN/A Indicates whether the backplate receives shadows from point/spot Lights.
N/A Directional ShadowN/A Enables shadows from the main directional light on the backplate.
N/A Area ShadowN/A Indicates whether the backplate receives shadows from area Lights.
N/A Shadow TintN/A Specifies the color to tint shadows cast onto the backplate.
N/A Reset ColorN/A Resets the saved Shadow Tint for the shadow. HDRP calculates a new default shadow tint when the HDRI changes.
- - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
Camera Anti-aliasingSpecifies the method the Scene view Camera uses for post-process anti-aliasing. The options are:
No Anti-aliasing: This Camera can process MSAA but doesn't process any post-process anti-aliasing.
Fast Approximate Anti-aliasing (FXAA): Smooths edges on a per-pixel level. This is the least resource-intensive anti-aliasing technique in HDRP.
Temporal Anti-aliasing (TAA): Uses frames from a history buffer to smooth edges more effectively than fast approximate anti-aliasing.
Subpixel Morphological Anti-aliasing (SMAA): Finds patterns in borders of the image and blends the pixels on these borders according to the pattern.
Camera Stop NaNsMakes the Scene view Camera replace values that aren't a number (NaN) with a black pixel. This stops certain effects from breaking but is a resource-intensive process.
Override ExposureSpecifies whether to override the scene's exposure with a specific value.
Scene ExposureThe exposure value the Scene view Camera uses to override the scene's exposure.
This property only appears when you enable Override Exposure.
+| **Property** | **Description** | +|--------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Camera Anti-aliasing** | Specifies the method the Scene view Camera uses for post-process anti-aliasing. The options are:
  • No Anti-aliasing: This Camera can process MSAA but doesn't process any post-process anti-aliasing.
  • Fast Approximate Anti-aliasing (FXAA): Smooths edges on a per-pixel level. This is the least resource-intensive anti-aliasing technique in HDRP.
  • Temporal Anti-aliasing (TAA): Uses frames from a history buffer to smooth edges more effectively than fast approximate anti-aliasing.
  • Subpixel Morphological Anti-aliasing (SMAA): Finds patterns in borders of the image and blends the pixels on these borders according to the pattern.
| +| **Camera Stop NaNs** | Makes the Scene view Camera replace values that aren't a number (NaN) with a black pixel. This stops certain effects from breaking but is a resource-intensive process. | +| **Override Exposure** | Specifies whether to override the scene's exposure with a specific value.
  • Scene Exposure: The exposure value the Scene view Camera uses to override the scene's exposure. This property only appears when you enable Override Exposure.
| + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/how-hdrp-calculates-color-for-reflection-and-refraction.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/how-hdrp-calculates-color-for-reflection-and-refraction.md index 434ba9b8cd5..8d23a036b1c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/how-hdrp-calculates-color-for-reflection-and-refraction.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/how-hdrp-calculates-color-for-reflection-and-refraction.md @@ -49,12 +49,12 @@ For example, if you use ray-traced reflections and set **Minimum Smoothness** to - Areas with a smoothness value larger than or equal to 0.9 will use the [ray-traced reflections hierarchy](#hierarchy-if-you-use-ray-traced-reflections). - Areas with a smoothness value less than 0.9 will use only the [specular hierarchy](#specular). -![](Images/refraction-hierarchy-smoothness.png)
+![A reflective silver metallic sphere floating next to a bright white capsule.](Images/refraction-hierarchy-smoothness.png)
The sphere has a **Smoothness** value of less than 0.9, so it uses the [specular hierarchy](#specular). This means the sphere falls back to using Reflection Probes, and the capsule doesn't appear in reflections because it's a dynamic object.
## How reflections inside reflections work -![](Images/refraction-hierarchy-reflections-inside-reflections.png)
+![A bright white capsule, with a reflective silver metallic sphere on the left and a reflective gold metallic sphere on the right. The capsule is visible in the reflection on the surface of the gold sphere.](Images/refraction-hierarchy-reflections-inside-reflections.png)
In the above Scene: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/index.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/index.md index afe17158768..050880fb16f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/index.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/index.md @@ -1,6 +1,6 @@ # High Definition Render Pipeline overview -![](Images/Index1Main.png) +![A sample scene rendered with the High Definition Render Pipeline.](Images/Index1Main.png) The High Definition Render Pipeline (HDRP) is a high-fidelity Scriptable Render Pipeline built by Unity to target modern (Compute Shader compatible) platforms. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/install-hdrp.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/install-hdrp.md index ae72d5b1c5e..84cef19e089 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/install-hdrp.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/install-hdrp.md @@ -18,7 +18,7 @@ Unity provides an HDRP Template Project which you can use to get set up with HDR Unity creates a Project and automatically installs the HDRP package, and all its dependencies. After Unity opens the Template Project, you can see the main Scene. -![](Images/GettingStarted1.png) +![A contemporary room brightly lit by a skylight, with a display of vegetation in a glass box.](Images/GettingStarted1.png) This template is a great starting point for projects aiming for high-end graphics. It includes multiple physically based lighting setups to help you realistically illuminate environments with HDRP. It also includes examples for many of HDRP's features such as [Decals](decals.md), [Volumes](understand-volumes.md), and physically accurate Materials. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/introduction-to-foam.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/introduction-to-foam.md new file mode 100644 index 00000000000..1a8d7ddfa51 --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/introduction-to-foam.md @@ -0,0 +1,39 @@ +# Introduction to foam + +There are two types of foam you may want to create, which you can implement in two different ways: + +- To implement wind-driven foam on a whole water surface, use simulation foam. +- To implement local foam in the wake of a GameObject, such as a sailing boat or an object falling into a pool, use a water decal. + +![HDRP water sample Island scene](Images/water-sample-island-scene.jpg) + +HDRP water sample Island scene + +## Wind-driven foam on the whole water surface + +When you create a new water ocean, sea, or lake, simulation foam appears at or underneath the whole water surface, depending on the wind speed profile and the amount of foam you set. + +![Foam amount is zero or wind profile doesn't create foam](Images/foam-on-the-crests-of-waves-amount-zero.jpg) + +Foam does not appear if the foam amount is zero or if the wind profile doesn't generate enough turbulence to create foam. + +![Foam amount is greater than zero and wind profile creates foam](Images/foam-on-the-crests-of-waves-amount-one.jpg) + +Foam appears when the foam amount is greater than zero and the wind profile generates enough turbulence to create foam. + +### Deep foam and surface foam + +The following types of foam can appear at or underneath the water surface: + +- Surface foam: Found at or near the water surface. Forms light streaks and patches. Influenced by **Distant Wind Speed** and **Wind Speed Dimmer**. + +- Deep foam: Found beneath the water surface. Forms dark streaks and patches. Influenced by **Distant Wind Speed** and **Wind Speed Dimmer**. + +## Local foam in the wake of a GameObject + +You can create foam behind GameObjects to simulate the trail left by a moving boat. + +You can also create static, circular foam patches to simulate foam appearing in coastal areas or tidal flats, or when an object falls into the water. + +![Local foam in the wake of a GameObject](Images/foam-in-the-wake-of-a-gameobject.jpg) + diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/introduction-to-water-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/introduction-to-water-decals.md new file mode 100644 index 00000000000..a6b669f9b1a --- /dev/null +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/introduction-to-water-decals.md @@ -0,0 +1,14 @@ +# Water decals + +To create foam, deformation, or water currents, you can use a water decal. Water decals add localized water effects to a specific region in a 3D scene. This region is anchored in world space to a GameObject transform or, by default, to the camera. Use water decals to easily replicate effects across multiple regions, such as around islands or shorelines, without re-authoring textures. + +For example, you can use water decals to add foam, attenuate swell, fine-tune currents, or create shoreline waves around an island. Then, you can replicate this setup by duplicating the decals to apply the same localized effects to another island, without re-authoring textures. + +![Example: Water decal features applied to a region in a 3D-rendered scene of an island surrounded by the sea. Multiple water decals add deformation, foam, and currents around the island. Simulation and foam masks reduce water effects in specific regions.](Images/introduction-to-water-decals.jpg) + +Example: Water decal features applied to a region in a 3D-rendered scene of an island surrounded by the sea. Multiple water decals add deformation, foam, and currents around the island. Simulation and foam masks reduce water effects in specific regions. + +## Additional Resources + +- [Decals](decals.md) +- [Enable mask and current water decals](enable-mask-and-current-water-decals.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-material.md index da537265156..1f76decce95 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-material.md @@ -4,7 +4,7 @@ The Layered Lit Shader allows you to stack up to four Materials on the same Game The Layered Lit Shader is perfect for photogrammetry. For a tutorial on how to use it in a photogrammetry workflow, see the [Photogrammetry with the Layered Shader Expert Guide](). -![](Images/HDRPFeatures-LayeredLitShader.png) +![Layered lit material sample.](Images/HDRPFeatures-LayeredLitShader.png) ## Creating a Layered Lit Material diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-tessellation-material-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-tessellation-material-inspector-reference.md index d99fae63ffd..6181837adec 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-tessellation-material-inspector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/layered-lit-tessellation-material-inspector-reference.md @@ -12,8 +12,8 @@ These properties control the overall look of your Material's surface and how Uni Property - - + Option + Sub-option Description diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lights-placement-tool.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lights-placement-tool.md index 47640ee969b..7e33ee67083 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lights-placement-tool.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lights-placement-tool.md @@ -10,7 +10,7 @@ This tool does not affect any Cameras in your Scene. The Scene View Camera retur To use the Light Placement Tool: 1. Select a Light GameObject in the inspector window. -2. In the Scene View Toolbar, select the Light Placement Tool icon. ![](Images/light-placement-tool-icon.png). The Scene View Camera automatically changes position to look through the selected Light. +2. In the Scene View Toolbar, select the Light Placement Tool icon. ![Icon of a light bulb and a vector](Images/light-placement-tool-icon.png). The Scene View Camera automatically changes position to look through the selected Light. 4. Use the Camera controls (pan, orbit, zoom) to adjust the Light’s position. 5. Use the Light’s gizmos to adjust its properties. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-master-stack-reference.md index c7de37d966d..d605e6ec09e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-master-stack-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-master-stack-reference.md @@ -122,8 +122,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add Property - - + Option + Sub-option Description diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-material.md index 9ede05fa899..250c3f645e6 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-material.md @@ -2,7 +2,7 @@ The Lit Shader and the Lit Master Stack lets you easily create realistic materials in the High Definition Render Pipeline (HDRP). They include options for effects like subsurface scattering, iridescence, vertex or pixel displacement, and decal compatibility. For more information about Materials, Shaders, and Textures, see the [Unity User Manual](https://docs.unity3d.com/Manual/Shaders.html). -![](Images/HDRPFeatures-LitShader.png) +![Example of realistic materials created with the Lit Shader and the Lit Master Stack.](Images/HDRPFeatures-LitShader.png) @@ -10,8 +10,6 @@ The Lit Shader and the Lit Master Stack lets you easily create realistic materia To create a new Lit Material, navigate to your Project's Asset window, right-click in the window and select **Create > Material**. This adds a new Material to your Unity Project’s Asset folder. When you create new Materials in HDRP, they use the Lit Shader by default. -![](Images/HDRPFeatures-LitShader.png) - Refer to [Lit Material Inspector reference](lit-material-inspector-reference.md) for more information. ## Creating a Lit Shader Graph @@ -25,4 +23,4 @@ To create a Lit material in Shader Graph, use one of the following methods: * Create a new Shader Graph. Go to **Assets** > **Create** > **Shader Graph** > **HDRP** and select **Lit Shader Graph**. -Refer to [Lit Master Stack reference](lit-master-stack-reference.md) for more information. \ No newline at end of file +Refer to [Lit Master Stack reference](lit-master-stack-reference.md) for more information. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-tessellation-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-tessellation-material.md index 00c7bfbe389..ad0702c1b02 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-tessellation-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/lit-tessellation-material.md @@ -2,11 +2,11 @@ The Lit Tessellation Shader allows you to create Materials that use tessellation to provide adaptive vertex density for meshes. This means that you can render more detailed geometry without the need to create a model that contains a lot of vertices. This Shader also includes options for effects like subsurface scattering, iridescence, vertex or pixel displacement, and decal compatibility. For more information about Materials, Shaders, and Textures, see the[ Unity User Manual](https://docs.unity3d.com/Manual/Shaders.html). -![](Images/LitTessellationShader1.png) +![Tessellation Mode set to None (off).](Images/LitTessellationShader1.png) **Tessellation Mode** set to **None** (off). -![](Images/LitTessellationShader2.png) +![Tessellation Mode set to Phong (on).](Images/LitTessellationShader2.png) **Tessellation Mode** set to **Phong** (on). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/master-stack-water.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/master-stack-water.md index 49acbd56899..88162871e08 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/master-stack-water.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/master-stack-water.md @@ -2,7 +2,7 @@ Use the Water Master Stack to render custom physically based water Material in the High Definition Render Pipeline (HDRP). The Water Master Stack approximately models a volumetric water medium, and includes properties to render effects such as caustics, scattering, and refraction. -![](Images/HDRPFeatures-WaterMaterial.png) +![Water rendering in Unity.](Images/HDRPFeatures-WaterMaterial.png) ## Create a Water shader graph @@ -53,15 +53,15 @@ When you create a new Water Master Stack, the Vertex Context contains the follow UV0 Water properties packed into a UV coordinate set for the vertex context. - - +N/A +N/A UV1 Water properties packed into a UV coordinate set for the vertex context. - - +N/A +N/A diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/modify-materials-at-runtime.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/modify-materials-at-runtime.md index 8a6aaf65250..da3bc995135 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/modify-materials-at-runtime.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/modify-materials-at-runtime.md @@ -77,6 +77,4 @@ To make all Shader Variants you need available at runtime, you need to ensure Un 1. You can record the shader variants used during a play session and store them in a **Shader Variant Collection** asset. To do that, navigate to the Project Settings window, open the Graphics tab and select **Save to asset…** This will build a collection containing all Shader Variants currently in use and save them out as an asset. You must then add this asset to the list of Preloaded Shaders for the variants to be included in a build. -![](Images/shader-variants.png) - 2. You can include at least one Material using each variant in your Assets folder. You must use this Material in a scene or place it in your Resources Folder, otherwise Unity ignores this Material when it builds the project. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-limitations.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-limitations.md index 17b6a069939..d3689cdc328 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-limitations.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-limitations.md @@ -16,7 +16,8 @@ HDRP path tracing in Unity currently has the following limitations: - Local Volumetric Fog. - Tessellation. - Translucent Opaque Materials. - - Several of HDRP's Materials. This includes Eye, Hair, and Decal. + - Several of HDRP's Materials. This includes Eye and Hair. + - Emissive [Decals](decals.md). To disable emission, go to the [Decal Material Inspector window](decal-material-inspector-reference.md) and disable **Affect Emissive**. - Per-pixel displacement (parallax occlusion mapping, height map, depth offset). - Emissive Decals. - Volumetric Clouds. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-setup.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-setup.md index 38aee348937..27e65f42d3f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-setup.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-setup.md @@ -11,7 +11,7 @@ Path tracing uses the [Volume](understand-volumes.md) framework, so to enable th 3. In the Inspector for the Path Tracing Volume Override, set **State** to **Enabled**. If you don't see **State**, make sure your HDRP Project supports ray tracing. For information on setting up ray tracing in HDRP, see [getting started with ray tracing](Ray-Tracing-Getting-Started.md). This switches HDRP to path-traced rendering and you should initially see a noisy image that converges towards a clean result. 4. If the image doesn't converge over time, select the drop-down next to the effect toggle and enable Always Refresh. -![](Images/RayTracingPathTracing3.png) +![Gizmo menu with the effect toggle dropdown highlighted.](Images/RayTracingPathTracing3.png) ## Properties diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-understand.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-understand.md index d3c355a9660..7551b698ad0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-understand.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/path-tracing-understand.md @@ -6,11 +6,11 @@ It enables HDRP to compute various effects (such as hard or soft shadows, mirror A notable downside to path tracing is noise. Noise results from the random nature of the path tracing process; at each surface interaction, a new direction is chosen randomly. Noise vanishes as more paths accumulate and converge toward a clean image. For more information about path tracing limitations in HDRP, see [Unsupported features of path tracing](Ray-Tracing-Getting-Started.md#unsupported-features-of-path-tracing). -![](Images/RayTracingPathTracing1.png) +![Noisy image with Maximum Samples set to 1.](Images/RayTracingPathTracing1.png) Noisy image with **Maximum Samples** set to 1 -![](Images/RayTracingPathTracing2.png) +![Clean image with Maximum Samples set to 256.](Images/RayTracingPathTracing2.png) Clean image with **Maximum Samples** set to 256 @@ -30,11 +30,11 @@ This is because path tracing in HDRP implements more precise light transport sim The images below display the difference between transparent, double-sided materials in a rasterized and a path-traced scene: -![Surface_Options](Images/HDRP_PathtracingBoxes_Raster.png) +![GameObjects without path tracing (rasterized).](Images/HDRP_PathtracingBoxes_Raster.png) GameObjects without path tracing (rasterized). -![Surface_Options](Images/HDRP_PathtracingBoxes_PathTraced.png) +![GameObjects with path tracing enabled.](Images/HDRP_PathtracingBoxes_PathTraced.png) GameObjects with path tracing enabled. @@ -46,11 +46,11 @@ When you use path tracing, the **Double-Sided** property (menu: **Inspector** > The following images display the same GameObjects with a single-sided Material and a double-sided material: -![Surface_Options](Images/HDRP_PathtracingBoxes_SingleSided.png) +![GameObjects with a single-sided Material and path tracing enabled.](Images/HDRP_PathtracingBoxes_SingleSided.png) GameObjects with a single-sided Material and path tracing enabled -![Surface_Options](Images/HDRP_PathtracingBoxes_DoubleSided.png) +![GameObjects with a double-sided Material and path tracing enabled.](Images/HDRP_PathtracingBoxes_DoubleSided.png) GameObjects with a double-sided Material and path tracing enabled @@ -62,7 +62,7 @@ Path tracing changes the way refraction models on a Lit Material behave. To change the refraction model a Lit Material uses, in the **Transparency Inputs** section, select a model from the **Refraction model** dropdown, displayed in the following image: -![Refraction_model](Images/refraction_model.png) +![Refraction_model.](Images/refraction_model.png) The following table describes how each refraction model behaves when you enable path tracing: @@ -72,11 +72,11 @@ The following table describes how each refraction model behaves when you enable | **Thin** | A thin surface type with [infinitesimal]() thickness. Select this for thin, window-like surfaces. When you enable path tracing, the behavior of the **Thin** refraction model behaves the same as in rasterization. | This refraction model is compatible with a double-sided Material that has its **Normal mode** set to **Flip** or **Mirror**. | | **None** | A thin, refractive surface hardcoded to be smooth to simulate alpha blending. When you enable path tracing, the behavior of the **None** refraction model behaves the same as in rasterization. | This refraction model is compatible with a double-sided Material that has its **Normal mode** set to **Flip** or **Mirror**. | -![](Images/HDRP_PathtracingBalls_Raster.png) +![From left to right, a GameObject with Sphere, Box, and Thin mode without path tracing (rasterized).](Images/HDRP_PathtracingBalls_Raster.png) From left to right, a GameObject with **Sphere**, **Box,** and **Thin** mode without path tracing (rasterized). -![](Images/HDRP_PathtracingBalls_PathTraced.png) +![From left to right, a GameObject with Sphere, Box, and Thin mode with path tracing enabled.](Images/HDRP_PathtracingBalls_PathTraced.png) From left to right, a GameObject with **Sphere**, **Box,** and **Thin** mode with path tracing enabled. @@ -87,15 +87,15 @@ For [subsurface scattering's](skin-and-diffusive-surfaces-subsurface-scattering. 1. Open the **Surface Options** window. 2. Enable the **Double-Sided** property (B). -![Surface_Options_B](Images/Surface_Options_B.png) +![Surface_Options_B.](Images/Surface_Options_B.png) The following example images display a sheet of fabric lit from below by a point light. The first image shows a single-sided surface, and the second shows a double-sided surface: -![](Images/Path-traced-SSS-Single-sided.png) +![A single-sided surface with Transmission disabled.](Images/Path-traced-SSS-Single-sided.png) A single-sided surface with Transmission disabled. -![](Images/Path-traced-SSS-Double-sided.png) +![A double-sided surface with Transmission enabled.](Images/Path-traced-SSS-Double-sided.png) A double-sided surface with Transmission enabled. @@ -179,4 +179,4 @@ public class exampleBehavior : MonoBehaviour } ``` -This script allows you to render a first batch of images with 512 samples and a seed offset of zero by setting the Seed mode to custom. A second batch of images is then generated with the Seed offset set to 512 to ensure different random numbers. By doing this, the images are added together and the end result is more converged. \ No newline at end of file +This script allows you to render a first batch of images with 512 samples and a seed offset of zero by setting the Seed mode to custom. A second batch of images is then generated with the Seed offset set to 512 to ensure different random numbers. By doing this, the images are added together and the end result is more converged. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/physically-based-sky-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/physically-based-sky-volume-override-reference.md index 5f70e592a2d..6d8937705a2 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/physically-based-sky-volume-override-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/physically-based-sky-volume-override-reference.md @@ -4,7 +4,7 @@ The Physically Based Sky Volume Override lets you configure how the High Definit Refer to [Create a physically based sky](create-a-physically-based-sky.md) for more information. -![](Images/Override-PhysicallyBasedSky2.png) +![A forest in daytime, with a clear sky and a hazy sun.](Images/Override-PhysicallyBasedSky2.png) ## Understand the sky model diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-concept.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-concept.md index 797503a0456..10d43f02325 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-concept.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-concept.md @@ -26,7 +26,7 @@ Adaptive Probe Volumes have the following advantages: ![Two comparison scenes of a red car model. The left scene uses Light Probe Groups, so each part of the car is a different shade of red. The right scene uses Adaptive Probe Volumes, so each part of the car is the same shade of red. ](Images/probevolumes-per-pixel.png)
The car model is made up of separate GameObjects. The left scene uses Light Probe Groups, which use per-object lighting, so each part of the car samples a single blended probe value. The right scene uses Adaptive Probe Volumes, which use per-pixel lighting, so each part of the car samples its nearest probes. This image uses the ArchVizPRO Photostudio HDRP asset from the Unity Asset Store. -![](Images/probevolumes-reflection-probe-normalization.png)
+![Left: Reflection Probe Normalization is disabled. Right: Reflection Probe Normalization is enabled.](Images/probevolumes-reflection-probe-normalization.png)
In the left scene, Reflection Probe Normalization is disabled. In the right scene, Reflection Probe Normalization is enabled, and there's less specular light leaking on the kitchen cabinet. This image uses the ArchVizPRO Interior Vol.5 HDRP asset from the Unity Asset Store. Adaptive Probe Volumes have the following limitations: @@ -42,7 +42,7 @@ HDRP uses bricks with different sizes to match the amount of geometry in differe The default Light Probe spacing is 1, 3, 9, or 27 m. -![](Images/probevolumes-debug-displayprobebricks1.PNG)
+![Purple volumes contain Light Probes spaced 1 meter apart. Large blue bricks contain Light Probes spaced 3 meters apart.](Images/probevolumes-debug-displayprobebricks1.PNG)
In this screenshot from the Rendering Debugger, the small purple bricks contain Light Probes spaced 1 meter apart, to capture data from high-geometry areas. The large blue bricks contain Light Probes spaced 3 meters apart, to capture data from areas with less geometry. Each pixel of a GameObject samples lighting data from the eight closest Light Probes around it. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-inspector-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-inspector-reference.md index 8f1302cd4fd..287a865df25 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-inspector-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-inspector-reference.md @@ -2,62 +2,13 @@ Select an Adaptive Probe Volume and open the Inspector to view its properties. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
Mode
GlobalHDRP sizes this Adaptive Probe Volume to include all renderers in the scene or Baking Set that have **Contribute Global Illumination** enabled in their Mesh Renderer component. HDRP recalculates the volume size every time you save or generate lighting.
SceneHDRP sizes this Adaptive Probe Volume to include all renderers in the same scene as this Adaptive Probe Volume. HDRP recalculates the volume size every time you save or generate lighting.
LocalSet the size of this Adaptive Probe Volume manually.
SizeSet the size of this Adaptive Probe Volume. This setting only appears when you set Mode to Local.
Subdivision Override
Override Probe SpacingOverride the Probe Spacing set in the Baking Set for this Adaptive Probe Volume. This cannot exceed the Min Probe Spacing and Max Probe Spacing values in the Adaptive Probe Volumes panel in the Lighting window.
Geometry Settings
Override Renderer FiltersEnable filtering by Layer which GameObjects HDRP considers when it generates probe positions. Use this to exclude certain GameObjects from contributing to Adaptive Probe Volume lighting.
Layer MaskFilter by Layer which GameObjects HDRP considers when it generates probe positions.
Min Renderer SizeThe smallest Renderer size HDRP considers when it generates probe positions.
Fill Empty SpacesEnable HDRP filling the empty space between and around Renderers with bricks. Bricks in empty spaces always use the **Max Probe Spacing** value.
+| **Property** | **Description** | +|---|---| +| **Mode** | This property has the following options:
  • **Global**: HDRP sizes this Adaptive Probe Volume to include all renderers in the scene or Baking Set that have **Contribute Global Illumination** enabled in their [Mesh Renderer component](https://docs.unity3d.com/Manual/class-MeshRenderer.html). HDRP recalculates the volume size every time you save or generate lighting.
  • **Scene**: HDRP sizes this Adaptive Probe Volume to include all renderers in the same scene as this Adaptive Probe Volume. HDRP recalculates the volume size every time you save or generate lighting.
  • **Local**: Set the size of this Adaptive Probe Volume manually.
| +| **Size** | Set the size of this Adaptive Probe Volume. This setting only appears when you set **Mode** to **Local**. | +| **Subdivision Override** | **Override Probe Spacing**: Override the Probe Spacing set in the **Baking Set** for this Adaptive Probe Volume. This cannot exceed the **Min Probe Spacing** and **Max Probe Spacing** values in the [Adaptive Probe Volumes panel in the Lighting window](probevolumes-lighting-panel-reference.md). | +| **Geometry Settings** | This property has the following options:
  • **Override Renderer Filters**: Enable filtering by Layer which GameObjects HDRP considers when it generates probe positions. Use this to exclude certain GameObjects from contributing to Adaptive Probe Volume lighting.
  • **Layer Mask**: Filter by Layer which GameObjects HDRP considers when it generates probe positions.
  • **Min Renderer Size**: The smallest [Renderer](https://docs.unity3d.com/ScriptReference/Renderer.html) size HDRP considers when it generates probe positions.
  • **Fill Empty Spaces**: Enable HDRP filling the empty space between and around Renderers with bricks. Bricks in empty spaces always use the **Max Probe Spacing** value.
| + ## Size gizmo @@ -65,5 +16,5 @@ To resize the Adaptive Probe Volume, use one of the handles of the box gizmo in In this screenshot, a red box indicates the box gizmo handles. -![](Images/ProbeVolume-Size-gizmo.png)
+![Inside a cube, a red box highlights the box gizmo handles.](Images/ProbeVolume-Size-gizmo.png)
The resize handles for Adaptive Probe Volumes. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-showandadjust.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-showandadjust.md index eed706afcce..41f55e0dfc1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-showandadjust.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/probevolumes-showandadjust.md @@ -15,16 +15,20 @@ You can do the following: If the Rendering Debugger displays invalid probes when you select **Display Probes**, refer to [Fix issues with Adaptive Probe Volumes](probevolumes-fixissues.md). -![](Images/probevolumes-debug-displayprobes.PNG)
+![The Rendering Debugger with Display Probes enabled.](Images/probevolumes-debug-displayprobes.PNG)
+ The Rendering Debugger with **Display Probes** enabled. -![](Images/probevolumes-debug-displayprobebricks1.PNG)
+![The Rendering Debugger with Display Bricks enabled.](Images/probevolumes-debug-displayprobebricks1.PNG) + The Rendering Debugger with **Display Bricks** enabled. -![](Images/probevolumes-debug-displayprobecells.PNG)
+![The Rendering Debugger with Display Cells enabled.](Images/probevolumes-debug-displayprobecells.PNG) + The Rendering Debugger with **Display Cells** enabled. -![](Images/APVsamplingDebug.png)
+![The Rendering Debugger with Debug Probe Sampling enabled](Images/APVsamplingDebug.png) + The Rendering Debugger with **Debug Probe Sampling** enabled Refer to [Rendering Debugger window reference](rendering-debugger-window-reference.md#ProbeVolume) for more information. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/raytracing-troubleshooting.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/raytracing-troubleshooting.md index 4cc87068da3..edec6e0a39f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/raytracing-troubleshooting.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/raytracing-troubleshooting.md @@ -6,30 +6,23 @@ Incorrect lighting, such as missing shadows or lighting leaks, can occur if the - Lighting leaks and insufficient light contributions can occur in scenes with closed environments, improper probe placement, or incorrect fallback settings. - > [!NOTE] - > For each rasterized pixel, the lighting comes from at least five distinct sources: - > * Bullet text. - > * Directional (global) lights and their shadows - > * Direct local lights (point, spot, area) and their shadows - > * Indirect specular lighting: - > * Screen Space Reflection (SSR)/Ray Traced Reflection (RTR) - > * Planar reflection - > * Reflection probes - > * Sky cubemap - -- Indirect diffuse lighting: - - - Screen Space Global Illumination (SSGI)/Ray-Traced Global Illumination (RTGI) - - - Adaptive Probe Volumes (APV) - - - Light probe groups - - - Lightmaps - - - Ambient probes - -- Fog +To resolve lighting issues, you need to check the following light sources, which contribute to the illumination of each rasterized pixel in your scene: + +* Directional (global) lights and their shadows +* Direct local lights (point, spot, area) and their shadows +* Indirect specular lighting: + * Screen Space Reflection (SSR)/Ray Traced Reflection (RTR) + * Planar reflection + * Reflection probes + * Sky cubemap + +* Indirect diffuse lighting: + * Screen Space Global Illumination (SSGI)/Ray-Traced Global Illumination (RTGI) + * Adaptive Probe Volumes (APV) + * Light probe groups + * Lightmaps + * Ambient probes +* Fog ## Fix missing shadows from directional lights diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-indirect-lighting-controller.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-indirect-lighting-controller.md index 575db9e1f66..5e2131702f2 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-indirect-lighting-controller.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-indirect-lighting-controller.md @@ -1,7 +1,5 @@ # Indirect lighting controller reference -![](Images/Override-IndirectLightingController1.png) - [!include[](snippets/Volume-Override-Enable-Properties.md)] | Property | Description | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-light-anchor.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-light-anchor.md index 80137765a0b..4657e5fd6b9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-light-anchor.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-light-anchor.md @@ -1,7 +1,5 @@ # Light Anchor reference -![](Images/LightAnchor0.png) - ## Properties | **Property** | **Description** | @@ -12,4 +10,4 @@ | **Distance** | Controls the distance between the light and its anchor in world space. | | **Up Direction** | Defines the space of the up direction of the anchor. When you set this value to Local, the Up Direction is relative to the Camera. | | **Anchor Position Override** | Allows you to use a GameObject's [Transform](https://docs.unity3d.com/ScriptReference/Transform.html) as anchor position instead of the LightAnchor's Transform. When the Transform of the GameObject you assigned to this property changes, the Light Anchor's Transform also changes. | -| **Common** | Assigns a preset to the light component based on the behavior of studio lights. | \ No newline at end of file +| **Common** | Assigns a preset to the light component based on the behavior of studio lights. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-override-exposure.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-override-exposure.md index be106fb7d9a..5200da07f23 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-override-exposure.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-override-exposure.md @@ -66,11 +66,11 @@ To configure **Automatic Mode**: - **Average**: The Camera uses the entire luminance buffer to measure exposure. - **Spot**: The Camera only uses the center of the buffer to measure exposure. This is useful if you want to only expose light against what's in the center of your screen. -![](Images/Override-Exposure2.png) +![A small white circle against a black background, representing the area the camera uses when Metering Mode is set to Spot.](Images/Override-Exposure2.png) - **Center Weighted**: The Camera applies a weight to every pixel in the buffer and then uses them to measure the exposure. Pixels in the center have the maximum weight, pixels at the screen borders have the minimum weight, and pixels between have a progressively lower weight the closer they're to the screen borders. -![](Images/Override-Exposure3.png) +![A large white oval with diffuse edges, representing the area the camera uses when Metering Mode is set to Center Weighted. The oval almost fills the black background.](Images/Override-Exposure3.png) - **Mask Weighted**: The Camera applies a weight to every pixel in the buffer then uses the weights to measure the exposure. To specify the weighting, this technique uses the Texture set in the **Weight Texture Mask** field. Note that, if you don't provide a Texture, this metering mode is equivalent to **Average**. - **Procedural Mask**: The Camera applies a weight to every pixel in the buffer then uses the weights to measure the exposure. The weights are generated using a mask that's procedurally generated with the following parameters: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-path-tracing.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-path-tracing.md index fdb2786fdde..452a561fef4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-path-tracing.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-path-tracing.md @@ -14,22 +14,22 @@ | **Seed Mode** | Set how the path tracer generates random numbers. The seed is the pattern the noise has. When accumulating samples, every frame needs a different seed. Otherwise, the same noisy image gets accumulated over and over. **Seed Mode** has the following options:
• **Non Repeating**: This is the default option. The seed is chosen based on the camera frame count. When the accumulation resets, it is not reset to zero.
• **Repeating**: The seed is reset every time the accumulation is reset. Rendering of every image is done using the same random numbers.
• **Custom**: Set the seed using a custom script. For more information, see the example in [Understand path tracing](path-tracing-understand.md).| | **Denoising** | Denoises the output of the path tracer. This setting is only available when you install the **Unity Denoising** Package. **Denoising** has the following options:
• **None**: Does not denoise (this is the default option).
• **Intel Open Image Denoise** : Uses the Intel Open Image Denoise library to denoise the frame.
• **NVIDIA OptiX** : Uses NVIDIA OptiX to denoise the frame.

You can also enable the following additional settings:
• **Use AOVs** (Arbitrary Output Variables): Increases the amount of detail kept in the frame after HDRP denoises it.
• **Temporal**: Improves the temporal consistency of denoised frame sequences.
• **Separate Volumetrics**: Denoises the volumetric scattering effect separately for a smoother fog. When Separate Volumetrics is enabled, the Temporal setting will not improve volumetric fog temporal stability. | -![](Images/RayTracingPathTracing4.png) +![Minimum Depth set to 1, Maximum Depth set to 2: direct and indirect lighting (1 bounce).](Images/RayTracingPathTracing4.png) **Minimum Depth** set to 1, **Maximum Depth** set to 2: direct and indirect lighting (1 bounce) -![](Images/RayTracingPathTracing5.png) +![Minimum Depth set to 1, Maximum Depth set to 1: direct lighting only.](Images/RayTracingPathTracing5.png) **Minimum Depth** set to 1, **Maximum Depth** set to 1: direct lighting only -![](Images/RayTracingPathTracing6.png) +![Minimum Depth set to 2, Maximum Depth set to 2: indirect lighting only (1 bounce).](Images/RayTracingPathTracing6.png) **Minimum Depth** set to 2, **Maximum Depth** set to 2: indirect lighting only (1 bounce) -![](Images/RayTracingPathTracing8.png) +![Denoising set to NVIDIA Optix, Separate Volumetrics set to Off.](Images/RayTracingPathTracing8.png) **Denoising** set to NVIDIA Optix, **Separate Volumetrics** set to Off -![](Images/RayTracingPathTracing7.png) +![Denoising set to NVIDIA Optix, Separate Volumetrics set to On.](Images/RayTracingPathTracing7.png) **Denoising** set to NVIDIA Optix, **Separate Volumetrics** set to On diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ray-tracing-settings.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ray-tracing-settings.md index a79f702fb6c..caa0be57068 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ray-tracing-settings.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-ray-tracing-settings.md @@ -18,6 +18,6 @@ In the High Definition Render Pipeline (HDRP), various ray-traced effects share ### Extended frustum culling -![](Images/RayTracingSettings_extended_frustum.png) +![A frustum representing the camera view. The distance from the camera to the far clipping plane is d. The width and height of the far clipping plane is w and h.](Images/RayTracingSettings_extended_frustum.png) If you enable **Extend Shadow Culling** or **Extend Camera Culling**, HDRP sets the culling region to the width and height of the frustum at the far clipping plane, and sets the depth to twice the distance from the camera to the far clipping plane. \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-global-illumination.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-global-illumination.md index 7a9fcf122f0..3c5e156a1b3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-global-illumination.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-global-illumination.md @@ -8,64 +8,64 @@ Property - + Sub-property Description State - + N/A When set to Enabled, HDRP processes SSGI for Cameras in the influence of this effect's Volume. Tracing - + N/A Specifies the method HDRP uses to calculate global illumination. Depending on the option you select, the properties visible in the Inspector change. For more information on what the options do, see Tracing Modes. The options are:
• Ray Marching: Uses a screen-space ray marching solution to calculate global illumination. For the list of properties this option exposes, see Screen Space.
• Ray Tracing: Uses ray tracing to calculate global illumination. For information on ray-traced global illumination, see Ray-traced Global Illumination. For the list of properties this option exposes, see Ray-traced.
• Mixed: Uses a combination of ray tracing and ray marching to calculate global illumination. For the list of properties this option exposes, see Ray-traced. Quality - + N/A Specifies the overall quality of the effect. The higher the quality, the more resource-intensive the effect is to process. Max Ray Steps - + N/A The number of ray steps to use to calculate SSGI. If you set this to a higher value, the quality of the effect improves, however it's more resource intensive to process. Denoise - + N/A Enables the spatio-temporal filter that HDRP uses to remove noise from the Ray-Traced global illumination. - + N/A Half Resolution Denoiser Enable this feature to evaluate the spatio-temporal filter in half resolution. This decreases the resource intensity of denoising but reduces quality. - + N/A Denoiser Radius Set the radius of the spatio-temporal filter. - + N/A Second Denoiser Pass Enable this feature to process a second denoiser pass. This helps to remove noise from the effect. Full Resolution - + N/A Enable this feature to increase the ray budget to one ray per pixel, per frame. Disable this feature to decrease the ray budget to one ray per four pixels, per frame. Depth Tolerance - + N/A Use the slider to control the tolerance when comparing the depth of the GameObjects on screen and the depth buffer. Because the SSR algorithm can not distinguish thin GameObjects from thick ones, this property helps trace rays behind GameObjects. The algorithm applies this property to every GameObject uniformly. Ray Miss - + N/A Determines what HDRP does when screen space global illumination (SSGI) ray doesn't find an intersection. Choose from one of the following options:
•Reflection probes: HDRP uses reflection probes in your scene to calculate the missing SSGI intersection.
•Sky: HDRP uses the sky defined by the current Volume settings to calculate the missing SSGI intersection.
•Both : HDRP uses both reflection probes and the sky defined by the current Volume settings to calculate the missing SSGI intersection.
•Nothing: HDRP doesn't calculate indirect lighting when SSGI doesn't find an intersection.

This property is set to Both by default. @@ -77,88 +77,88 @@ Property - + Sub-property Description Ray Miss - + N/A Determines what HDRP does when ray-traced global illumination (RTGI) ray doesn't find an intersection. Choose from one of the following options:
•Reflection probes: HDRP uses reflection probes in your scene to calculate the last RTGI bounce.
•Sky: HDRP uses the sky defined by the current Volume settings to calculate the last RTGI bounce.
•Both : HDRP uses both reflection probes and the sky defined by the current Volume settings to calculate the last RTGI bounce.
•Nothing: HDRP doesn't calculate indirect lighting when RTGI doesn't find an intersection.

This property is set to Both by default. Last Bounce - + N/A Determines what HDRP does when ray-traced global illumination (RTGI) ray lights the last bounce. Choose from one of the following options:
•Reflection probes: HDRP uses reflection probes in your scene to calculate the last RTGI bounce.
•Sky: HDRP uses the sky defined by the current Volume settings to calculate the last RTGI bounce.
•Both : HDRP uses both reflection probes and the sky defined by the current Volume settings to calculate the last RTGI bounce.
•Nothing: HDRP doesn't calculate indirect lighting when it evaluates the last bounce.

This property is set to Both by default. Tracing - + N/A Specifies the method HDRP uses to calculate global illumination. Depending on the option you select, the properties visible in the Inspector change. For more information on what the options do, see Tracing Modes. The options are:
• Ray Marching: Uses a screen-space ray marching solution to calculate global illumination. For the list of properties this option exposes, see Screen Space.
• Ray Tracing: Uses ray tracing to calculate global illumination. For information on ray-traced reflections, see Ray-Traced Global Illumination. For the list of properties this option exposes, see Ray-traced.
• Mixed: Uses a combination of ray tracing and ray marching to calculate global illumination. For the list of properties this option exposes, see Ray-traced. Layer Mask - + N/A Defines the layers that HDRP processes this ray-traced effect for. Clamp Value - + N/A Set a value to control the threshold that HDRP uses to clamp the pre-exposed value. This reduces the range of values and makes the global illumination more stable to denoise, but reduces quality. Mode - + N/A Defines if HDRP should evaluate the effect in Performance or Quality mode.
This property only appears if you select set Supported Ray Tracing Mode in your HDRP Asset to Both. Quality - + N/A Specifies the preset HDRP uses to populate the values of the following nested properties. The options are:
• Low: A preset that emphasizes performance over quality.
• Medium: A preset that balances performance and quality.
• High: A preset that emphasizes quality over performance.
• Custom: Allows you to override each property individually.
This property only appears if you set Mode to Performance. Max Ray Length - + N/A Controls the maximal length of rays. The higher this value is, the more resource-intensive ray traced global illumination is. Full Resolution - + N/A Enable this feature to increase the ray budget to one ray per pixel, per frame. Disable this feature to decrease the ray budget to one ray per four pixels, per frame.
This property only appears if you set Mode to Performance. Sample Count - + N/A Controls the number of rays per pixel per frame. Increasing this value increases execution time linearly.
This property only appears if you set Mode to Quality. Bounce Count - + N/A Controls the number of bounces that global illumination rays can do. Increasing this value increases execution time exponentially.
This property only appears if you set Mode to Quality. Max Mixed Ray Steps - + N/A Sets the maximum number of iterations that the algorithm can execute before it stops trying to find an intersection with a Mesh. For example, if you set the number of iterations to 1000 and the algorithm only needs 10 to find an intersection, the algorithm terminates after 10 iterations. If you set this value too low, the algorithm may terminate too early and abruptly stop global illumination.
This property only appears if you set Tracing to Mixed. Denoise - + N/A Enable this to enable the spatio-temporal filter that HDRP uses to remove noise from the Ray-Traced global illumination. - + N/A Half Resolution Denoiser Enable this feature to evaluate the spatio-temporal filter in half resolution. This decreases the resource intensity of denoising but reduces quality. - + N/A Denoiser Radius Set the radius of the spatio-temporal filter. - + N/A Second Denoiser Pass Enable this feature to process a second denoiser pass. This helps to remove noise from the effect. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-reflection.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-reflection.md index 51359e00b8d..fe4204e1bb9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-reflection.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-screen-space-reflection.md @@ -37,93 +37,93 @@ For more information, refer to the following: Property - + Sub-property Description Tracing - + N/A Specifies the method HDRP uses to calculate reflections. Depending on the option you select, the properties visible in the Inspector change. For more information on what the options do, see Tracing Modes. The options are:
• Ray Marching: Uses a screen-space ray marching solution to calculate reflections. For the list of properties this option exposes, see Screen Space.
• Ray Tracing: Uses ray tracing to calculate reflections. For information on ray-traced reflections, see Ray-Traced Reflections. For the list of properties this option exposes, see Ray-traced.
• Mixed: Uses a combination of ray tracing and ray marching to calculate reflections. For the list of properties this option exposes, see Ray-traced. Ray Miss - + N/A Determines what HDRP does when ray-traced reflections (RTR) doesn't find an intersection. Choose from one of the following options:
•Reflection probes: HDRP uses reflection probes in your scene to calculate the last RTR bounce.
•Sky: HDRP uses the sky defined by the current Volume settings to calculate the last RTR bounce.
•Both : HDRP uses both reflection probes and the sky defined by the current Volume settings to calculate the last RTR bounce.
•Nothing: HDRP doesn't calculate indirect lighting when RTR doesn't find an intersection.

This property is set to Both by default Last Bounce - + N/A Determines what HDRP does when ray-traced reflections (RTR) lights the last bounce. Choose from one of the following options:
•Reflection probes: HDRP uses reflection probes in your scene to calculate the last RTR bounce.
•Sky: HDRP uses the sky defined by the current Volume settings to calculate the last RTR bounce.
•Both:  HDRP uses both reflection probes and the sky defined by the current [Volume settings to calculate the last RTR bounce.
•Nothing: HDRP doesn't calculate indirect lighting when it evaluates the last bounce.

This property is set to Both by default. LayerMask - + N/A Defines the layers that HDRP processes this ray-traced effect for. Clamp Value - + N/A Controls the threshold that HDRP uses to clamp the pre-exposed value. This reduces the range of values and makes the reflections more stable to denoise, but reduces quality. Mode - + N/A Defines if HDRP should evaluate the effect in Performance or Quality mode.
This property only appears if you select set Supported Ray Tracing Mode in your HDRP Asset to Both. Quality - + N/A Specifies the preset HDRP uses to populate the values of the following nested properties. The options are:
• Low: A preset that emphasizes performance over quality.
• Medium: A preset that balances performance and quality.
• High: A preset that emphasizes quality over performance.
• Custom: Allows you to override each property individually.
This property only appears if you set Mode to Performance. Minimum Smoothness - + N/A See Minimum Smoothness in Screen Space. Smoothness Fade Start - + N/A See Smoothness Fade Start in Screen Space. Max Ray Length - + N/A Controls the maximum length of reflection rays. The higher this value is, the more resource-intensive ray-traced reflection is if a ray doesn't find an intersection. Full Resolution - + N/A Enable this feature to increase the ray budget to one ray per pixel, per frame. Disable this feature to decrease the ray budget to one ray per four pixels, per frame.
This property only appears if you set Mode to Performance. Sample Count - + N/A Controls the number of rays per pixel per frame. Increasing this value increases execution time linearly.
This property only appears if you set Mode to Quality. Bounce Count - + N/A Controls the number of bounces that reflection rays can do. Increasing this value increases execution time exponentially.
This property only appears if you set Mode to Quality. Max Mixed Ray Steps - + N/A Sets the maximum number of iterations that the algorithm can execute before it stops trying to find an intersection with a Mesh. For example, if you set the number of iterations to 1000 and the algorithm only needs 10 to find an intersection, the algorithm terminates after 10 iterations. If you set this value too low, the algorithm may terminate too early and abruptly stop reflections. This property only appears if you set Tracing to Mixed. Denoise - + N/A Enables the spatio-temporal filter that HDRP uses to remove noise from the reflections. - + N/A Denoiser Radius Controls the radius of the spatio-temporal filter. Increasing this value results in a more blurry result and a higher execution time. - + N/A Anti-flickering Strength Controls the anti-flickering strength of the reflection denoiser. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-shadows-volume-override.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-shadows-volume-override.md index e51e6ac9b5f..1ee2738b7c7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-shadows-volume-override.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/reference-shadows-volume-override.md @@ -2,8 +2,6 @@ ## Properties -![](Images/Override-Shadows1.png) - [!include[](snippets/Volume-Override-Enable-Properties.md)] | **Property** | **Description** | @@ -18,4 +16,4 @@ | **Border 1** | Set the size of the border between the first and second cascade split. HDRP fades the shadow cascades between these two sections over this border. The **Working Unit** defines the unit this property uses. | | **Border 2** | Set the size of the border between the second and third cascade split. HDRP fades the shadow cascades between these two sections over this border. The **Working Unit** defines the unit this property uses. | | **Border 3** | Set the size of the border between the third and final cascade split. HDRP fades the shadow cascades between these two sections over this border. The **Working Unit** defines the unit this property uses. | -| **Border 4** | Set the size of the border at the end of the last cascade split. HDRP fades the final shadow cascade out over this distance. The **Working Unit** defines the unit this property uses. | \ No newline at end of file +| **Border 4** | Set the size of the border at the end of the last cascade split. HDRP fades the final shadow cascade out over this distance. The **Working Unit** defines the unit this property uses. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-debugger-window-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-debugger-window-reference.md index 0b3bb1b5be1..b8bfd77fc98 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-debugger-window-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-debugger-window-reference.md @@ -22,10 +22,10 @@ Refer to [Use the Rendering debugger](use-the-rendering-debugger.md) for more in The **Decals** panel has tools that you can use to debug [decals](decal-material-inspector-reference.md) affecting transparent objects in your project. -| **Property** | **Description** | -| ----------------- | ------------------------------------------------------------ | -| **Display Atlas** | Enable the checkbox to display the decal atlas for a Camera in the top left of that Camera's view. | -| **Mip Level** | Use the slider to select the mip level for the decal atlas. The higher the mip level, the blurrier the decal atlas. | +| **Property** | **Description** | +|-------------------|---------------------------------------------------------------------------------------------------------------------| +| **Display Atlas** | Enable the checkbox to display the decal atlas for a Camera in the top left of that Camera's view. | +| **Mip Level** | Use the slider to select the mip level for the decal atlas. The higher the mip level, the blurrier the decal atlas. | @@ -41,27 +41,18 @@ Use the [runtime shortcuts](#Navigation at runtime) to open the Display stats wi The Frame Stats section displays the average, minimum, and maximum value of each property. HDRP calculates each Frame Stat value over the 30 most recent frames. -| **Property** | | **Description** | -| ---------------------------- | ----------------------- | ------------------------------------------------------------ | -| **Frame Rate** | | The frame rate (in frames per second) for the current camera view. | -| **Frame Time** | | The total frame time for the current camera view. | -| **CPU Main Thread Frame** | | The total time (in milliseconds) between the start of the frame and the time when the Main Thread finished the job. | -| **CPU Render Thread Frame** | | The time (in milliseconds) between the start of the work on the Render Thread and the time Unity waits to render the present frame ([Gfx.PresentFrame](https://docs.unity3d.com/2022.1/Documentation/Manual/profiler-markers.html)). | -| **CPU Present Wait** | | The time (in milliseconds) that the CPU spent waiting for Unity to render the present frame ([Gfx.PresentFrame](https://docs.unity3d.com/2022.1/Documentation/Manual/profiler-markers.html)) during the last frame. | -| **GPU Frame** | | The amount of time (in milliseconds) the GPU takes to render a given frame. | -| **RT Mode** | | When you [enable ray tracing](Ray-Tracing-Getting-Started.md), this property shows the ray tracing quality mode that HDRP uses during rendering. HDRP updates this value once every frame based on the previous frame. | -| **Count Rays** | | Count the number of traced rays for each effect (in MRays / frame). This property only appears when you enable ray tracing. | -| | **Ambient Occlusion** | The number of rays that HDRP traced for [Ambient Occlusion (AO)](Ambient-Occlusion.md) computations, when you enable realtime ambient occlusion (RT AO). | -| | **Shadows Directional** | The number of rays that HDRP traced for [directional lights](Light-Component.md) when you enable ray-traced shadows. | -| | **Shadows Area** | The number of rays that HDRP traced towards area lights when you enable [ray-traced shadows](Ray-Traced-Shadows.md). | -| | **Shadows Point/Spot** | The number of rays that HDRP traced towards point and spot lights when you enable ray-traced shadows. | -| | **Reflection Forward** | The number of rays that HDRP traced for reflection computations that use [forward shading](Forward-And-Deferred-Rendering.md). | -| | **Reflection Deferred** | The number of rays that HDRP traced for reflection computations that use [deferred shading](Forward-And-Deferred-Rendering.md). | -| | **Diffuse GI Forward** | The number of rays that HDRP traced for diffuse [Global Illumination (GI)](Ray-Traced-Global-Illumination.md) computations that use forward shading. | -| | **Diffuse GI Deferred** | The number of rays that HDRP traced for diffuse Global Illumination (GI) computations that use deferred shading. | -| | **Recursive** | The number of rays that HDRP traced for diffuse Global Illumination (GI) computations when you enable recursive ray tracing. | -| | **Total** | The total number of rays that HDRP traced. | -| **Debug XR Layout** | | Display debug information for XR passes.
This mode is only available in editor and development builds. | +| **Property** | **Description** | +|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Frame Rate** | The frame rate (in frames per second) for the current camera view. | +| **Frame Time** | The total frame time for the current camera view. | +| **CPU Main Thread Frame** | The total time (in milliseconds) between the start of the frame and the time when the Main Thread finished the job. | +| **CPU Render Thread Frame** | The time (in milliseconds) between the start of the work on the Render Thread and the time Unity waits to render the present frame ([Gfx.PresentFrame](https://docs.unity3d.com/2022.1/Documentation/Manual/profiler-markers.html)). | +| **CPU Present Wait** | The time (in milliseconds) that the CPU spent waiting for Unity to render the present frame ([Gfx.PresentFrame](https://docs.unity3d.com/2022.1/Documentation/Manual/profiler-markers.html)) during the last frame. | +| **GPU Frame** | The amount of time (in milliseconds) the GPU takes to render a given frame. | +| **RT Mode** | When you [enable ray tracing](Ray-Tracing-Getting-Started.md), this property shows the ray tracing quality mode that HDRP uses during rendering. HDRP updates this value once every frame based on the previous frame. | +| **Count Rays** | Count the number of traced rays for each effect (in MRays / frame). This property only appears when you enable ray tracing.
  • Ambient Occlusion: The number of rays that HDRP traced for Ambient Occlusion (AO) computations when you enable realtime ambient occlusion (RT AO).
  • Shadows Directional: The number of rays that HDRP traced for directional lights when you enable ray-traced shadows.
  • Shadows Area: The number of rays that HDRP traced towards area lights when you enable ray-traced shadows.
  • Shadows Point/Spot: The number of rays that HDRP traced towards point and spot lights when you enable ray-traced shadows.
  • Reflection Forward: The number of rays that HDRP traced for reflection computations that use forward shading.
  • Reflection Deferred: The number of rays that HDRP traced for reflection computations that use deferred shading.
  • Diffuse GI Forward: The number of rays that HDRP traced for diffuse Global Illumination (GI) computations that use forward shading.
  • Diffuse GI Deferred: The number of rays that HDRP traced for diffuse Global Illumination (GI) computations that use deferred shading.
  • Recursive: The number of rays that HDRP traced for diffuse Global Illumination (GI) computations when you enable recursive ray tracing.
  • Total: The total number of rays that HDRP traced.
| +| **Debug XR Layout** | Display debug information for XR passes. This mode is only available in editor and development builds. | + @@ -75,12 +66,12 @@ The **Bottlenecks** section describes the distribution of the last 60 frames acr #### Bottleneck categories -| **Category** | **Description** | -| ------------------- | ------------------------------------------------------------ | -| **CPU** | The percentage of the last 60 frames in which the CPU limited the frame time. | -| **GPU** | The percentage of the last 60 frames in which the GPU limited the frame time. | -| **Present limited** | The percentage of the last 60 frames in which the frame time was limited by the following presentation constraints:
• Vertical Sync (Vsync): Vsync synchronizes rendering to the refresh rate of your display.
•[Target framerate]([Application.targetFrameRate](https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html)): A function that you can use to manually limit the frame rate of an application. If a frame is ready before the time you specify in targetFrameRate, Unity waits before presenting the frame. | -| **Balanced** | This percentage of the last 60 frames in which the frame time was not limited by any of the above categories. A frame that is 100% balanced indicates the processing time for both CPU and GPU is approximately equal. | +| **Category** | **Description** | +|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **CPU** | The percentage of the last 60 frames in which the CPU limited the frame time. | +| **GPU** | The percentage of the last 60 frames in which the GPU limited the frame time. | +| **Present limited** | The percentage of the last 60 frames in which the frame time was limited by the following presentation constraints:
  • Vertical Sync (Vsync): Vsync synchronizes rendering to the refresh rate of your display.
  • Target framerate: A function that you can use to manually limit the frame rate of an application. If a frame is ready before the time you specify in targetFrameRate, Unity waits before presenting the frame.
| +| **Balanced** | This percentage of the last 60 frames in which the frame time was not limited by any of the above categories. A frame that is 100% balanced indicates the processing time for both CPU and GPU is approximately equal. | #### Bottleneck example @@ -99,12 +90,12 @@ In this example, the bottleneck is the GPU. The Detailed Stats section displays the amount of time in milliseconds that each rendering step takes on the CPU and GPU. HDRP updates these values once every frame based on the previous frame. -| **Property** | **Description** | -| -------------------------------- | ------------------------------------------------------------ | -| Update every second with average | Calculate average values over one second and update every second. | -| Hide empty scopes | Hide profiling scopes that use 0.00ms of processing time on the CPU and GPU. | -| Count Rays | Count the number of traced rays for each effect (in MRays / frame). This mode only appears when you enable ray tracing. | -| Debug XR Layout | Enable to display debug information for [XR](https://docs.unity3d.com/Manual/XR.html) passes. This mode only appears in the editor and development builds. | +| **Property** | **Description** | +|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Update every second with average | Calculate average values over one second and update every second. | +| Hide empty scopes | Hide profiling scopes that use 0.00ms of processing time on the CPU and GPU. | +| Count Rays | Count the number of traced rays for each effect (in MRays / frame). This mode only appears when you enable ray tracing. | +| Debug XR Layout | Enable to display debug information for [XR](https://docs.unity3d.com/Manual/XR.html) passes. This mode only appears in the editor and development builds. | @@ -112,95 +103,26 @@ The Detailed Stats section displays the amount of time in milliseconds that each The **Material** panel has tools that you can use to visualize different Material properties. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
Common Material PropertyUse the drop-down to select a Material property to visualize on every GameObject on screen. All HDRP Materials share the properties available.
MaterialUse the drop-down to select a Material property to visualize on every GameObject on screen using a specific Shader. The properties available depend on the HDRP Material type you select in the drop-down.
Rendering Layer MaskThese parameters only appear when you set the Material Debug Option to Rendering Layers.
Filter Light Layers by LightEnable the checkbox to visualize GameObjects that the selected light affects.
Use Light's Shadow Layer MaskEnable the checkbox to visualize GameObjects that cast shadows for the selected light.
Filter LayersUse the drop-down to filter layers that you want to display. GameObjects that have a matching layer appear in a specific color. Use **Layers Color** to define this color.
Layers ColorUse the color pickers to select the display color of each rendering layer.
EngineUse the drop-down to select a Material property to visualize on every GameObject on a screen that uses a specific Shader. The properties available are the same as Material but are in the form that the lighting engine uses them (for example, Smoothness is Perceptual Roughness).
AttributesUse the drop-down to select a 3D GameObject attribute, like Texture Coordinates or Vertex Color, to visualize on screen.
PropertiesUse the drop-down to select a property that the debugger uses to highlight GameObjects on screen. The debugger highlights GameObjects that use a Material with the property that you select.
GBufferUse the drop-down to select a property to visualize from the GBuffer for deferred Materials.
Material ValidatorUse the drop-down to select properties to display validation colors for:
  • Diffuse Color: Select this option to check if the diffuse colors in your Scene adheres to an acceptable PBR range. If the Material color is out of this range, the debugger displays it in the Too High Color color if it's above the range, or in the Too Low Color if it's below the range.
  • -
  • Metal or SpecularColor: Select this option to check if a pixel contains a metallic or specular color that adheres to an acceptable PBR range. If it doesn't, the debugger highlights it in the Not A Pure Metal Color. For information about the acceptable PBR ranges in Unity, see the Material Charts documentation.
Too High ColorUse the color picker to select the color that the debugger displays when a Material's diffuse color is above the acceptable PBR range.
This property only appears when you select Diffuse Color or Metal or SpecularColor from the Material Validator drop-down.
Too Low ColorUse the color picker to select the color that the debugger displays when a Material's diffuse color is below the acceptable PBR range.
This property only appears when you select Diffuse Color or Metal or SpecularColor from the Material Validator drop-down.
Not A Pure Metal ColorUse the color picker to select the color that the debugger displays if a pixel defined as metallic has a non-zero albedo value. The debugger only highlights these pixels if you enable the True Metals checkbox.
This property only appears when you select Diffuse Color or Metal or SpecularColor from the Material Validator drop-down.
Pure MetalsEnable the checkbox to make the debugger highlight any pixels which Unity defines as metallic, but which have a non-zero albedo value. The debugger uses the Not A Pure Metal Color to highlight these pixels.
This property only appears when you select Diffuse Color or Metal or SpecularColor from the Material Validator drop-down.
Override Global Material Texture Mip BiasEnable the checkbox to override the mipmap level bias of texture samplers in material shaders. Use the Debug Global Material Texture Mip Bias Value to control the mipmap level bias override.
When using this feature, be aware of the following: -
    -
  • It only affects gbuffer, forward opaque, transparency and decal passes.
  • -
  • It doesn't affect virtual texturing sampling.
  • -
  • It doesn't affect custom passes.
  • -
Debug Global Material Texture Mip Bias ValueUse the slider to control the amount of mip bias of texture samplers in material shaders.
+| **Property** | **Sub-property** | **Description** | +|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Common Material Property** | N/A | Use the drop-down to select a Material property to visualize on every GameObject on screen. All HDRP Materials share the properties available. | +| **Material** | N/A | Use the drop-down to select a Material property to visualize on every GameObject on screen using a specific Shader. The properties available depend on the HDRP Material type you select in the drop-down. | +| **Rendering Layer Mask** | N/A | These parameters only appear when you set the Material Debug Option to Rendering Layers. | +| **Rendering Layer Mask** | **Filter Light Layers by Light** | Enable the checkbox to visualize GameObjects that the selected light affects. | +| **Rendering Layer Mask** | **Use Light's Shadow Layer Mask** | Enable the checkbox to visualize GameObjects that cast shadows for the selected light. | +| **Rendering Layer Mask** | **Filter Layers** | Use the drop-down to filter layers that you want to display. GameObjects that have a matching layer appear in a specific color. Use **Layers Color** to define this color. | +| **Rendering Layer Mask** | **Layers Color** | Use the color pickers to select the display color of each rendering layer. | +| **Engine** | N/A | Use the drop-down to select a Material property to visualize on every GameObject on a screen that uses a specific Shader. The properties available are the same as Material but are in the form that the lighting engine uses them (for example, Smoothness is Perceptual Roughness). | +| **Attributes** | N/A | Use the drop-down to select a 3D GameObject attribute, like Texture Coordinates or Vertex Color, to visualize on screen. | +| **Properties** | N/A | Use the drop-down to select a property that the debugger uses to highlight GameObjects on screen. The debugger highlights GameObjects that use a Material with the property that you select. | +| **GBuffer** | N/A | Use the drop-down to select a property to visualize from the GBuffer for deferred Materials. | +| **Material Validator** | N/A | Use the drop-down to select properties to display validation colors for:
  • Diffuse Color: Select this option to check if the diffuse colors in your Scene adhere to an acceptable PBR range. If the Material color is out of this range, the debugger displays it in the Too High Color color if it's above the range, or in the Too Low Color if it's below the range.
  • Metal or SpecularColor: Select this option to check if a pixel contains a metallic or specular color that adheres to an acceptable PBR range. If it doesn't, the debugger highlights it in the Not A Pure Metal Color. For information about the acceptable PBR ranges in Unity, see the Material Charts documentation.
| +| **Material Validator** | **Too High Color** | Use the color picker to select the color that the debugger displays when a Material's diffuse color is above the acceptable PBR range. | +| **Material Validator** | **Too Low Color** | Use the color picker to select the color that the debugger displays when a Material's diffuse color is below the acceptable PBR range.
  • This property only appears when you select Diffuse Color or Metal or SpecularColor from the Material Validator drop-down.
| +| **Material Validator** | **Not A Pure Metal Color** | Use the color picker to select the color that the debugger displays if a pixel defined as metallic has a non-zero albedo value. The debugger only highlights these pixels if you enable the True Metals checkbox.
  • This property only appears when you select Diffuse Color or Metal or SpecularColor from the Material Validator drop-down.
| +| **Material Validator** | **Pure Metals** | Enable the checkbox to make the debugger highlight any pixels which Unity defines as metallic, but which have a non-zero albedo value. The debugger uses the Not A Pure Metal Color to highlight these pixels.
  • This property only appears when you select Diffuse Color or Metal or SpecularColor from the Material Validator drop-down.
| +| **Override Global Material Texture Mip Bias** | N/A | Enable the checkbox to override the mipmap level bias of texture samplers in material shaders. Use the Debug Global Material Texture Mip Bias Value to control the mipmap level bias override.
  • When using this feature, be aware of the following:
    • It only affects gbuffer, forward opaque, transparency, and decal passes.
    • It doesn't affect virtual texturing sampling.
    • It doesn't affect custom passes.
| +| **Debug Global Material Texture Mip Bias Value** | N/A | Use the slider to control the amount of mip bias of texture samplers in material shaders. | If the geometry or the shading normal is denormalized, the view renders the target pixel red. @@ -210,266 +132,57 @@ If the geometry or the shading normal is denormalized, the view renders the targ The **Lighting** panel has tools that you can use to visualize various components of the lighting system in your Scene, like, shadowing and direct/indirect lighting. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Shadow Debug OptionDescription
Debug ModeUse the drop-down to select which shadow debug information to overlay on the screen:
-
    -
  • None: Select this mode to remove the shadow debug information from the screen.
  • -
  • VisualizePunctualLightAtlas: Select this mode to overlay the shadow atlas for Punctual Lights in your Scene.
  • -
  • VisualizeDirectionalLightAtlas: Select this mode to overlay the shadow atlas for Directional Lights in your Scene.
  • -
  • VisualizeAreaLightAtlas: Select this mode to overlay the shadow atlas for area Lights in your Scene.
  • -
  • VisualizeShadowMap: Select this mode to overlay a single shadow map for a Light in your Scene.
  • -
  • SingleShadow: Select this mode to replace the Scene's lighting with a single Light. To select which Light to isolate, see Use Selection or Shadow Map Index.
  • -
Use SelectionEnable the checkbox to display the shadow map for the Light you select in the Scene.
This property only appears when you select VisualizeShadowMap or SingleShadow from the Shadow Debug Mode drop-down.
Shadow Map IndexUse the slider to select the index of the shadow map to view. To use this property correctly, you must have at least one Light in your Scene that uses shadow maps.
Global Scale FactorUse the slider to set the global scale that HDRP applies to the shadow rendering resolution.
Clear Shadow AtlasEnable the checkbox to clear the shadow atlas every frame.
Range Minimum ValueSet the minimum shadow value to display in the various shadow debug overlays.
Range Maximum ValueSet the maximum shadow value to display in the various shadow debug overlays.
Log Cached Shadow Atlas StatusSet the maximum shadow value to display in the various shadow debug overlays.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Lighting Debug OptionDescription
Show Lights By TypeAllows the user to enable or disable lights in the scene based on their type.
Directional LightsEnable the checkbox to see Directional Lights in your Scene. Disable this checkbox to remove Directional Lights from your Scene's lighting.
Punctual LightsEnable the checkbox to see Punctual Lights in your Scene. Disable this checkbox to remove Punctual Lights from your Scene's lighting.
Area LightsEnable the checkbox to see Area Lights in your Scene. Disable this checkbox to remove Aera Lights from your Scene's lighting.
Reflection ProbesEnable the checkbox to see Reflection Probes in your Scene. Disable this checkbox to remove Reflection Probes from your Scene's lighting.
ExposureAllows you to select an Exposure debug mode to use.
Debug ModeUse the drop-down to select a debug mode. See Exposure documentation for more information.
Show Tonemap curveEnable the checkbox to overlay the tonemap curve to the histogram debug view.
This property only appears when you select HistogramView from Debug Mode.
Center Around ExposureEnable the checkbox to center the histogram around the current exposure value.
This property only appears when you select HistogramView from Debug Mode.
Display RGB HistogramEnable the checkbox to display the Final Image Histogram as an RGB histogram instead of just luminance.
This property only appears when you select FinalImageHistogramView from Debug Mode.
Display Mask OnlyEnable the checkbox to display only the metering mask in the picture-in-picture. When disabled, the mask displays after weighting the scene color instead.
This property only appears when you select MeteringWeighted from Debug Mode.
Debug Exposure CompensationSet an additional exposure compensation for debug purposes.
Debug ModeUse the drop-down to select a lighting mode to debug. For example, you can visualize diffuse lighting, specular lighting, direct diffuse lighting, direct specular lighting, indirect diffuse lighting, indirect specular lighting, emissive lighting and Directional Light shadow cascades.
Hierarchy Debug ModeUse the drop-down to select a light type to display the direct lighting for or a Reflection Probe type to display the indirect lighting for.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Material OverridesDescription
Override SmoothnessEnable the checkbox to override the smoothness for the entire Scene.
SmoothnessUse the slider to set the smoothness override value that HDRP uses for the entire Scene.
Override AlbedoEnable the checkbox to override the albedo for the entire Scene.
AlbedoUse the color picker to set the albedo color that HDRP uses for the entire Scene.
Override NormalEnable the checkbox to override the normals for the entire Scene with object normals for lighting debug.
Override Specular ColorEnable the checkbox to override the specular color for the entire Scene.
Specular ColorUse the color picker to set the specular color that HDRP uses for the entire Scene.
Override Ambient OcclusionEnable the checkbox to override the ambient occlusion for the entire Scene.
Ambient OcclusionUse the slider to set the Ambient Occlusion override value that HDRP uses for the entire Scene.
Override Emissive ColorEnable the checkbox to override the emissive color for the entire Scene.
Emissive ColorUse the color picker to set the emissive color that HDRP uses for the entire Scene.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
Fullscreen Debug ModeUse the drop-down to select a fullscreen lighting effect to debug. For example, you can visualize Contact Shadows, the depth pyramid, and indirect diffuse lighting.
You can also use some of those Lighting Fullscreen Debug Modes to debug Ray-Traced effects.
Tile/Cluster DebugUse the drop-down to select an internal HDRP lighting structure to visualize on screen. -
    -
  • None: Select this option to disable this debug feature.
  • -
  • Tile: Select this option to display an overlay of each lighting tile, and the number of lights in them.
  • -
  • Cluster: Select this option to display an overlay of each lighting cluster that intersects opaque geometry, and the number of lights in them.
  • -
  • Material Feature Variants: Select this option to display the index of the lighting Shader variant that HDRP uses for a tile. You can find variant descriptions in the lit.hlsl file.
  • -
Tile/Cluster Debug By CategoryUse the drop-down to select the Light type that you want to display the Tile/Cluster debug information for. The options include Light Types, Decals, and Local Volumetric Fog.
This property only appears when you select Tile or Cluster from the Tile/Cluster Debug drop-down.
Cluster Debug ModeUse the drop-down to select the visualization mode for the cluster. The options are:
VisualizeOpaque: displays cluster information on opaque geometry.
VisualizeSlice: Displays cluster information at a set distance from the camera.
This property only appears when you select Cluster from the Tile/Cluster Debug drop-down..
Cluster DistanceUse this slider to set the distance from the camera at which to display the cluster slice. This property only appears when you select VisualizeSlice from the Cluster Debug Mode drop-down.
Display Sky ReflectionEnable the checkbox to display an overlay of the cube map that the current sky generates and HDRP uses for lighting.
Sky Reflection MipmapUse the slider to set the mipmap level of the sky reflection cubemap. Use this to view the sky reflection cubemap's different mipmap levels.
This property only appears when you enable the Display Sky Reflection checkbox.
Display Light VolumesEnable the checkbox to display an overlay of all light bounding volumes.
Light Volume Debug TypeUse the drop-down to select the method HDRP uses to display the light volumes. -
    -
  • Gradient: Select this option to display the light volumes as a gradient.
  • -
  • ColorAndEdge: Select this option to display the light volumes as a plain color (a different color for each Light Type) with a red border for readability.
    This property only appears when you enable the Display Light Volumes checkbox. -
Max Debug Light CountUse the slider to rescale the gradient. Lower this value to make the screen turn red faster. Use this property to change the maximum acceptable number of lights for your application and still see areas in red.
This property only appears when you set the Display Light Volumes mode to Gradient.
Display Cookie AtlasEnable the checkbox to display an overlay of the cookie atlas.
Mip LevelUse the slider to set the mipmap level of the cookie atlas.
This property only appears when you enable the Display Cookie Atlas checkbox.
Clear Cookie AtlasEnable the checkbox to clear the cookie atlas at each frame.
This property only appears when you enable the Display Cookie Atlas checkbox.
Display Planar Reflection AtlasEnable the checkbox to display an overlay of the planar reflection atlas.
Mip LevelUse the slider to set the mipmap level of the planar reflection atlas.
This property only appears when you enable the Display Planar Reflection Atlas checkbox.
Clear Planar AtlasEnable the checkbox to clear the planar reflection atlas at each frame.
This property only appears when you enable the Display Planar Reflection Atlas checkbox.
Debug Overlay Screen RatioSet the size of the debug overlay textures with a ratio of the screen size. The default value is 0.33 which is 33% of the screen size.
+| **Shadow Debug Option** | **Sub-option** | **Description** | +|------------------------------------|----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Debug Mode** | N/A | Use the drop-down to select which shadow debug information to overlay on the screen:
  • None: Select this mode to remove the shadow debug information from the screen.
  • VisualizePunctualLightAtlas: Select this mode to overlay the shadow atlas for Punctual Lights in your Scene.
  • VisualizeDirectionalLightAtlas: Select this mode to overlay the shadow atlas for Directional Lights in your Scene.
  • VisualizeAreaLightAtlas: Select this mode to overlay the shadow atlas for Area Lights in your Scene.
  • VisualizeShadowMap: Select this mode to overlay a single shadow map for a Light in your Scene.
  • SingleShadow: Select this mode to replace the Scene's lighting with a single Light. To select which Light to isolate, see Use Selection or Shadow Map Index.
| +| **Debug Mode** | **Use Selection** | Enable the checkbox to display the shadow map for the Light you select in the Scene.
  • This property only appears when you select VisualizeShadowMap or SingleShadow from the Shadow Debug Mode drop-down.
| +| **Debug Mode** | **Shadow Map Index** | Use the slider to select the index of the shadow map to view. To use this property correctly, you must have at least one Light in your Scene that uses shadow maps. | +| **Global Scale Factor** | N/A | Use the slider to set the global scale that HDRP applies to the shadow rendering resolution. | +| **Clear Shadow Atlas** | N/A | Enable the checkbox to clear the shadow atlas every frame. | +| **Range Minimum Value** | N/A | Set the minimum shadow value to display in the various shadow debug overlays. | +| **Range Maximum Value** | N/A | Set the maximum shadow value to display in the various shadow debug overlays. | +| **Log Cached Shadow Atlas Status** | N/A | Set the maximum shadow value to display in the various shadow debug overlays. | + +| **Lighting Debug Option** | **Description** | +|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Show Lights By Type** | Allows the user to enable or disable lights in the scene based on their type.
  • Directional Lights: Enable the checkbox to see Directional Lights in your Scene. Disable this checkbox to remove Directional Lights from your Scene's lighting.
  • Punctual Lights: Enable the checkbox to see Punctual Lights in your Scene. Disable this checkbox to remove Punctual Lights from your Scene's lighting.
  • Area Lights: Enable the checkbox to see Area Lights in your Scene. Disable this checkbox to remove Area Lights from your Scene's lighting.
  • Reflection Probes: Enable the checkbox to see Reflection Probes in your Scene. Disable this checkbox to remove Reflection Probes from your Scene's lighting.
| +| **Exposure** | Allows you to select an Exposure debug mode to use.
  • Debug Mode: Use the drop-down to select a debug mode. See Exposure documentation for more information.
  • Show Tonemap Curve: Enable the checkbox to overlay the tonemap curve to the histogram debug view. This property only appears when you select HistogramView from Debug Mode.
  • Center Around Exposure: Enable the checkbox to center the histogram around the current exposure value. This property only appears when you select HistogramView from Debug Mode.
  • Display RGB Histogram: Enable the checkbox to display the Final Image Histogram as an RGB histogram instead of just luminance. This property only appears when you select FinalImageHistogramView from Debug Mode.
  • Display Mask Only: Enable the checkbox to display only the metering mask in the picture-in-picture. When disabled, the mask displays after weighting the scene color instead. This property only appears when you select MeteringWeighted from Debug Mode.
  • Debug Exposure Compensation: Set an additional exposure compensation for debug purposes.
| +| **Debug Mode** | Use the drop-down to select a lighting mode to debug. For example, you can visualize diffuse lighting, specular lighting, direct diffuse lighting, direct specular lighting, indirect diffuse lighting, indirect specular lighting, emissive lighting and Directional Light shadow cascades. | +| **Hierarchy Debug Mode** | Use the drop-down to select a light type to display the direct lighting for or a Reflection Probe type to display the indirect lighting for. | + +| **Material Overrides** | **Suboption** | **Description** | +|--------------------------------|-----------------------|----------------------------------------------------------------------------------------------------------| +| **Override Smoothness** | N/A | Enable the checkbox to override the smoothness for the entire Scene. | +| **Override Smoothness** | **Smoothness** | Use the slider to set the smoothness override value that HDRP uses for the entire Scene. | +| **Override Albedo** | N/A | Enable the checkbox to override the albedo for the entire Scene. | +| **Override Albedo** | **Albedo** | Use the color picker to set the albedo color that HDRP uses for the entire Scene. | +| **Override Normal** | N/A | Enable the checkbox to override the normals for the entire Scene with object normals for lighting debug. | +| **Override Specular Color** | N/A | Enable the checkbox to override the specular color for the entire Scene. | +| **Override Specular Color** | **Specular Color** | Use the color picker to set the specular color that HDRP uses for the entire Scene. | +| **Override Ambient Occlusion** | N/A | Enable the checkbox to override the ambient occlusion for the entire Scene. | +| **Override Ambient Occlusion** | **Ambient Occlusion** | Use the slider to set the Ambient Occlusion override value that HDRP uses for the entire Scene. | +| **Override Emissive Color** | N/A | Enable the checkbox to override the emissive color for the entire Scene. | +| **Override Emissive Color** | **Emissive Color** | Use the color picker to set the emissive color that HDRP uses for the entire Scene. | + +| **Property** | **Sub-propery** | **Description** | +|-------------------------------------|------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Fullscreen Debug Mode** | N/A | Use the drop-down to select a fullscreen lighting effect to debug. For example, you can visualize Contact Shadows, the depth pyramid, and indirect diffuse lighting. You can also use some of those Lighting Fullscreen Debug Modes to debug Ray-Traced effects. | +| **Tile/Cluster Debug** | N/A | Use the drop-down to select an internal HDRP lighting structure to visualize on screen.
  • None: Select this option to disable this debug feature.
  • Tile: Select this option to display an overlay of each lighting tile, and the number of lights in them.
  • Cluster: Select this option to display an overlay of each lighting cluster that intersects opaque geometry, and the number of lights in them.
  • Material Feature Variants: Select this option to display the index of the lighting Shader variant that HDRP uses for a tile. You can find variant descriptions in the lit.hlsl file.
| +| **Tile/Cluster Debug** | **Tile/Cluster Debug By Category** | Use the drop-down to select the Light type that you want to display the Tile/Cluster debug information for. The options include Light Types, Decals, and Local Volumetric Fog. This property only appears when you select Tile or Cluster from the Tile/Cluster Debug drop-down. | +| **Tile/Cluster Debug** | **Cluster Debug Mode** | Use the drop-down to select the visualization mode for the cluster. The options are:
  • Visualize Opaque: Displays cluster information on opaque geometry.
  • Visualize Slice: Displays cluster information at a set distance from the camera.
  • This property only appears when you select Cluster from the Tile/Cluster Debug drop-down.
| +| **Tile/Cluster Debug** | **Cluster Distance** | Use this slider to set the distance from the camera at which to display the cluster slice. This property only appears when you select VisualizeSlice from the Cluster Debug Mode drop-down. | +| **Display Sky Reflection** | N/A | Enable the checkbox to display an overlay of the cube map that the current sky generates and HDRP uses for lighting. | +| **Display Sky Reflection** | **Sky Reflection Mipmap** | Use the slider to set the mipmap level of the sky reflection cubemap. Use this to view the sky reflection cubemap's different mipmap levels.
  • This property only appears when you enable the Display Sky Reflection checkbox.
| +| **Display Light Volumes** | N/A | Enable the checkbox to display an overlay of all light bounding volumes. | +| **Display Light Volumes** | **Light Volume Debug Type** | Use the drop-down to select the method HDRP uses to display the light volumes.
  • Gradient: Select this option to display the light volumes as a gradient.
  • ColorAndedge: Select this option to display the light volumes as a plain color (a different color for each Light Type) with a red border for readability.
  • This property only appears when you enable the Display Light Volumes checkbox.
| +| **Display Light Volumes** | **Max Debug Light Count** | Use the slider to rescale the gradient. Lower this value to make the screen turn red faster. Use this property to change the maximum acceptable number of lights for your application and still see areas in red. This property only appears when you set the Display Light Volumes mode to Gradient. | +| **Display Cookie Atlas** | N/A | Enable the checkbox to display an overlay of the cookie atlas. | +| **Display Cookie Atlas** | **Mip Level** | Use the slider to set the mipmap level of the cookie atlas. This property only appears when you enable the Display Cookie Atlas checkbox. | +| **Display Cookie Atlas** | **Clear Cookie Atlas** | Enable the checkbox to clear the cookie atlas at each frame. This property only appears when you enable the Display Cookie Atlas checkbox. | +| **Display Planar Reflection Atlas** | N/A | Enable the checkbox to display an overlay of the planar reflection atlas. | +| **Display Planar Reflection Atlas** | **Mip Level** | Use the slider to set the mipmap level of the planar reflection atlas. This property only appears when you enable the Display Planar Reflection Atlas checkbox. | +| **Display Planar Reflection Atlas** | **Clear Planar Atlas** | Enable the checkbox to clear the planar reflection atlas at each frame. This property only appears when you enable the Display Planar Reflection Atlas checkbox. | +| **Debug Overlay Screen Ratio** | N/A | Set the size of the debug overlay textures with a ratio of the screen size. The default value is 0.33 which is 33% of the screen size. | @@ -477,13 +190,13 @@ The **Lighting** panel has tools that you can use to visualize various component The **Volume** panel has tools that you can use to visualize the Volume Components affecting a camera. -| **Property** | **Description** | -| ---------------------- | ---------------------------------------------------- | -| **Component** | Use the drop-down to select which volume component to visualize. | -| **Camera** | Use the drop-down to select which camera to use as volume anchor. | -| **Parameter** | List of parameters for the selected component. | -| **Interpolated Value** | Current value affecting the choosen camera for each parameter. | -| **Other columns** | Each one of the remaining columns display the parameter values of a volume affecting the selected **Camera**. They're sorted from left to right by decreasing influence. | +| **Property** | **Description** | +|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Component** | Use the drop-down to select which volume component to visualize. | +| **Camera** | Use the drop-down to select which camera to use as volume anchor. | +| **Parameter** | List of parameters for the selected component. | +| **Interpolated Value** | Current value affecting the choosen camera for each parameter. | +| **Other columns** | Each one of the remaining columns display the parameter values of a volume affecting the selected **Camera**. They're sorted from left to right by decreasing influence. | @@ -493,57 +206,57 @@ These settings make it possible for you to visualize [Adaptive Probe Volumes](pr ### Subdivision Visualization -| **Property** | **Sub-property** | **Description** | -|-|-|-| -| **Display Cells** || Display cells. Refer to [Understanding Adaptive Probe Volumes](probevolumes-concept.md) for more information. | -| **Display Bricks** || Display bricks. Refer to [Understanding Adaptive Probe Volumes](probevolumes-concept.md) for more information. | -| **Live Subdivision Preview** || Enable a preview of Adaptive Probe Volume data in the scene without baking. This might make the Editor slower. This setting appears only if you select **Display Cells** or **Display Bricks**. | -|| **Cell Updates Per Frame** | Set the number of cells, bricks, and probe positions to update per frame. Higher values might make the Editor slower. The default value is 4. This property appears only if you enable **Live Subdivision Preview**. | -|| **Update Frequency** | Set how frequently Unity updates cell, bricks, and probe positions, in seconds. The default value is 1. This property appears only if you enable **Live Subdivision Preview**. | -| **Debug Draw Distance** || Set how far from the scene camera Unity draws debug visuals for cells and bricks, in meters. The default value is 500. | +| **Property** | **Sub-property** | **Description** | +|------------------------------|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Display Cells** | N/A | Display cells. Refer to [Understanding Adaptive Probe Volumes](probevolumes-concept.md) for more information. | +| **Display Bricks** | N/A | Display bricks. Refer to [Understanding Adaptive Probe Volumes](probevolumes-concept.md) for more information. | +| **Live Subdivision Preview** | N/A | Enable a preview of Adaptive Probe Volume data in the scene without baking. This might make the Editor slower. This setting appears only if you select **Display Cells** or **Display Bricks**. | +| **Live Subdivision Preview** | **Cell Updates Per Frame** | Set the number of cells, bricks, and probe positions to update per frame. Higher values might make the Editor slower. The default value is 4. This property appears only if you enable **Live Subdivision Preview**. | +| **Live Subdivision Preview** | **Update Frequency** | Set how frequently Unity updates cell, bricks, and probe positions, in seconds. The default value is 1. This property appears only if you enable **Live Subdivision Preview**. | +| **Debug Draw Distance** | N/A | Set how far from the scene camera Unity draws debug visuals for cells and bricks, in meters. The default value is 500. | ### Probe Visualization -| **Property** | **Sub-property** | **Description** | -|-|-|-| -| **Display Probes** || Display probes. | -|| **Probe Shading Mode** | Set what the Rendering Debugger displays. The options are:
  • SH: Display the [spherical harmonics (SH) lighting data](https://docs.unity3d.com/Manual/LightProbes-TechnicalInformation.html) for the final color calculation. The number of bands depends on the **SH Bands** setting in the active [HDRP Asset](HDRP-Asset.md).
  • SHL0: Display the spherical harmonics (SH) lighting data with only the first band.
  • SHL0L1: Display the spherical Harmonics (SH) lighting data with the first two bands.
  • Validity: Display whether probes are valid, based on the number of backfaces the probe samples. Refer to [Fix issues with Adaptive Probe Volumes](probevolumes-fixissues.md) for more information about probe validity.
  • Probe Validity Over Dilation Threshold: Display red if a probe samples too many backfaces, based on the **Validity Threshold** set in the [Adaptive Probe Volumes panel](probevolumes-lighting-panel-reference.md). This means the probe can't be baked or sampled.
  • Invalidated By Touchup Volumes: Display probes that a [Probe Adjustment Volume component](probevolumes-adjustment-volume-component-reference.md) has made invalid.
  • Size: Display a different color for each size of [brick](probevolumes-concept.md).
  • Sky Occlusion SH: If you enable [sky occlusion](probevolumes-skyocclusion.md), this setting displays the amount of indirect light the probe receives from the sky that bounced off static GameObjects. The value is a scalar, so it displays as a shade of gray.
  • Sky Direction: Display a green circle that represents the direction from the probe to the sky. This setting displays a red circle if Unity can't calculate the direction, or **Sky Direction** in the [Adaptive Probe Volumes panel](probevolumes-lighting-panel-reference.md) is disabled.
| -|| **Debug Size** | Set the size of the displayed probes. The default is 0.3. | -|| **Exposure Compensation** | Set the brightness of the displayed probes. Decrease the value to increase brightness. The default is 0. This property appears only if you set **Probe Shading Mode** to **SH**, **SHL0**, or **SHL0L1**. | -|| **Max Subdivisions Displayed** | Set the lowest probe density to display. For example, set this to 0 to display only the highest probe density. | -|| **Min Subdivisions Displayed** | Set the highest probe density to display. | -| **Debug Probe Sampling** || Display how probes are sampled for a pixel. In the Scene view, in the **Adaptive Probe Volumes** overlay, select **Select Pixel** to change the pixel. | -|| **Debug Size** | Set the size of the **Debug Probe Sampling** display. | -|| **Debug With Sampling Noise** | Enable sampling noise for this debug view. Enabling this gives more accurate information, but makes the information more difficult to read. | -| **Virtual Offset Debug** || Display the offsets Unity applies to Light Probe capture positions. | -|| **Debug Size** | Set the size of the arrows that represent Virtual Offset values. | -| **Debug Draw Distance** || Set how far from the scene camera Unity draws debug visuals for cells and bricks, in meters. The default is 200. | -| **Auto Display Probes** || Display probes in the Scene view, if you select a volume with a Probe Adjustment Volume component in the Hierarchy window. | -| **Isolate Affected** || Display only probes affected by a volume with a Probe Adjustment Volume component, if you select the volume in the Hierarchy window. | +| **Property** | **Sub-property** | **Description** | +|--------------------------|--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Display Probes** | N/A | Display probes. | +| **Display Probes** | **Probe Shading Mode** | Set what the Rendering Debugger displays. The options are:
  • SH: Display the [spherical harmonics (SH) lighting data](https://docs.unity3d.com/Manual/LightProbes-TechnicalInformation.html) for the final color calculation. The number of bands depends on the **SH Bands** setting in the active [HDRP Asset](HDRP-Asset.md).
  • SHL0: Display the spherical harmonics (SH) lighting data with only the first band.
  • SHL0L1: Display the spherical Harmonics (SH) lighting data with the first two bands.
  • Validity: Display whether probes are valid, based on the number of backfaces the probe samples. Refer to [Fix issues with Adaptive Probe Volumes](probevolumes-fixissues.md) for more information about probe validity.
  • Probe Validity Over Dilation Threshold: Display red if a probe samples too many backfaces, based on the **Validity Threshold** set in the [Adaptive Probe Volumes panel](probevolumes-lighting-panel-reference.md). This means the probe can't be baked or sampled.
  • Invalidated By Touchup Volumes: Display probes that a [Probe Adjustment Volume component](probevolumes-adjustment-volume-component-reference.md) has made invalid.
  • Size: Display a different color for each size of [brick](probevolumes-concept.md).
  • Sky Occlusion SH: If you enable [sky occlusion](probevolumes-skyocclusion.md), this setting displays the amount of indirect light the probe receives from the sky that bounced off static GameObjects. The value is a scalar, so it displays as a shade of gray.
  • Sky Direction: Display a green circle that represents the direction from the probe to the sky. This setting displays a red circle if Unity can't calculate the direction, or **Sky Direction** in the [Adaptive Probe Volumes panel](probevolumes-lighting-panel-reference.md) is disabled.
| +| **Display Probes** | **Debug Size** | Set the size of the displayed probes. The default is 0.3. | +| **Display Probes** | **Exposure Compensation** | Set the brightness of the displayed probes. Decrease the value to increase brightness. The default is 0. This property appears only if you set **Probe Shading Mode** to **SH**, **SHL0**, or **SHL0L1**. | +| **Display Probes** | **Max Subdivisions Displayed** | Set the lowest probe density to display. For example, set this to 0 to display only the highest probe density. | +| **Display Probes** | **Min Subdivisions Displayed** | Set the highest probe density to display. | +| **Debug Probe Sampling** | N/A | Display how probes are sampled for a pixel. In the Scene view, in the **Adaptive Probe Volumes** overlay, select **Select Pixel** to change the pixel. | +| **Debug Probe Sampling** | **Debug Size** | Set the size of the **Debug Probe Sampling** display. | +| **Debug Probe Sampling** | **Debug With Sampling Noise** | Enable sampling noise for this debug view. Enabling this gives more accurate information, but makes the information more difficult to read. | +| **Virtual Offset Debug** | N/A | Display the offsets Unity applies to Light Probe capture positions. | +| **Virtual Offset Debug** | **Debug Size** | Set the size of the arrows that represent Virtual Offset values. | +| **Debug Draw Distance** | N/A | Set how far from the scene camera Unity draws debug visuals for cells and bricks, in meters. The default is 200. | +| **Auto Display Probes** | N/A | Display probes in the Scene view, if you select a volume with a Probe Adjustment Volume component in the Hierarchy window. | +| **Isolate Affected** | N/A | Display only probes affected by a volume with a Probe Adjustment Volume component, if you select the volume in the Hierarchy window. | ### Streaming Use the following properties to control how HDRP streams Adaptive Probe Volumes. Refer to [Streaming Adaptive Probe Volumes](probevolumes-streaming.md) for more information. -| **Property** | **Description** | -| ------------ | --------------- | -| **Freeze Streaming** | Stop Unity from streaming probe data. | -| **Display Streaming Score** | If you enable **Display Cells**, this setting darkens cells that have a lower priority for streaming. Cells closer to the camera usually have the highest priority. | -| **Maximum cell streaming** | Stream as many cells as possible every frame. | +| **Property** | **Description** | +|---------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Freeze Streaming** | Stop Unity from streaming probe data. | +| **Display Streaming Score** | If you enable **Display Cells**, this setting darkens cells that have a lower priority for streaming. Cells closer to the camera usually have the highest priority. | +| **Maximum cell streaming** | Stream as many cells as possible every frame. | | **Display Index Fragmentation** | Open an overlay that displays how fragmented the streaming memory is. A green square is an area of used memory. The more spaces between the green squares, the more fragmented the memory. | -| **Index Fragmentation Rate** | Displays the amount of fragmentation as a numerical value, where 0 is no fragmentation. | -| **Verbose Log** | Log information about streaming. | +| **Index Fragmentation Rate** | Displays the amount of fragmentation as a numerical value, where 0 is no fragmentation. | +| **Verbose Log** | Log information about streaming. | ### Scenario Blending Use the following properties to control how HDRP blends Lighting Scenarios. Refer to [Bake different lighting setups with Lighting Scenarios](probevolumes-bakedifferentlightingsetups.md) for more information. -| **Property** | **Description** | -| - | - | -| **Number of Cells Blended Per Frame** | Determines the maximum number of cells Unity blends per frame. The default is 10,000. | -| **Turnover Rate** | Set the blending priority of cells close to the camera. The range is 0 to 1, where 0 sets the cells close to the camera with high priority, and 1 sets all cells with equal priority. Increase **Turnover Rate** to avoid cells close to the camera blending too frequently. | -| **Scenario To Blend With** | Select a Lighting Scenario to blend with the active Lighting Scenario. | -| **Scenario Blending Factor** | Set how far to blend from the active Lighting Scenario to the **Scenario To Blend With**. The range is 0 to 1, where 0 is fully the active Lighting Scenario, and 1 is fully the **Scenario To Blend With**. | +| **Property** | **Description** | +|---------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Number of Cells Blended Per Frame** | Determines the maximum number of cells Unity blends per frame. The default is 10,000. | +| **Turnover Rate** | Set the blending priority of cells close to the camera. The range is 0 to 1, where 0 sets the cells close to the camera with high priority, and 1 sets all cells with equal priority. Increase **Turnover Rate** to avoid cells close to the camera blending too frequently. | +| **Scenario To Blend With** | Select a Lighting Scenario to blend with the active Lighting Scenario. | +| **Scenario Blending Factor** | Set how far to blend from the active Lighting Scenario to the **Scenario To Blend With**. The range is 0 to 1, where 0 is fully the active Lighting Scenario, and 1 is fully the **Scenario To Blend With**. | @@ -555,130 +268,97 @@ The **Rendering** panel has tools that you can use to visualize various HDRP ren Use the drop-down to select a rendering mode to display as an overlay on the screen. -| Property | Description | -|-|-| -| **Motion Vectors** | Select this option to display motion vectors. Note that object motion vectors aren't visible in the Scene view. | -| **World Space Position** | Select this option to display world space positions. | -| **NaN Tracker** | Select this option to display an overlay that highlights [NaN](https://en.wikipedia.org/wiki/NaN) values. | -| **ColorLog** | Select this option to display how the raw, log-encoded buffer looks before color grading takes place. | -| **DepthOfFieldCoc** | Select this option to display the circle of confusion for the depth of field effect. The circle of confusion displays how much the depth of field effect blurs a given pixel/area. | -| **Quad Overdraw** | Select this option to display an overlay that highlights gpu quads running multiple fragment shaders. This is mainly caused by small or thin triangles. Use LODs to reduce the amount of overdraw when objects are far away. (This mode is currently not supported on Metal and PS4). | -| **Vertex Density** | Select this option to display an overlay that highlights pixels running multiple vertex shaders. A vertex can be run multiple times when part of different triangles. This helps finding models that need LODs. (This mode is currently not supported on Metal). | -| **TransparencyOverdraw** | Select this option to view the number of transparent pixels that draw over one another. This represents the amount of on-screen overlapping of transparent pixel. This is useful to see the amount of pixel overdraw for transparent GameObjects from different points of view in the Scene. This debug option displays each pixel as a heat map going from black (which represents no transparent pixels) through blue to red (at which there are **Max Pixel Cost** number of transparent pixels). | -| **RequestedVirtualTextureTiles** | Select this option to display what texture tile each pixel uses. Pixels that this debug view renders with the same color request the same texture tile to be streamed into video memory by the streaming virtual texturing system. This debug view is useful to see which areas of the screen use textures that the virtual texturing system steams into video memory. It can help to identify issues with the virtual texture streaming system. | -| **LensFlareScreenSpace** | Display the lens flares that the [Screen Space Lens Flare](shared/lens-flare/Override-Screen-Space-Lens-Flare.html) override generates. | -| **Compute Thickness** | Select this option to display thickness for each layer selected in the current HDRP Asset and configure the following properties:
• **Layer Mask**: Set the layer number to visualize in the debug view.
• **Show Overlap Count**: Highlight the triangles that intersect for each pixel.
• **Thickness Scale**: Set the range (in meters) of the ComputeThickness debug view. When you enable Show Overlap Count, this setting affects the Overlap Count debug view.
For more information on how to debug compute thickness, refer to [Sample and use material thickness](Compute-Thickness.md). | -| **Max Pixel Cost** | The scale of the transparency overdraw heat map. For example, a value of 10 displays a red pixel if 10 transparent pixels overlap. Any number of overdraw above this value also displays as red.
This property only appears if you set **Fullscreen Debug Mode** to **TransparencyOverdraw**. | -| **High Quality Lines** | Select this option to view underlying data used by tile-based software rasterizer for the [High Quality Line Rendering](Override-High-Quality-Lines.md) feature.
  • **Segments per Tile** displays a heatmap representing the number of segments in each tile.
  • **Tile Processor UV** displays the uv coordinate for each tile.
  • **Cluster Depth** displays segments based on their depth in the cluster structure that's used for transparent sorting.
| +| **Property** | **Description** | +|----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Motion Vectors** | Select this option to display motion vectors. Note that object motion vectors aren't visible in the Scene view. | +| **World Space Position** | Select this option to display world space positions. | +| **NaN Tracker** | Select this option to display an overlay that highlights [NaN](https://en.wikipedia.org/wiki/NaN) values. | +| **ColorLog** | Select this option to display how the raw, log-encoded buffer looks before color grading takes place. | +| **DepthOfFieldCoc** | Select this option to display the circle of confusion for the depth of field effect. The circle of confusion displays how much the depth of field effect blurs a given pixel/area. | +| **Quad Overdraw** | Select this option to display an overlay that highlights gpu quads running multiple fragment shaders. This is mainly caused by small or thin triangles. Use LODs to reduce the amount of overdraw when objects are far away. (This mode is currently not supported on Metal and PS4). | +| **Vertex Density** | Select this option to display an overlay that highlights pixels running multiple vertex shaders. A vertex can be run multiple times when part of different triangles. This helps finding models that need LODs. (This mode is currently not supported on Metal). | +| **TransparencyOverdraw** | Select this option to view the number of transparent pixels that draw over one another. This represents the amount of on-screen overlapping of transparent pixel. This is useful to see the amount of pixel overdraw for transparent GameObjects from different points of view in the Scene. This debug option displays each pixel as a heat map going from black (which represents no transparent pixels) through blue to red (at which there are **Max Pixel Cost** number of transparent pixels). | +| **RequestedVirtualTextureTiles** | Select this option to display what texture tile each pixel uses. Pixels that this debug view renders with the same color request the same texture tile to be streamed into video memory by the streaming virtual texturing system. This debug view is useful to see which areas of the screen use textures that the virtual texturing system steams into video memory. It can help to identify issues with the virtual texture streaming system. | +| **LensFlareScreenSpace** | Display the lens flares that the [Screen Space Lens Flare](shared/lens-flare/Override-Screen-Space-Lens-Flare.html) override generates. | +| **Compute Thickness** | Select this option to display thickness for each layer selected in the current HDRP Asset and configure the following properties:
  • Layer Mask: Set the layer number to visualize in the debug view.
  • Show Overlap Count: Highlight the triangles that intersect for each pixel.
  • Thickness Scale: Set the range (in meters) of the Compute Thickness debug view. When you enable Show Overlap Count, this setting affects the Overlap Count debug view.
  • For more information on how to debug compute thickness, refer to Sample and use material thickness.
| +| **Max Pixel Cost** | The scale of the transparency overdraw heat map. For example, a value of 10 displays a red pixel if 10 transparent pixels overlap. Any number of overdraw above this value also displays as red. This property only appears if you set **Fullscreen Debug Mode** to **TransparencyOverdraw**. | +| **High Quality Lines** | Select this option to view underlying data used by tile-based software rasterizer for the [High Quality Line Rendering](Override-High-Quality-Lines.md) feature.
  • **Segments per Tile** displays a heatmap representing the number of segments in each tile.
  • **Tile Processor UV** displays the uv coordinate for each tile.
  • **Cluster Depth** displays segments based on their depth in the cluster structure that's used for transparent sorting.
| ### Mipmap Streaming -| **Property** | **Description** | -|-|-| -| **Disable Mip Caching** | If you enable **Disable Mip Caching**, Unity doesn't cache mipmap levels in GPU memory, and constantly discards mipmap levels from GPU memory when they're no longer needed. This means the mipmap streaming debug views more accurately display which mipmap levels Unity uses at the current time. Enabling this setting increases the amount of data Unity transfers from disk to the CPU and the GPU. | -| **Debug View** | Set a mipmap streaming debug view. Options:
  • **None**: Display the normal view.
  • **Mip Streaming Performance**: Use color to indicate which textures use mipmap streaming, and whether mipmap streaming limits the number of mipmap levels Unity loads.
  • **Mip Streaming Status**: Use color on materials to indicate whether their textures use mipmap streaming. Diagonal stripes mean some of the textures use a [`requestedMipmapLevel`](https://docs.unity3d.com/6000.0/Documentation/ScriptReference/Texture2D-requestedMipmapLevel.html) that overrides mipmap streaming. Yellow means Unity can't stream the texture, or the texture is assigned to terrain.
  • **Mip Streaming Activity**: Use color to indicate whether Unity recently streamed the textures.
  • **Mip Streaming Priority**: Use color to indicate the streaming priority of the textures. Set streaming priority for a texture in the [**Texture Import Settings** window](https://docs.unity3d.com/6000.0/Documentation/Manual/class-TextureImporter.html).
  • **Mip Count**: Display the number of mipmap levels Unity loads for the textures.
  • **Mip Ratio**: Use color to indicate the pixel density of the highest-resolution mipmap levels Unity uploads for the textures.
| -| **Debug Opacity** | Set the opacity of the **Debug View** you select. 0 means not visible and 1 means fully visible. This property is visible only if **Debug View** is not set to **None**. | -| **Combined Per Material** | Set the **Debug View** to display debug information of all the textures on a material, not individual texture slots. This property is only visible if **Debug View** is set to **Mip Streaming Status** or **Mip Streaming Activity**. | -| **Material Texture Slot** | Set which texture Unity uses from each material to display debug information. For example, set **Material Texture Slot** to **Slot 3** to display debug information for the fourth texture. If a material has fewer textures than the **Material Texture Slot** value, Unity uses no texture. This property is visible only if **Combined Per Material** is disabled, and **Debug View** is not set to **None**. | -| **Display Status Codes** | Display more detailed statuses for textures that display as **Not streaming** or **Warning** in the **Mip Streaming Status** debug view. This property is visible only if **Debug View** is set to **Mip Streaming Status**. | -| **Activity Timespan** | Set how long a texture displays as **Just streamed**, in seconds. This property is visible only if **Debug View** is set to **Mip Streaming Activity**. | -| **Terrain Texture** | Set which terrain texture Unity displays. You can select either **Control** for the control texture, or one of the diffuse textures. This property is visible only if **Debug View** is not set to **None**. | +| **Property** | **Description** | +|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Disable Mip Caching** | If you enable **Disable Mip Caching**, Unity doesn't cache mipmap levels in GPU memory, and constantly discards mipmap levels from GPU memory when they're no longer needed. This means the mipmap streaming debug views more accurately display which mipmap levels Unity uses at the current time. Enabling this setting increases the amount of data Unity transfers from disk to the CPU and the GPU. | +| **Debug View** | Set a mipmap streaming debug view. Options:
  • **None**: Display the normal view.
  • **Mip Streaming Performance**: Use color to indicate which textures use mipmap streaming, and whether mipmap streaming limits the number of mipmap levels Unity loads.
  • **Mip Streaming Status**: Use color on materials to indicate whether their textures use mipmap streaming. Diagonal stripes mean some of the textures use a [`requestedMipmapLevel`](https://docs.unity3d.com/6000.0/Documentation/ScriptReference/Texture2D-requestedMipmapLevel.html) that overrides mipmap streaming. Yellow means Unity can't stream the texture, or the texture is assigned to terrain.
  • **Mip Streaming Activity**: Use color to indicate whether Unity recently streamed the textures.
  • **Mip Streaming Priority**: Use color to indicate the streaming priority of the textures. Set streaming priority for a texture in the [**Texture Import Settings** window](https://docs.unity3d.com/6000.0/Documentation/Manual/class-TextureImporter.html).
  • **Mip Count**: Display the number of mipmap levels Unity loads for the textures.
  • **Mip Ratio**: Use color to indicate the pixel density of the highest-resolution mipmap levels Unity uploads for the textures.
| +| **Debug Opacity** | Set the opacity of the **Debug View** you select. 0 means not visible and 1 means fully visible. This property is visible only if **Debug View** is not set to **None**. | +| **Combined Per Material** | Set the **Debug View** to display debug information of all the textures on a material, not individual texture slots. This property is only visible if **Debug View** is set to **Mip Streaming Status** or **Mip Streaming Activity**. | +| **Material Texture Slot** | Set which texture Unity uses from each material to display debug information. For example, set **Material Texture Slot** to **Slot 3** to display debug information for the fourth texture. If a material has fewer textures than the **Material Texture Slot** value, Unity uses no texture. This property is visible only if **Combined Per Material** is disabled, and **Debug View** is not set to **None**. | +| **Display Status Codes** | Display more detailed statuses for textures that display as **Not streaming** or **Warning** in the **Mip Streaming Status** debug view. This property is visible only if **Debug View** is set to **Mip Streaming Status**. | +| **Activity Timespan** | Set how long a texture displays as **Just streamed**, in seconds. This property is visible only if **Debug View** is set to **Mip Streaming Activity**. | +| **Terrain Texture** | Set which terrain texture Unity displays. You can select either **Control** for the control texture, or one of the diffuse textures. This property is visible only if **Debug View** is not set to **None**. | ### Color Picker The **Color Picker** works with whichever debug mode HDRP displays at the time. This means that you can see the values of various components of the rendering like Albedo or Diffuse Lighting. By default, this displays the value of the main High Dynamic Range (HDR) color buffer. -| **Property** | **Description** | -| --------------------- | ------------------------------------------------------------ | -| **Debug Mode** | Use the drop-down to select the format of the color picker display. | +| **Property** | **Description** | +|----------------|-------------------------------------------------------------------------------------------------| +| **Debug Mode** | Use the drop-down to select the format of the color picker display. | | **Font Color** | Use the color picker to select a color for the font that the Color Picker uses for its display. | ### False Color Mode and Freeze Camera For Culling - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
False Color ModeEnable the checkbox to define intensity ranges that the debugger uses to display a color temperature gradient for the current frame. The color temperature gradient goes from blue, to green, to yellow, to red.
Range Threshold 0Set the first split for the intensity range.
This property only appears when you enable the False Color Mode checkbox.
Range Threshold 1Set the second split for the intensity range.
This property only appears when you enable the False Color Mode checkbox.
Range Threshold 2Set the third split for the intensity range.
This property only appears when you enable the False Color Mode checkbox.
Range Threshold 3Set the final split for the intensity range.
This property only appears when you enable the False Color Mode checkbox.
MSAA SamplesUse the drop-down to select the number of samples the debugger uses for MSAA.
Freeze Camera for CullingUse the drop-down to select a Camera to freeze to check its culling. To check if the Camera's culling works correctly, freeze the Camera and move occluders around it.
+| **Property** | **Description** | +|-------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **False Color Mode** | Enable the checkbox to define intensity ranges that the debugger uses to display a color temperature gradient for the current frame. The color temperature gradient goes from blue, to green, to yellow, to red.
  • Range Threshold 0: Set the first split for the intensity range. This property only appears when you enable the False Color Mode checkbox.
  • Range Threshold 1: Set the second split for the intensity range. This property only appears when you enable the False Color Mode checkbox.
  • Range Threshold 2: Set the third split for the intensity range. This property only appears when you enable the False Color Mode checkbox.
  • Range Threshold 3: Set the final split for the intensity range. This property only appears when you enable the False Color Mode checkbox.
| +| **MSAA Samples** | Use the drop-down to select the number of samples the debugger uses for MSAA. | +| **Freeze Camera for Culling** | Use the drop-down to select a Camera to freeze to check its culling. To check if the Camera's culling works correctly, freeze the Camera and move occluders around it. | ### Color Monitors The **Color monitors** are a set of industry-standard monitors to help artists control the overall look and exposure of a scene. -| **Property** | **Description** | -|------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Waveform** | Displays the full range of luma (brightness) information in the Camera’s output. The horizontal axis of the graph corresponds to the render (from left to right) and the vertical axis indicates the brightness value. | -| **Exposure** | Determines the exposure multiplier HDRP applies to the waveform values.

This property only appears when you enable the **Waveform** checkbox. | -| **Parade mode** | Splits the image into red, green and blue separately. You can use this to visualise the RGB balance of the Camera's image. This helps you to see large offsets in one particular channel, or to determine if GameObjects are true black or true white. A true black, white, or grey GameObject has equal values across all channels.

This property only appears when you enable the **Waveform** checkbox. | -| **Vectorscope** | The Vectorscope monitor measures the overall range of hue and saturation within the Camera’s image in real-time. To display the data, it uses a scatter graph relative to the center of the Vectorscope.

The Vectorscope measures hue values between yellow, red, magenta, blue, cyan and green. The center of the Vectorscope represents absolute zero saturation and the edges represent the highest level of saturation. To determine the hues in your scene and their saturation, look at the distribution of the Vectorscope’s scatter graph.
To identify whether there is a color imbalance in the image, look at how close the middle of the Vectorscope graph is to the absolute center. If the Vectorscope graph is off-center, this indicates that there is a color cast (tint) in the image. | -| **Exposure** | Determines the exposure multiplier HDRP applies to the vectorscope values.

This property only appears when you enable the **Vectorscope** checkbox. | -| **Size** | The size ratio of the color monitors. | - -| **Property** | **Description** | -| --- | --- | -| **Clear Render Targets At Creation** | Clears render textures the first time the render graph system uses them. | -| **Clear Render Targets When Freed** | Clears render textures when they're no longer used by render graph. | -| **Disable Pass Culling** | Disables HDRP culling render passes that have no impact on the final render. | -| **Disable Pass Merging** | Disables HDRP merging render passes. | -| **Immediate Mode** | Enables the render graph system evaluating passes immediately after it creates them. | -| **Enable Logging** | Enables logging to the **Console** window. | -| **Log Frame Information** | Logs how HDRP uses the resources during the frame, in the **Console** window. | -| **Log Resources** | Logs the resources HDRP uses during the frame, in the **Console** window. | +| **Property** | **Description** | +|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Waveform** | Displays the full range of luma (brightness) information in the Camera’s output. The horizontal axis of the graph corresponds to the render (from left to right) and the vertical axis indicates the brightness value. | +| **Exposure** | Determines the exposure multiplier HDRP applies to the waveform values. This property only appears when you enable the **Waveform** checkbox. | +| **Parade mode** | Splits the image into red, green and blue separately. You can use this to visualise the RGB balance of the Camera's image. This helps you to see large offsets in one particular channel, or to determine if GameObjects are true black or true white. A true black, white, or grey GameObject has equal values across all channels. This property only appears when you enable the **Waveform** checkbox. | +| **Vectorscope** | The Vectorscope monitor measures the overall range of hue and saturation within the Camera’s image in real-time. To display the data, it uses a scatter graph relative to the center of the Vectorscope. The Vectorscope measures hue values between yellow, red, magenta, blue, cyan and green. The center of the Vectorscope represents absolute zero saturation and the edges represent the highest level of saturation. To determine the hues in your scene and their saturation, look at the distribution of the Vectorscope’s scatter graph.
To identify whether there is a color imbalance in the image, look at how close the middle of the Vectorscope graph is to the absolute center. If the Vectorscope graph is off-center, this indicates that there is a color cast (tint) in the image. | +| **Exposure** | Determines the exposure multiplier HDRP applies to the vectorscope values. This property only appears when you enable the **Vectorscope** checkbox. | +| **Size** | The size ratio of the color monitors. | + +| **Property** | **Description** | +|--------------------------------------|--------------------------------------------------------------------------------------| +| **Clear Render Targets At Creation** | Clears render textures the first time the render graph system uses them. | +| **Clear Render Targets When Freed** | Clears render textures when they're no longer used by render graph. | +| **Disable Pass Culling** | Disables HDRP culling render passes that have no impact on the final render. | +| **Disable Pass Merging** | Disables HDRP merging render passes. | +| **Immediate Mode** | Enables the render graph system evaluating passes immediately after it creates them. | +| **Enable Logging** | Enables logging to the **Console** window. | +| **Log Frame Information** | Logs how HDRP uses the resources during the frame, in the **Console** window. | +| **Log Resources** | Logs the resources HDRP uses during the frame, in the **Console** window. | The **NVIDIA device debug view** is a panel that displays a list of the current feature states of NVIDIA Deep Learning Super Sampling (DLSS). Each row represents an active screen in which DLSS is running. -| **Information** | **Description** | -| ------------------------ | ------------------ | -| **NVUnityPlugin Version**| Displays the current internal version id of the NVIDIA Unity Plugin that interacts with DLSS. | -| **NGX API Version** | Displays the actual version which DLSS operates on. | -| **Device Status** | Displays the current status of the NVIDIA driver. If an internal error occurred when initializing the driver, Unity displays the error here. | -| **DLSS Supported** | Displays **True** if your project supports DLSS at runtime. Otherwise, displays **False**. | -| **DLSS Slot ID** | Displays an internal ID for the particular DLSS view being displayed. | -| **Status** | Displays whether the view is **valid** or **invalid**. A view is invalid if there is an internal error, or if the Scriptable Render Pipeline passes incorrect parameters. | -| **Input resolution** | Displays the current input resolution. Unity calculates this from the screen percentage specified for dynamic resolution scaling. | -| **Output resolution** | Displays the target resolution for this particular DLSS view. | -| **Quality** | Displays the quality selected for this particular DLSS view. | +| **Information** | **Description** | +|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **NVUnityPlugin Version** | Displays the current internal version id of the NVIDIA Unity Plugin that interacts with DLSS. | +| **NGX API Version** | Displays the actual version which DLSS operates on. | +| **Device Status** | Displays the current status of the NVIDIA driver. If an internal error occurred when initializing the driver, Unity displays the error here. | +| **DLSS Supported** | Displays **True** if your project supports DLSS at runtime. Otherwise, displays **False**. | +| **DLSS Slot ID** | Displays an internal ID for the particular DLSS view being displayed. | +| **Status** | Displays whether the view is **valid** or **invalid**. A view is invalid if there is an internal error, or if the Scriptable Render Pipeline passes incorrect parameters. | +| **Input resolution** | Displays the current input resolution. Unity calculates this from the screen percentage specified for dynamic resolution scaling. | +| **Output resolution** | Displays the target resolution for this particular DLSS view. | +| **Quality** | Displays the quality selected for this particular DLSS view. | The **History Buffers view** lets you display various render pipeline full screen buffers that persist across multiple frames. -| **Property** | **Description** | -| ------------------ | ------------------------------------------------------------ | -| **Buffer** | Choose the history buffer to visualize as a full screen output. | +| **Property** | **Description** | +|--------------------|-----------------------------------------------------------------------------------------------------------------------| +| **Buffer** | Choose the history buffer to visualize as a full screen output. | | **Frame Index** | Choose what frame version of the history buffer to visualize. Certain buffers only have a limited number of versions. | -| **Apply Exposure** | Enable exposure correction of the buffer. It is only available for certain history buffers. | +| **Apply Exposure** | Enable exposure correction of the buffer. It is only available for certain history buffers. | @@ -690,12 +370,12 @@ In the **Rendering Debugger**, each active Camera in the Scene has its own debug The following columns are available for each Frame Setting: -| **Column** | **Description** | -| -------------- | ------------------------------------------------------------ | -| **Debug** | Displays Frame Setting values you can modify for the selected Camera. You can use these to temporarily alter the Camera’s Frame Settings for debugging purposes. You can't enable Frame Setting features that your HDRP Asset doesn't support. | -| **Sanitized** | Displays the Frame Setting values that the selected Camera uses after Unity checks to see if your HDRP Asset supports them. | -| **Overridden** | Displays the Frame Setting values that the selected Camera overrides. If you don't check the **Custom Frame Settings** checkbox, check it and don't override any settings, this column is identical to the **Default** column. | -| **Default** | Displays the default Frame Setting values in your current [HDRP Asset](HDRP-Asset.md). | +| **Column** | **Description** | +|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Debug** | Displays Frame Setting values you can modify for the selected Camera. You can use these to temporarily alter the Camera’s Frame Settings for debugging purposes. You can't enable Frame Setting features that your HDRP Asset doesn't support. | +| **Sanitized** | Displays the Frame Setting values that the selected Camera uses after Unity checks to see if your HDRP Asset supports them. | +| **Overridden** | Displays the Frame Setting values that the selected Camera overrides. If you don't check the **Custom Frame Settings** checkbox, check it and don't override any settings, this column is identical to the **Default** column. | +| **Default** | Displays the default Frame Setting values in your current [HDRP Asset](HDRP-Asset.md). | Unity processes **Sanitized**, **Overridden**, and **Default** in a specific order: @@ -706,7 +386,7 @@ Unity processes **Sanitized**, **Overridden**, and **Default** in a specific ord ### Interpreting the Camera window -![](Images/RenderPipelineDebug2.png) +![In this screenshot of the Camera window, Ray Tracing is enabled in the Camera's Frame Settings but disabled in the HDRP Asset, while Decals is enabled by default but disabled in the Camera's Custom Frame Settings.](Images/RenderPipelineDebug2.png) - In the image above, **Ray Tracing** is disabled at the **Sanitized** step, but enabled at the **Default** and **Overridden** steps. This means that, although **Ray Tracing** is enabled in the Frame Settings this Camera uses, it's not enabled in the HDRP Asset’s **Render Pipeline Supported Features**. - Also in the image above, **Decals** is disabled at the **Overridden** step, but enabled at the **Default** step. This means that **Decals** is enabled in the default Camera Frame Settings but disabled for that specific Camera’s **Custom Frame Settings**. @@ -717,10 +397,10 @@ Unity processes **Sanitized**, **Overridden**, and **Default** in a specific ord You can use the **Virtual Texturing** panel to visualize [Streaming Virtual Texturing](https://docs.unity3d.com/Manual/svt-streaming-virtual-texturing.html). -| **Property** | **Description** | -| ------------------------------------ | ------------------------------------------------------------- | -| **Debug disable Feedback Streaming** | Deactivate Streaming Virtual Texturing to quickly assess its cost in performance and memory at runtime. | -| **Textures with Preloaded Mips** | Display the total number of virtual textures Unity has loaded into the scene. Unity tries to preload the least detailed mipmap level (least being 128x128) into GPU memory. This number increases every time a material is loaded. | +| **Property** | **Description** | +|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Debug disable Feedback Streaming** | Deactivate Streaming Virtual Texturing to quickly assess its cost in performance and memory at runtime. | +| **Textures with Preloaded Mips** | Display the total number of virtual textures Unity has loaded into the scene. Unity tries to preload the least detailed mipmap level (least being 128x128) into GPU memory. This number increases every time a material is loaded. | @@ -730,53 +410,54 @@ The properties in this section let you visualize settings that [reduce rendering ### Occlusion Culling -|**Property**|**Sub-property**|**Description**| -|-|-|-| -| **Occlusion Test Overlay** || Display a heatmap of culled instances. The heatmap displays blue if there are few culled instances, through to red if there are many culled instances. If you enable this setting, culling might be slower. | -| **Occlusion Test Overlay Count Visible** || Display a heatmap of instances that Unity doesn't cull. The heatmap displays blue if there are many culled instances, through to red if there are few culled instances. This setting only has an effect if you enable **Occlusion Test Overlay**. | -| **Override Occlusion Test To Always Pass** || Set occluded objects as unoccluded. This setting affects both the Rendering Debugger and the scene. | -| **Occluder Context Stats** || Display the [**Occlusion Context Stats**](#occlusion-context-stats) section. | -| **Occluder Debug View** || Display an overlay with the occlusion textures and mipmaps Unity generates. | -|| **Occluder Debug View Index** | Set the occlusion texture to display. | -|| **Occluder Debug View Range Min** | Set the brightness of the minimum depth value. Increase this value to brighten objects that are far away from the view. | -|| **Occluder Debug View Range Max** | Set the brightness of the maximum depth value. Decrease this value to darken objects that are close to the view. | - -![](Images/renderingdebugger-gpuculling-heatmap.jpg)
+| **Property** | **Sub-property** | **Description** | +|--------------------------------------------|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Occlusion Test Overlay** | N/A | Display a heatmap of culled instances. The heatmap displays blue if there are few culled instances, through to red if there are many culled instances. If you enable this setting, culling might be slower. | +| **Occlusion Test Overlay Count Visible** | N/A | Display a heatmap of instances that Unity doesn't cull. The heatmap displays blue if there are many culled instances, through to red if there are few culled instances. This setting only has an effect if you enable **Occlusion Test Overlay**. | +| **Override Occlusion Test To Always Pass** | N/A | Set occluded objects as unoccluded. This setting affects both the Rendering Debugger and the scene. | +| **Occluder Context Stats** | N/A | Display the [**Occlusion Context Stats**](#occlusion-context-stats) section. | +| **Occluder Debug View** | N/A | Display an overlay with the occlusion textures and mipmaps Unity generates. | +| **Occluder Debug View** | **Occluder Debug View Index** | Set the occlusion texture to display. | +| **Occluder Debug View** | **Occluder Debug View Range Min** | Set the brightness of the minimum depth value. Increase this value to brighten objects that are far away from the view. | +| **Occluder Debug View** | **Occluder Debug View Range Max** | Set the brightness of the maximum depth value. Decrease this value to darken objects that are close to the view. | + +![The Rendering Debugger with Occlusion Test Overlay enabled. The red areas are where Unity culls many objects. The blue area is where Unity culls few objects.](Images/renderingdebugger-gpuculling-heatmap.jpg) + The Rendering Debugger with **Occlusion Test Overlay** enabled. The red areas are where Unity culls many objects. The blue area is where Unity culls few objects. -![](Images/renderingdebugger-gpuculling-overlay.jpg)
+![The Rendering Debugger with **Occluder Debug View** enabled. The overlay displays each mipmap level of the occlusion texture.](Images/renderingdebugger-gpuculling-overlay.jpg) + The Rendering Debugger with **Occluder Debug View** enabled. The overlay displays each mipmap level of the occlusion texture. ### Occlusion Context Stats The **Occlusion Context Stats** section lists the occlusion textures Unity generates. -|**Property**|**Description**| -|-|-| -| **Active Occlusion Contexts** | The number of occlusion textures. | -| **View Instance ID** | The instance ID of the camera Unity renders the view from, to create the occlusion texture. | -| **Subview Count** | The number of subviews. The value might be 2 or more if you use XR. | -| **Size Per Subview** | The size of the subview texture in bytes. | +| **Property** | **Description** | +|-------------------------------|---------------------------------------------------------------------------------------------| +| **Active Occlusion Contexts** | The number of occlusion textures. | +| **View Instance ID** | The instance ID of the camera Unity renders the view from, to create the occlusion texture. | +| **Subview Count** | The number of subviews. The value might be 2 or more if you use XR. | +| **Size Per Subview** | The size of the subview texture in bytes. | ### GPU Resident Drawer Settings -|**Section**|**Property**|**Sub-property**|**Description**| -|-|-|-|-| -|**Display Culling Stats**|||Display information about the cameras Unity uses to create occlusion textures.| -|**Instance Culler Stats**|||| -||**View Count**|| The number of views Unity uses for GPU culling. Unity uses one view per shadow cascade or shadow map. For example, Unity uses three views for a Directional Light that generates three shadow cascades. | -||**Per View Stats**||| -|||**View Type**| The object or shadow split Unity renders the view from. | -|||**View Instance ID**| The instance ID of the camera or light Unity renders the view from. | -|||**Split Index**| The shadow split index value. This value is 0 if the object doesn't have shadow splits. | -|||**Visible Instances**| How many objects are visible in this split. | -|||**Draw Commands**| How many draw commands Unity uses for this split. | -|**Occlusion Culling Events**|||| -||**View Instance ID**|| The instance ID of the camera Unity renders the view from. | -||**Event type**|| The type of render pass.
  • **OccluderUpdate**
  • The GPU samples the depth buffer and creates a new occlusion texture and its mipmap.
  • **OcclusionTest**
  • The GPU tests all the instances against the occlusion texture.
| -||**Occluder Version**|| How many times Unity updates the occlusion texture in this frame. | -||**Subview Mask**|| A bitmask that represents which subviews are affected in this frame. | -||**Occlusion Test**|| Which test the GPU runs against the occlusion texture.
  • **TestNone**
  • Unity found no occluders, so all instances are visible.
  • **TestAll**: Unity tests all instances against the occlusion texture.
  • **TestCulled**: Unity tests only instances that the previous **TestAll** test culled.
| -||**Visible Instances**|| The number of visible instances after occlusion culling. | -||**Culled Instances**|| The number of culled instances after occlusion culling. | - +| **Section** | **Property** | **Sub-property** | **Description** | +|------------------------------|-----------------------|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Display Culling Stats** | N/A | N/A | Display information about the cameras Unity uses to create occlusion textures. | +| **Instance Culler Stats** | N/A | N/A | | +| **Instance Culler Stats** | **View Count** | N/A | The number of views Unity uses for GPU culling. Unity uses one view per shadow cascade or shadow map. For example, Unity uses three views for a Directional Light that generates three shadow cascades. | +| **Instance Culler Stats** | **Per View Stats** | N/A | | +| **Instance Culler Stats** | N/A | **View Type** | The object or shadow split Unity renders the view from. | +| **Instance Culler Stats** | N/A | **View Instance ID** | The instance ID of the camera or light Unity renders the view from. | +| **Instance Culler Stats** | N/A | **Split Index** | The shadow split index value. This value is 0 if the object doesn't have shadow splits. | +| **Instance Culler Stats** | N/A | **Visible Instances** | How many objects are visible in this split. | +| **Instance Culler Stats** | N/A | **Draw Commands** | How many draw commands Unity uses for this split. | +| **Occlusion Culling Events** | N/A | N/A | | +| **Occlusion Culling Events** | **View Instance ID** | N/A | The instance ID of the camera Unity renders the view from. | +| **Occlusion Culling Events** | **Event type** | N/A | The type of render pass.
  • **OccluderUpdate**
  • The GPU samples the depth buffer and creates a new occlusion texture and its mipmap.
  • **OcclusionTest**
  • The GPU tests all the instances against the occlusion texture.
| +| **Occlusion Culling Events** | **Occluder Version** | N/A | How many times Unity updates the occlusion texture in this frame. | +| **Occlusion Culling Events** | **Subview Mask** | N/A | A bitmask that represents which subviews are affected in this frame. | +| **Occlusion Culling Events** | **Occlusion Test** | N/A | Which test the GPU runs against the occlusion texture.
  • **TestNone**
  • Unity found no occluders, so all instances are visible.
  • **TestAll**: Unity tests all instances against the occlusion texture.
  • **TestCulled**: Unity tests only instances that the previous **TestAll** test culled.
| +| **Occlusion Culling Events** | **Visible Instances** | N/A | The number of visible instances after occlusion culling. | +| **Occlusion Culling Events** | **Culled Instances** | N/A | The number of culled instances after occlusion culling. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-understand-shutter-profiles.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-understand-shutter-profiles.md index e4de9e7b378..34a0a659429 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-understand-shutter-profiles.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/rendering-understand-shutter-profiles.md @@ -2,10 +2,10 @@ In the [multiframe rendering API](rendering-multiframe-recording-api.md), the `BeginRecording` call allows you to specify how fast the camera shutter opens and closes. The speed of the camera shutter defines the so called “shutter profileâ€. The following image demonstrates how different shutter profiles affect the appearance of motion blur on a blue sphere moving from left to right. -![](Images/shutter_profiles.png) +![Different shutter profiles and their impact on image blur caused by motion or exposure changes. A Uniform Shutter opens fully for an even duration, creating sharp-edged, uniform blur. A Slow Open Shutter gradually opens and briefly remains open, generating a blur that fades progressively on one side. A Linear Open and Close Shutter moves at a consistent rate, producing tapered edges with a linear gradient effect. Finally, a Smooth Open and Close Shutter opens slowly, reaches full exposure, and closes smoothly, resulting in a blur with soft transitions on both sides. Each profile shapes how light reaches the sensor, directly influencing motion blur and gradient effects in the image.](Images/shutter_profiles.png) In all cases, the speed of the sphere is the same. The only change is the shutter profile. The horizontal axis of the profile diagram corresponds to time, and the vertical axis corresponds to the openning of the shutter. You can easily define the first three profiles without using an animation curve by setting the open, close parameters to (0,1), (1,1), and (0.25, 0.75) respectively. The last profile requires the use of an animation curve. -In this example, you can see that the slow open profile creates a motion trail appearance for the motion blur, which might be more desired for artists. Although, the smooth open and close profile creates smoother animations than the slow open or uniform profiles. \ No newline at end of file +In this example, you can see that the slow open profile creates a motion trail appearance for the motion blur, which might be more desired for artists. Although, the smooth open and close profile creates smoother animations than the slow open or uniform profiles. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/set-the-type-of-sky.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/set-the-type-of-sky.md index 365c2707a2a..2b328f66e39 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/set-the-type-of-sky.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/set-the-type-of-sky.md @@ -24,6 +24,6 @@ After you have set your **Sky Type**, if you want to override the default settin On the [Gradient Sky](gradient-sky-volume-override-reference.md) override itself, you can enable the checkboxes next to each property to override the property with your own values. For example, enable the checkbox next to the **Middle** property and use the color picker to change the color to pink. -![](Images/Override-VisualEnvironment2.png) +![The Gradient Sky override with the Middle property highlighted.](Images/Override-VisualEnvironment2.png) Refer to the [Visual Environment Volume Override reference](visual-environment-volume-override-reference.md) for more information. \ No newline at end of file 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 20580625e0a..b42c0ab9c6f 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 @@ -7,949 +7,113 @@ This page explains the settings and properties you can use to configure the: * [Water system in the HDRP asset](#waterhdrpasset) -
- ## Water Volume Inspector + ### Additional properties To see properties related to Fade, Caustics Intensity, and Caustics Plane Band Distance, you must enable them in Preferences > Core Render Pipeline. Select the Visibility option All Visible. These properties are not visible by default because they are not essential to use the feature, being primarily for performance optimization. -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Water type - -Property - -Description -
-Pool - -River - -Ocean, Sea, or Lake -
-X -X -X -General -
-Surface Type - -Specifies the type of water body that this surface should imitate. -
-Geometry Type - -Specifies the shape of the water surface. -The options are: -
    -
  • Quad: Based on a square.
  • -
  • Instanced Quads: Creates a finite water surface with multiple instanced grids to keep a higher vertex density.
  • -
  • Custom Mesh: Based on a Mesh you provide. Overrides the vertical position of the vertices to keep the surface of the water consistently level.
  • -
  • Infinite (Ocean, Sea, or Lake only): Bounds the water surface with the Global Volume.
  • -
-
-Script Interactions - -Enable to have the ability to query the water surface position and current direction from the simulation. Refer to Scripting in the water system for more information. -
-- Full Resolution - -Only available if Script Interactions is active. Enable to have HDRP calculate the CPU simulation at full resolution. Otherwise, HDRP calculates the simulation at half resolution. Full resolution simulations demand more from the CPU. -
-- Evaluate Ripples - -Only available if Script Interactions is active. Enable to have HDRP include ripples in the simulation on the CPU. Increases visual fidelity, but demands more from the CPU. -
-Tessellation - -Enable to implement tessellation. -
-- Max Tessellation Factor - -Set the level of detail HDRP applies to the surface geometry relative to the camera's position. A higher maximum tessellation factor makes the water surface more detailed and responsive to waves but increases the computational load. -
-- Tessellation Factor Fade Start - -Set the distance from the camera where the tessellation detail begins to decrease. -
-- Tessellation Factor Fade Range - -Set the distance from the camera at which the tessellation factor reaches 0. -
-X - -X - -X - -Simulation -
-Time Multiplier - -Determines the speed at which HDRP presents the water simulation. Values above 1 increase the simulation speed; values lower than 1 decrease it. -
-Water Mask - -Set the texture HDRP uses to reduce or stop water frequencies depending on the water surface type.
  • Ocean: Reduces swell (red channel), agitation (green), and ripples (blue).
  • River: Reduces agitation (red channel) and ripples (green channel).
  • Pool: Reduces ripples (red channel).
The Water Mask reduces the intensity of these water effects by multiplying the mask values with the corresponding water properties in the shader. Darker areas (closer to black) reduce the intensity, while lighter areas (closer to white) increase it.
For more information, refer to Decals and masking in the Water System. -
-X - -X - -X - -Water Decals -
-Region Size - -Set the width and length in meters of the region HDRP applies the Water Decal to. -
-Region Anchor - -Anchor the Water Decal to a GameObject. By default, the region follows the camera. To make the region static, anchor it to the water surface. -
-Deformation - -Enable to activate the option for creating a deformation decal. -
-Foam - -Enable to activate the option for creating a foam decal. -
- - -X - -X - -River surface types: Agitation
-Ocean, Sea, or Lake surface types: Swell
-
-Repetition Size - -The size of the water patch in meters. Higher values result in less visible repetition. Also affects the Maximum Amplitude of Swell or Agitation simulation bands. -
-Distant Wind Speed - -Represents the speed of distant wind in kilometers per hour. This property indirectly determines the Maximum Amplitude and shape of the swell in a nonlinear way. Nonlinear means that changes to Distant Wind Speed do not have a proportional effect on swells. -
-Distant Wind Orientation - -Represents the orientation of distant wind counterclockwise to the world space X vector. (This vector aligns with the blue handle of the Transform Gizmo). Only affects a swell with a Chaos value less than 1. -
-Chaos - -Determines how much the Local Wind Orientation affects ripples; values less than 1 increase Local Wind Orientation's influence. Values more than 1 decrease Local Wind Orientation's influence. -
-Current - -Translates the swell at a constant speed in the given direction. -
    -
  • Speed: Determines how fast the current moves, measured in kilometers per hour.
  • -
  • Orientation: Determines the orientation of the current in degrees relative counterclockwise to the world space X vector. (This vector aligns with the blue handle of the Transform Gizmo).
-
- -X - -X - -Simulation Band properties -
-Amplitude Dimmer - -Amplitude Dimmer (Ocean, Sea, or Lake)
-
    -
  • First band: The degree to which amplitude reduces on the first simulation band of the Swell.
  • -
  • Second Band: The degree to which amplitude reduces on the second simulation band of the Swell.
- -
-Amplitude Dimmer (River)
-A dimmer that determines the degree to which amplitude can reduce on the Agitation simulation band. For example, if your Amplitude value is 10 meters and you set this property to 0.5, your Agitation is 5 meters high.
- - -
-Fade - -Additional property. When this option is active, HDRP begins fading the contribution of this simulation band at the distance from the camera that the Range value specifies. This helps minimize distant aliasing artifacts. -
-- Range - -Additional property. The distance from the camera in meters at which HDRP begins to fade the contribution of this simulation band. -
-Total Amplitude - -The combined amplitude of all bands. -
- - - -X - -Simulation Band property specific to Ocean, Sea, or Lake, appears after Amplitude Mulitplier for each band. -
-Max Amplitude - -The amplitude of this band, in meters. This is the sum of the original amplitude and the multiplied amplitude. -
-X - -X - -X -Ripples
-Local Wind Speed - -Represents the speed of local wind blowing over the water surface in kilometers per hour. This determines the maximum amplitude and shape of ripples indirectly, in a nonlinear way. Nonlinear means that changes to Local Wind Speed do not have a proportional effect on ripples. -
-Local Wind Orientation - -Represents the orientation of local wind counterclockwise to the world space X vector. (This vector aligns with the blue handle of the Transform Gizmo). Only affects ripples with a Chaos value less than 1. - -River and Ocean, Sea, or Lake only: If set to 0, matches the Distant Wind Orientation. - - -
-Chaos - -Determines how much the Local Wind Orientation affects ripples; values below 1 increase Local Wind Orientation's influence. Values above 1 decrease the influence of Local Wind Orientation. -
-Current - -
    -
  • Pool: Determines the orientation and constant speed of the swells that displace ripples in the pool. -
  • -
  • River: Determines the orientation and constant speed of the current that displaces ripples in the river. By default, River Current inherits the Agitation values, but you can also set custom orientation and speed values.
  • -
  • Ocean, Sea, or Lake: -Determines the orientation and constant speed of the current that displaces ripples in the river. By default, Ocean, Sea, or Lake Current inherits the Swell values, but you can also set custom orientation and speed values.
  • -
  • Speed: Determines how fast the current moves, measured in kilometers per hour.
  • -
  • Orientation: Determines the orientation of the current in degrees relative counterclockwise to the world space X vector. (This vector aligns with the blue handle of the Transform Gizmo).
-
-Fade - -Additional property. When this option is active, HDRP begins fading the contribution of this simulation band at the distance from the camera that corresponds to the Range value in meters. This helps minimize distant aliasing artifacts. -
-- Range - -Additional property. The distance from the camera, in meters, at which HDRP begins to fade the contribution of this simulation band. -
-x - -X - -X -Deformation
-Enable -Specify if this surface supports deformation..
-Resolution -The resolution of the deformation texture used to represent the deformation area. -
    -
  • 256 x 256: Set the deformation texture to 256 x 256 pixels.
  • -
  • 512 x 512: Set the deformation texture to 512 x 512 pixels.
  • -
  • 1024 x 1024: Set the deformation texture to 1024 x 1024 pixels.
  • -
  • 2048 x 2048: Set the deformation texture to 2048 x 2048 pixels.
-
-Area Size -Set the size of the deformation area in meters.
-Area Offset -Set the offset of the deformation area in meters
- - -X - -X - -Foam -
-Simulation Foam Amount -Determines the amount of surface foam. Higher values generate larger foam patches. The Wind Speed Dimmer configuration determines which Distant Wind Speed values generate foam, and how much; refer to Foam in the water system.
-Simulation Foam Smoothness -Determines the lifespan of surface foam. Higher values cause foam to persist longer and leave a trail.
-Texture Tiling -Determines the tile size of the foam texture, in meters.
-Custom Texture -Choose a texture Unity can use to define foam's appearance. If this is None, HDRP uses the default texture.
-Mask -Select a texture whose red channel Unity uses to reduce or remove foam.
-Wind Speed Dimmer -Determines foam intensity. The normalized Distant Wind Speed determines the X axis value. The spline editor configures the Y axis value. Refer to Foam in the water system for more information.
-X - -X - -X - -Appearance -
-Custom Material - -Select a custom material Unity can use to render the water surface. If this is None, Unity uses the default material. -
-Smoothness -
-Close - -Determines how detailed the water surface is when closer to the Scene camera than the smoothness Fade Start value. -
-- Distant - -Determines how detailed the water surface is when further from the Scene camera than the smoothness Fade Distance value. -
-Fade Range - -Specifies the range over which Unity interpolates smoothness from close to distant.
-
    -
  • Start: Determines the distance in meters from the Scene camera at which HDRP begins removing detail and interpolating the smoothness value for the water surface.
  • -
  • Distance: Determines the distance in meters from the Start point at which the Distant smoothness value takes effect.
  • -
-
-Refraction -
-Color - -Determines the color HDRP uses to simulate underwater refraction. -
-Maximum Distance - -Determines the maximum distance from the Scene camera Unity renders underwater refraction. Higher values increase the distortion amount. -
-Absorption Distance - -Determines how deep into the water the camera can perceive, in meters. -
-Scattering -
-Color - -Determines the color that Unity uses to simulate underwater scattering. -
-Ambient Term - -Determines the intensity of the ambient scattering term. -
-Height Term - -Determines the intensity of height-based scattering. The higher the vertical displacement, the more the water receives scattering. You can adjust this for artistic purposes. -
-Displacement Term - -Determines the intensity of displacement-based scattering. The larger this value is, the more the water receives scattering. -
-Direct Light Body Term - -Determines the intensity of direct light scattering on the bodies of waves. -
- - -X - -X - -Direct Light Tip Term - -Determines the intensity of direct light scattering on the tips of waves. You can perceive this effect more at grazing angles. -
-X - -X - -X - -Caustics -
-X - -X - -X - -Caustics - -Enable to render caustics. -
-Caustics Resolution - -The resolution at which Unity renders caustics in the simulation. -
- - -X - -X - -Simulation Band - -Determines which Simulation Band Unity uses for caustics evaluation.
-For Ocean, Sea, or Lake water surfaces, the Swell simulation determines the first (index 0) and second (index 1) simulation band values. Ripples determine the third band value (index 2).
-The River type has two Simulation Bands, one for Agitation simulation and one for Ripples. -For the Pool type, ripples determine the caustics evaluation. A higher Local Wind Speed value results in larger, looser caustics. -
-X - -X - -X - -Virtual Plane Distance - -Determines the distance from the camera at which Unity projects simulated caustics. High values generate sharper caustics but can cause artifacts. The larger the waves are, the further the plane distance should be to obtain sharp caustics. -
-Caustics Intensity - -Additional property. The normalized intensity of underwater caustics. -
-Caustics Plane Blend Distance - -Additional property. The vertical blending distance of the water caustics, in meters from the camera. -
-X - -X - -X - -Underwater -
-Volume Bounds - -Specifies the collider Unity uses to determine the volume in which it applies the underwater effect for non-infinite water surfaces. -
-Volume Priority - -Determines which surface Unity prioritizes for underwater rendering when multiple water surfaces overlap. Unity renders surfaces with a higher value first. -
-Transition Size - -Where the distance between the camera and the water surface is lower than or equal to this value, Unity begins to blend the water surface rendering with the underwater rendering to prevent a sharp cutoff between them. -
-Absorption Distance Multiplier - -Determines how far the camera can see underwater. For example, a value of 2.0 means the camera can see twice as far underwater as you can from the water surface. -
-X - -X - -X - -Miscellaneous -
-Rendering Layer Mask - -Specifies the rendering layers that render on the water surface. To use this feature, enable Decal Layers and/or Light Layers in your HDRP Asset. -
-Debug Mode - -Specifies the view of the debug mode used for the water surface. -
- - - -
- +### General + +| **Pool** | **River** | **Ocean** | **Property** | **Subproperty** | **Description** | +|--------------|--------------|--------------|-------------------------|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Yes | Yes | Yes | **Surface Type** | N/A | Specifies the type of water body that this surface should imitate. | +| Yes | Yes | Yes | **Geometry Type** | N/A | Specifies the shape of the water surface. The options are: Quad: Based on a square. Instanced Quads: Creates a finite water surface with multiple instanced grids to keep a higher vertex density. Custom Mesh: Based on a Mesh you provide. Overrides the vertical position of the vertices to keep the surface of the water consistently level. Infinite (Ocean only): Bounds the water surface with the Global Volume. | +| Yes | Yes | Yes | **Time Multiplier** | N/A | Specifies the shape of the water surface. The options are: Quad: Based on a square. Instanced Quads: Creates a finite water surface with multiple instanced grids to keep a higher vertex density. Custom Mesh: Based on a Mesh you provide. Overrides the vertical position of the vertices to keep the surface of the water consistently level. Infinite (Ocean only): Bounds the water surface with the Global Volume. | +| Yes | Yes | Yes | **Script Interactions** | N/A | Enable to have the ability to query the water surface position and current direction from the simulation. Refer to Scripting in the water system for more information. | +| Yes | Yes | Yes | N/A | **Evaluate Ripples** | Only available if Script Interactions is active. Enable to have HDRP include ripples in the simulation on the CPU. Increases visual fidelity, but demands more from the CPU. | +| Yes | Yes | Yes | **Tessellation** | N/A | Enable to implement tessellation. | +| Yes | Yes | Yes | N/A | **Max Tessellation Factor** | Set the level of detail HDRP applies to the surface geometry relative to the camera's position. A higher maximum tessellation factor makes the water surface more detailed and responsive to waves but increases the computational load. | +| Yes | Yes | Yes | N/A | **Tessellation Factor Fade Start** | Set the distance from the camera where the tessellation detail begins to decrease. | +| Yes | Yes | Yes | N/A | **Tessellation Factor Fade Range** | Set the distance from the camera at which the tessellation factor reaches 0. | + +### Simulation + +| **Pool** | **River** | **Ocean** | **Property** | **Subproperty** | **Description** | +|--------------|--------------|--------------|---------------------|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Yes | Yes | Yes | **Water Mask** | N/A | Sets the texture used to attenuate or suppress swell (red and green channels) and ripples (blue channel) water frequencies. | +| No | Yes | Yes | **Agitation/Swell** | N/A | N/A | +| No | Yes | Yes | N/A | **Repetition Size** | Controls the size of the water patch in meters. Larger values results in less visible repetition across the water surface. This parameter also affects the maximum amplitude of the swell frequency bands. | +| No | Yes | Yes | N/A | **Distant Wind Speed** | Controls the speed of the distant wind in kilometers per hour that blowed over the water surface for a long period of time. This indirectly controls the maximum amplitude and shape of the swell in a non-linear way. | +| No | Yes | Yes | N/A | **Chaos** | Controls how directional the swell is. The lower the value, the more the swell waves are traveling in the Distant Wind Orientation. | +| No | Yes | Yes | N/A | **Orientation** | Sets the orientation of distant wind in degrees in a counterclockwise fashion relative to the X world vector. This parameter only affects the swell with a chaos value inferior to one. | +| No | Yes | Yes | N/A | **Current Speed** | Sets the speed of the current for the swell in kilometers per hour. This current translates the I swell at a constant speed. | +| No | Yes | Yes | N/A | **Current Map** | Sets the texture used to modify the local swell or agitation currents. The Red and Green channel of Outdoor the texture contain the 2D direction of the current and Blue channel contains the influence of the current map. | +| No | No | Yes | N/A | **First/Second Band** | N/A | +| No | Yes | Yes | N/A | **Amplitude Dimmer** | Controls the attenuation of amplitude on the frequency band of the swell. | +| No | No | Yes | N/A | **Max Amplitude** | Displays the current maximum amplitude of the frequency band. | +| No | Yes | Yes | N/A | **Fade** | When enabled, HDRP starts fading the contribution of this frequency band over a given range. This helps reduce the aliasing artifacts at a distance. Automatic mode computes the fading range based on the Repetition Size parameter. | +| No | Yes | Yes | N/A | **Total Amplitude** | Displays the current maximum amplitude of the swell. This is the sum of the first and second frequency bands. | +| Yes | Yes | Yes | **Ripples** | N/A | When enabled, the Water System allows you to simulate and render ripples. The frequency range is not affected by the swell/agitation parameters. | +| Yes | Yes | Yes | N/A | **Local Wind Speed** | Controls the speed of the local wind in kilometers per hour that is blowing over the water surface. This indirectly controls the maximum amplitude and shape of the ripples in a non-linear way. | +| Yes | Yes | Yes | N/A | **Chaos** | Controls how directional the ripples are. The lower the value, the more the ripples are traveling in the Local Wind Orientation. | +| Yes | Yes | Yes | N/A | **Motion** | Specifies if the Local Wind's Orientation and Current properties are inherited from the Swell/Agitation or set independently. | +| Yes | Yes | Yes | N/A | **Fade** | When enabled, HDRP starts fading the contribution of this frequency band over a given range. This helps reduce the aliasing artifacts at a distance. Automatic mode computes the fading range based on the Repetition Size parameter. | + +### Water Decals + +| **Pool** | **River** | **Ocean** | **Property** | **Subproperty**| **Description** | +|--------------|--------------|--------------|-------------------|----------------|-----------------------------------------------------------------------------------------------------------| +| Yes | Yes | Yes | **Region Size** | N/A | Sets the extent of the decal region in meters. | +| Yes | Yes | Yes | **Region Anchor** | N/A | Sets the center of the decal region. If nothing is set, the region will follow the main camera transform. | +| Yes | Yes | Yes | **Deformation** | N/A | Specifies if decals deforming the surface of the water are supported. | +| Yes | Yes | Yes | N/A | **Resolution** | Sets the resolution of the texture covering the region. | +| Yes | Yes | Yes | **Foam** | N/A | Specifies if decals injecting foam are supported. | +| Yes | Yes | Yes | N/A | **Resolution** | Sets the resolution of the texture covering the region. | + + + +### Appearance + +| **Pool** | **River** | **Ocean** | **Property** | **Subproperty** | **Description** | +|--------------|--------------|--------------|---------------------|-----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Yes | Yes | Yes | **Custom Material** | N/A | Sets a custom material that will be used to render the water surface. If set to None, a default material is used. | +| Yes | Yes | Yes | **Smoothness** | N/A | N/A | +| Yes | Yes | Yes | N/A | **Value Range** | Controls the smoothness value range over the Fade region. | +| Yes | Yes | Yes | N/A | **Fade Range** | Specifies the range over which the smoothness is interpolated from close to distant. | +| Yes | Yes | Yes | **Refraction** | N/A | N/A | +| Yes | Yes | Yes | N/A | **Color** | Sets the color that is used to simulate the underwater refraction. | +| Yes | Yes | Yes | N/A | **Maximum Distance** | Controls the maximum distance in meters used to clamp the underwater refraction depth. Higher value increases the distortion amount. | +| Yes | Yes | Yes | N/A | **Absorption Distance** | Controls the approximative distance in meters that the camera can perceive through a water surface. This distance can vary widely depending on the intensity of the light the object receives. | +| Yes | Yes | Yes | **Scattering** | N/A | N/A | +| Yes | Yes | Yes | N/A | **Color** | Sets the color that is used to simulate the underwater refraction. The luminance of the color affects the intensity of the scattering terms. | +| Yes | Yes | Yes | N/A | **Ambient Term** | Controls the intensity of the ambient scattering term. You can adjust this for artistic purposes. | +| Yes | Yes | Yes | N/A | **Height Term** | Controls the intensity of the height based scattering. The higher the vertical displacement, the more the water receives scattering. You can adjust this for artistic purposes. | +| 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 | **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. | +| Yes | Yes | Yes | N/A | **Virtual Plane Distance** | Sets the distance at which the simulated caustics are projected. High values generate sharper caustics but can cause artefacts. The larger the waves are, the further the plane distance should be to obtain sharp caustics. | +| Yes | Yes | Yes | N/A | **Tiling Factor** | Sets a tiling factor for the water caustics. | +| Yes | Yes | Yes | N/A | **Intensity** | Sets the intensity of the under-water caustics. | +| Yes | Yes | Yes | N/A | **Caustics Plane Blend Distance** | Sets the vertical blending distance for the water caustics. | +| Yes | Yes | Yes | N/A | **Directional Shadow** | When enabled, the water caustics will take into account the directional light's shadow. | +| Yes | Yes | Yes | **Underwater** | N/A | When enabled, HDRP will apply a fog and color shift to the final image when the camera is under the surface. This feature has a cost even when the camera is above the water surface. | + +### Foam + +| **Pool** | **River** | **Ocean** | **Property** | **Subproperty** | **Description** | +|--------------|--------------|--------------|----------------------------|-----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Yes | Yes | Yes | **Persistence Mutliplier** | N/A | Specifies the decal foam persistence multiplier. A higher value will lead to the foam remaining visible Outdoor longer. This option requires Foam to be enabled in the Water Decals section. | +| Yes | Yes | Yes | **Current Influence** | N/A | Specifies the influence of the swell current on foam. A value of zero means foam stays still, a value of one makes the foam match with current direction and speed. Ripples motion have no impact on foam. | +| Yes | Yes | Yes | **Color** | N/A | Sets the foam color. | +| Yes | Yes | Yes | **Smoothness** | N/A | Controls the simulation foam smoothness. | +| No | Yes | Yes | **Texture Tiling** | N/A | Sets the per-meter tiling for the foam texture. | +| No | Yes | Yes | **Simulation Foam Amount** | N/A | Sets the amount of foam. | +| No | Yes | Yes | N/A | **Mask** | Sets the texture used to attenuate or suppress the simulation foam. The red channel of the texture is used for the masking. | +| No | Yes | Yes | N/A | **Wind Speed Dimmer** | Controls the foam intensity depending on the normalized Distant Wind Speed. The X axis refers to the normalized Distant Wind Speed, the Y axis refers to the dimmer value. | + +### Miscellaneous + +| **Pool** | **River** | **Ocean** | **Property** | **Description** | +|--------------|--------------|--------------|--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------| +| Yes | Yes | Yes | **Rendering Layer Mask** | Specifies the rendering layers that render on the water surface. To use this feature, enable Decal Layers and/or Light Layers in your HDRP Asset. | +| Yes | Yes | Yes | **Debug Mode** | Specifies the view of the debug mode used for the water surface. | # Water system volume override @@ -958,67 +122,12 @@ Specifies the view of the debug mode used for the water surface. To use a Volume Override, you must first add a Volume Profile. Refer to The water system Volume Override for more information.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Property - -Description -
-General -
-State - -Enable the override to render water surfaces. -
-Level of Detail -
-Triangle Size - -Sets the size of the triangle edge in screen space. -
-Lighting -
-Ambient Probe Dimmer - -Determines the influence of the ambient light probe on the water surface. -
- -
+| **Property** | **Description** | +|-----------------------------------------|---------------------------------------------------------------------------| +| **General** > **State** | Enable the override to render water surfaces. | +| **Level of Detail**> **Triangle Size** | Sets the size of the triangle edge in screen space. | +| **Lighting** > **Ambient Probe Dimmer** | Determines the influence of the ambient light probe on the water surface. | # Water system in the rendering debugger @@ -1027,7 +136,6 @@ Determines the influence of the # water system in the HDRP Asset diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shadows-visualize-and-adjust.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shadows-visualize-and-adjust.md index 90a10986003..89986a1f7fe 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shadows-visualize-and-adjust.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shadows-visualize-and-adjust.md @@ -9,9 +9,9 @@ In the Inspector, use the **Cascade Splits** bar to see the size of each cascade In the Scene view and the Game view, the cascade visualization feature allows you to see the boundaries of each cascade in your Scene. Each color represents a separate cascade, and the colors match those in the **Cascade Splits** bar. This allows you to see which colored area matches which cascade. -![](/Images/Override-Shadows3.png) +![Cascade visualization example.](/Images/Override-Shadows3.png) To enable the cascade visualization feature, select **Show Cascades** at the top of the list of **Shadows** properties. You can now see the shadow maps in the Scene view and the Game view. - You can use the Scene view Camera to move around your Scene and quickly visualize the shadow maps of different areas. -- You can use the Game view Camera to visualize the shadow maps from the point of view of the end user. You can use the **Show Cascades** feature while in Play Mode, which is useful if you have some method of controlling the Camera’s position and rotation and want to see the shadow maps from different points of view in your Project. \ No newline at end of file +- You can use the Game view Camera to visualize the shadow maps from the point of view of the end user. You can use the **Show Cascades** feature while in Play Mode, which is useful if you have some method of controlling the Camera’s position and rotation and want to see the shadow maps from different points of view in your Project. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/Override-Screen-Space-Lens-Flare.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/Override-Screen-Space-Lens-Flare.md index 2b0202333e4..ce4dd763fb4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/Override-Screen-Space-Lens-Flare.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/Override-Screen-Space-Lens-Flare.md @@ -1,6 +1,6 @@ # Add screen space lens flares -![](../../Images/shared/lens-flare/screenspacelensflares.png) +![Screen space lens flares example](../../Images/shared/lens-flare/screenspacelensflares.png) The **Screen Space Lens Flare** override adds lens flares to your scene. @@ -29,7 +29,8 @@ You can create the following types of lens flare: You can control which types of flares appear and how many there are. You can also control the chromatic aberration effect HDRP adds to the flares. -![](../../Images/shared/lens-flare/screenspacelensflares-types.png)
+![The left image shows an emissive cube with bloom but no lens flares. The right image shows the same cube and a regular flare (top-left), a reversed flare (bottom-right), a warped flare (top-right) and streaks (to the left and right of the cube).](../../Images/shared/lens-flare/screenspacelensflares-types.png) + The left image shows an emissive cube with bloom but no lens flares. The right image shows the same cube and a regular flare (top-left), a reversed flare (bottom-right), a warped flare (top-right) and streaks (to the left and right of the cube). ## Enable screen space lens flares diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/lens-flare-component.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/lens-flare-component.md index b78e3fa3881..f0d7e9a31c9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/lens-flare-component.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/lens-flare-component.md @@ -1,11 +1,9 @@ # Add lens flares -![](../../images/shared/lens-flare/lens-flare-header.png) +![Lens flare example.](../../images/shared/lens-flare/lens-flare-header.png) Unity’s Scriptable Render Pipeline (SRP) includes the Lens Flare (SRP) component which renders a lens flare in your scene. This is the SRP equivalent of the Built-in Render Pipeline's [Lens Flare](https://docs.unity3d.com/Manual/class-LensFlare.html) component, which is incompatible with SRPs. You can attach a Lens Flare (SRP) component to any GameObject, but some properties only appear when you attach a Lens Flare (SRP) component to a light. -![](../../images/shared/lens-flare/lens-flare-comp.png) - Use the Lens Flare (SRP) component to create lens flares for lights that have specific locations in your scene, for example bright bulbs. You can also create lens flares using the [Screen Space Lens Flare](Override-Screen-Space-Lens-Flare.md) volume override, or use both the Lens Flare (SRP) component and the Screen Space Lens Flare override in the same scene. ## Create a lens flare in SRP diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/reference-screen-space-lens-flare.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/reference-screen-space-lens-flare.md index fa45b168a01..c9a62c95c4e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/reference-screen-space-lens-flare.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/shared/lens-flare/reference-screen-space-lens-flare.md @@ -36,7 +36,8 @@ Use the **Streaks** settings to control flares stretched in one direction. | | **Threshold** | Control how localized the streak effect is. The higher the **Threshold**, the more localized the effect. The range is 0 through 1. The default value is 0.25. | | | **Resolution** | Control the resolution detail of streaks. HDRP renders lower-resolution streaks faster. The options are **Half**, **Quarter** and **Eighth** full resolution. This property only appears if you open the **More** (⋮) menu and select **Show Additional Properties**. | -![](Images/shared/lens-flare/screenspacelensflares-threshold.gif)
+ + The effect of changing **Threshold** from 0 (a larger flare effect) to 1 (a smaller flare effect). ### Chromatic Aberration diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/simulating-currents-with-water-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/simulating-currents-with-water-decals.md index 058ba4944cb..fa8f3a1a299 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/simulating-currents-with-water-decals.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/simulating-currents-with-water-decals.md @@ -7,15 +7,17 @@ A water decal is a shader graph Master Stack. It's applied in world space, allow By default, water decal regions are anchored to the camera. You can also anchor them to a GameObject. > [!NOTE] -> For backward compatibility, water decals are disabled by default. +> For backward compatibility, [water masks and current water decals](enable-mask-and-current-water-decals.md) are disabled by default. ## Create a water decal -1. In the main menu, select **GameObject** > **Water** > **Water Decal**. +1. In the main menu, go to **GameObject** > **Water** > **Water Decal**. Unity adds a **Water Decal** GameObject to your scene. -2. Move the **Water Decal** GameObject to the area of water you want to affect. -3. To add deformation, foam, or current effects to the water decal shader graph, select the **Water Decal** GameObject, then under **Water Decal (Material)** select **Edit...**. + +1. Move the **Water Decal** GameObject to the area of water you want to affect. + +1. To add deformation, foam, or current effects to the water decal shader graph, in the **Inspector** window of the **Water Decal**, go to **Water Decal (Script)**, then select **Edit** in the **Water Decal (Material)** section. By default, the water decal shader graph Master Stack contains the following properties: @@ -23,9 +25,8 @@ By default, the water decal shader graph Master Stack contains the following pro - **SurfaceFoam** - **DeepFoam** -Once you have [enabled mask and current water decals](enable-mask-and-water-decals.md), you can add the following water features through the Graph Inspector: +Once you have [enabled water mask and current water decals](enable-mask-and-current-water-decals.md), you can add the following water features through the Graph Inspector: -- **HorizontalDeformation**. - **SimulationMask** - **SimulationFoamMask** - **LargeCurrent** @@ -40,7 +41,7 @@ To enable horizontal deformation, go to the active [HDRP Asset](hdrp-asset.md), Enabling horizontal deformation has the following effects: - HDRP creates a new buffer, which increases the amount of memory HDRP uses. -- The results of [water scripts](water-scripting-in-the-water-system.md) and [underwater effects](water-underwater-view.md) might be less accurate. +- The results of water scripts and [underwater effects](water-underwater-view.md) might be less accurate. ## Additional resources diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/simulating-foam-or-ripples-with-masks.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/simulating-foam-or-ripples-with-masks.md index 9301d45e17c..fb7abcbb47e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/simulating-foam-or-ripples-with-masks.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/simulating-foam-or-ripples-with-masks.md @@ -1,10 +1,10 @@ -# Simulate foam or ripples with masks +# Simulate ripples with masks -A simulation mask defines areas of influence for specific water simulation effects, such as foam or ripples. +A simulation mask defines areas of influence for specific water simulation effects, such as ripples. -By using a simulation mask, you can restrict these effects to particular regions on the water surface, enabling localized interactions. +By using a simulation mask, you can attenuate specific frequencies in specific regions. -For example, if you're simulating debris or objects affecting the water, a simulation mask will allow you to define where foam or other effects appear based on those interactions. +For example, if you're simulating debris or objects affecting the water, a simulation mask will allow you to attenuate waves at specific places based on those interactions. > [!NOTE] > For backward compatibility, simulation masks are disabled by default. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/skin-and-diffusive-surfaces-subsurface-scattering.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/skin-and-diffusive-surfaces-subsurface-scattering.md index 8782d61bcdf..b2680f20e4a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/skin-and-diffusive-surfaces-subsurface-scattering.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/skin-and-diffusive-surfaces-subsurface-scattering.md @@ -51,7 +51,7 @@ To add subsurface scattering to a Material: The following image displays grass in an environment scene. In the left image the grass renders correctly. The grass in the right image has the bright green tint that HDRP applies to a Material that doesn't have a valid diffusion profile: -![](Images/missing_profile.png) +![Grass in an environment scene: In the left image the grass renders correctly. The grass in the right image has the bright green tint that HDRP applies to a Material that doesn't have a valid diffusion profile.](Images/missing_profile.png) The Material appears bright green in the following cases: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/fuzz-map.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/fuzz-map.md index b87a141fffd..5b14ddf4efa 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/fuzz-map.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/fuzz-map.md @@ -1,4 +1,4 @@ # Fuzz Maps The fabric shaders can use a fuzz map to provide additional fuzz detail to the surface. A fuzz map is a single-channel texture. To apply it, the fabric shader mixes it in with the base color map to produce a final color used for shading the fabric material. -![](../Images/fuzz-map.png) +![Sample fuzz map.](../Images/fuzz-map.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/emission-global-illumination.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/emission-global-illumination.md index b1dc13ca3d9..166fae00902 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/emission-global-illumination.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/emission-global-illumination.md @@ -1,5 +1,5 @@ - + Emission Global Illumination The mode HDRP uses to determine how color emission interacts with global illumination.
• Realtime: Select this option to make emission affect the result of real-time global illumination.
• Baked: Select this option to make emission only affect global illumination during the baking process.
• None: Select this option to make emission not affect global illumination. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/emission.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/emission.md index 46e9e4d312c..677b19b7b52 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/emission.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/emission.md @@ -1,5 +1,5 @@ Emission - + N/A Toggles whether emission affects global illumination. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/enable-gpu-instancing.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/enable-gpu-instancing.md index c57d292ef70..450cbc92ee8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/enable-gpu-instancing.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/enable-gpu-instancing.md @@ -1,5 +1,5 @@ Enable GPU Instancing - +N/A Enable the checkbox to tell HDRP to render Meshes with the same geometry and Material in one batch when possible. This makes rendering faster. HDRP can't render Meshes in one batch if they have different Materials, or if the hardware doesn't support GPU instancing. For example, you can't static-batch GameObjects that have an animation based on the object pivot, but the GPU can instance them. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/motion-vector-for-vertex-animation.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/motion-vector-for-vertex-animation.md index 7906be2e1f8..ad2938d15d3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/motion-vector-for-vertex-animation.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/general/motion-vector-for-vertex-animation.md @@ -1,5 +1,5 @@ Motion Vectors For Vertex Animation - + N/A Enable the checkbox to make HDRP write motion vectors for GameObjects that use vertex animation. This removes the ghosting that vertex animation can cause. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/layer-list.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/layer-list.md index 12b398950ef..85dc24dee9a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/layer-list.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/layer-list.md @@ -5,9 +5,7 @@ This section contains a list of the Materials that this Layered Material uses as If you modify the referenced Material in any way, you can synchronize the properties by pressing the **Reset button**. This copies all of the properties from the referenced Material into the relevant Layered Material layer. -![](../../Images/LayeredLit1.png) - If you assign a Material made from a Shader Graph as a **Layer Material**, make sure the Reference of the properties matches the name of the corresponding properties in the LayeredLit Material. For an example of what this means, see **_BaseColorMap** in the screenshot below: -![](../../Images/LayeredLit2.png) +![The Blackboard and Graph Inspector windows in a shader graph. The Blackboard has a Texture2D called _BaseColorMap, and the Reference property in the Graph Inspector has the same name.](../../Images/LayeredLit2.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping-threshold.md index 6a8ce279cd2..e9a322b69af 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping-threshold.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping-threshold.md @@ -1,7 +1,7 @@ - Threshold - - +N/A +N/A The alpha value limit HDRP uses to determine whether to render each pixel. If the alpha value of the pixel is equal to or higher than the limit then HDRP renders the pixel. If the value is lower than the limit then HDRP does not render the pixel. The default value is 0.5. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping.md index 99dc8557480..b906a67070a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-clipping.md @@ -1,10 +1,6 @@ Alpha Clipping - - - - -Indicates whether this material acts like a Cutout Shader.
For more information about the feature and for the list of properties this feature exposes, see the Alpha Clipping documentation. - - +N/A +N/A +Indicates whether this material acts like a Cutout Shader.
For more information about the feature and for the list of properties this feature exposes, see the Alpha Clipping documentation. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-to-mask.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-to-mask.md index 20ca79c2762..bc4051722f0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-to-mask.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/alpha-to-mask.md @@ -1,7 +1,7 @@ - Alpha to Mask - - +N/A +N/A Indicates whether to turn on alpha-to-coverage. If your Project uses MSAA, alpha-to-coverage modifies the multi-sample coverage mask proportionally to the pixel shader result alpha value. This is typically used for anti-aliasing vegetation and other alpha-tested shaders.
This property only appears if you enable Alpha Clipping. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-for-area-lights.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-for-area-lights.md index 4a456194d8d..ea74cfb3ddc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-for-area-lights.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-for-area-lights.md @@ -1,6 +1,6 @@ Anisotropy For Area Lights - - +N/A +N/A Indicates whether to calculate anisotropic reflections for area lights. Note that enabling this option makes a StackLit material more resource intensive to process around area lights. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-stacklit.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-stacklit.md index 2bfb87c2c6d..244c786aaaf 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-stacklit.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/anisotropy-stacklit.md @@ -1,6 +1,6 @@ Anisotropy - - +N/A +N/A Indicates whether to apply anisotropy to the material. If you enable Dual Specular Lobe the two lobes have independent anisotropic intensity values (Anisotropy and AnisotropyB). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/back-then-front-rendering.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/back-then-front-rendering.md index de40d870f2d..78eef1f62f0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/back-then-front-rendering.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/back-then-front-rendering.md @@ -1,7 +1,7 @@ - Back Then Front Rendering - - +N/A +N/A Indicates whether HDRP renders this material in two separate draw calls. HDRP renders the back face in the first draw call and the front face in the second.
This property only appears if you set Surface Type to Transparent. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-color-parametrization.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-color-parametrization.md index 189604a3fa0..bbc2a172f35 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-color-parametrization.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-color-parametrization.md @@ -1,6 +1,6 @@ Base Color Parametrization - - +N/A +N/A Specifies the method to set color and reflectance properties of the material. The options are:
Base Metallic: Applies the basic metallic Shader workflow to the material. In the StackLit shader, when Metallic is 0, Dielectric Ior determines the specular color of the base layer.
Specular Color: Applies the Specular Color workflow to the material. Use this to create Materials with a coloured specular highlight. This is similar to the built-in Specular Shader. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-layer-uses-refracted-angles.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-layer-uses-refracted-angles.md index c84770daeba..d909a3d324f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-layer-uses-refracted-angles.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/base-layer-uses-refracted-angles.md @@ -1,6 +1,6 @@ Base Layer Uses Refracted Angles - - +N/A +N/A Indicates whether to shade directional, punctual, and spot lights on the bottom layer with refraction from the top layer (the coat).
This setting only appears if you enable Coat. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/blending-mode.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/blending-mode.md index e2449527957..55852eec3ac 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/blending-mode.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/blending-mode.md @@ -1,6 +1,6 @@ - +Surface Type Blending Mode - +N/A Specifies the method HDRP uses to blend the color of each pixel of the material with the background pixels. The options are:
• Alpha: Uses the Material’s alpha value to change how transparent an object is. 0 is fully transparent. 1 appears fully opaque, but the Material is still rendered during the Transparent render pass. This is useful for visuals that you want to be fully visible but to also fade over time, like clouds.
• Additive: Adds the Material’s RGB values to the background color. The alpha channel of the Material modulates the intensity. A value of 0 adds nothing and a value of 1 adds 100% of the Material color to the background color.
• Premultiply: Assumes that you have already multiplied the RGB values of the Material by the alpha channel. This gives better results than Alpha blending when filtering images or composing different layers.
This property only appears if you set Surface Type to Transparent. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/cap-haziness-for-non-metallic.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/cap-haziness-for-non-metallic.md index b5cff9773ee..247de2b26e9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/cap-haziness-for-non-metallic.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/cap-haziness-for-non-metallic.md @@ -1,6 +1,6 @@ Cap Haziness For Non Metallic - - +N/A +N/A Indicates whether to cap the intensity of the specular highlight for materials that have a metallic value of 0. As the metallic value increases, the cap relaxes towards 1.
This setting only appears if you set Base Color Parametrization to Metallic and Dual Specular Lobe Parametrization to Hazy Gloss. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/clear-coat.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/clear-coat.md index eac1b2a69f2..8d0a16a46ca 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/clear-coat.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/clear-coat.md @@ -1,6 +1,6 @@ Clear Coat - - +N/A +N/A Indicates whether HDRP simulates a clear coat effect on the Material to mimic Materials like car paint or plastics. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/coat-normal.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/coat-normal.md index 77568cfd787..de0ca8cb365 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/coat-normal.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/coat-normal.md @@ -1,6 +1,6 @@ Coat Normal - - +N/A +N/A Indicates whether to use an independent normal for the coat layer. When enabled, the Coat Normal property sets the normals specifically for the coat layer. When disabled, the Normal property sets the normals for both the coat layer and the base layer. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/coat.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/coat.md index 99d47d5c044..903107b2f3a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/coat.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/coat.md @@ -1,6 +1,6 @@ Coat - - +N/A +N/A Indicates whether to apply a dielectric coating layer to the base layer. This is a complete covering that has no independent material lerping or mixing. The coat has an independent roughness, a configurable index of refraction, and an extinction/absorption effect with a configurable thickness. The coat layer is not anisotropic. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/conservative-depth-offset.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/conservative-depth-offset.md index 05900d58339..308756ed30e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/conservative-depth-offset.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/conservative-depth-offset.md @@ -1,6 +1,6 @@ - Conservative - - +N/A +N/A Indicates whether HDRP only applies positive depth offsets in order to take advantage of the early depth test mechanic. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/cull-mode.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/cull-mode.md index 56b788507c5..010439f16ac 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/cull-mode.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/cull-mode.md @@ -1,6 +1,6 @@ - + Surface Type Cull Mode - + N/A Specifies the face to cull for GameObjects that use this material. The options are:
• Front: Culls the front face of the mesh.
• Back: Culls the back face of the mesh.
This property only appears if you disable Double Sided. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/depth-test.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/depth-test.md index d1b6b12be22..d92f624fece 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/depth-test.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/depth-test.md @@ -1,6 +1,6 @@ - + Surface Type Depth Test - + N/A Specifies the comparison function HDRP uses for the depth test. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/depth-write.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/depth-write.md index 71bbfe1669b..2b4176c4454 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/depth-write.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/depth-write.md @@ -1,6 +1,6 @@ - +Surface Type Depth Write - +N/A Indicates whether HDRP writes depth values for GameObjects that use this material. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-depth-offset.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-depth-offset.md index 0d317cb4270..b329eda8306 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-depth-offset.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-depth-offset.md @@ -1,6 +1,6 @@ - Depth Offset - - +N/A +N/A Indicates whether HDRP modifies the depth buffer according to the displacement. This allows effects that use the depth buffer (Contact Shadows for example) to capture pixel displacement details.
This property only appears if you set Displacement Mode to Pixel Displacement. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-fading-mip-start.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-fading-mip-start.md index e04523146ce..7fe0ced397b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-fading-mip-start.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-fading-mip-start.md @@ -1,6 +1,6 @@ - Fading Mip Level Start - - +N/A +N/A The mip level at which the pixel displacement effect begins to fade out.
This property only appears if you set Displacement Mode to Pixel Displacement. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-maximum-steps.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-maximum-steps.md index d59dd183331..562fe1ce432 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-maximum-steps.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-maximum-steps.md @@ -1,6 +1,6 @@ - Maximum Steps - - +N/A +N/A The maximum number of Texture samples which Unity performs to process pixel displacement.
This property only appears if you set Displacement Mode to Pixel Displacement. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-minimum-steps.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-minimum-steps.md index 38ee7b653f3..118ed5c86e1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-minimum-steps.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-minimum-steps.md @@ -1,6 +1,6 @@ - Minimum Steps - - +N/A +N/A The minimum number of Texture samples which Unity performs to process pixel displacement.
This property only appears if you set Displacement Mode to Pixel Displacement. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-mode.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-mode.md index f1bf6c12e00..5dc8329f63c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-mode.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-mode.md @@ -1,6 +1,6 @@ Displacement Mode - - +N/A +N/A Specifies the method HDRP uses to alter the height of the Material’s surface. The options are:
• None: Applies no displacement to the material.
• Vertex displacement: Displaces the mesh's vertices according to the Height Map.
• Pixel displacement: Displaces the pixels on the mesh surface according to the Height Map.
For more information about the feature and for the list of properties each Displacement Mode exposes, see the Displacement Mode documentation. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-primitive-length.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-primitive-length.md index f0e294ff845..292ab94b7eb 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-primitive-length.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-primitive-length.md @@ -1,6 +1,6 @@ - Primitive Length - - +N/A +N/A The length of the mesh (in meters) on which Unity applies the displacement mapping.
This property only appears if you set Displacement Mode to Pixel Displacement. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-primitive-width.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-primitive-width.md index 6af37e9286f..938ccb254a5 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-primitive-width.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/displacement-primitive-width.md @@ -1,6 +1,6 @@ - Primitive Width - - +N/A +N/A The width of the mesh (in meters) on which Unity applies the displacement mapping.
This property only appears if you set Displacement Mode to Pixel Displacement. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided-GI.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided-GI.md index b2813ad572a..646b82832db 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided-GI.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided-GI.md @@ -1,6 +1,6 @@ Double Sided - - +N/A +N/A Indicates whether HDRP renders both faces of the polygons in your geometry. For more information about the feature and for the list of properties this feature exposes, see the Double-Sided documentation. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided-mode.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided-mode.md index ed443c4b80d..d73b45ed74f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided-mode.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided-mode.md @@ -1,6 +1,6 @@ Double Sided Mode - - +N/A +N/A Specifies how HDRP renders the faces of polygons in the mesh geometry. The options are:
• Disabled: Only renders one face of the polygons.
• Enabled: Renders both faces of the polygons. In this mode, the normal of the back face is the same as the front face.
• Flipped Normals: Renders both faces of the polygons. In this mode, the normal of the back face is 180° of the front-facing normal. This also applies to the material, which means that it looks the same on both sides of the geometry.
• Mirrored Normals: Renders both faces of the polygons. In this mode, the normal of the back face mirrors the front-facing normal. This also applies to the material, which means that it inverts on the back face. This is useful when you want to keep the same shape on both sides of the geometry, for example, for leaves.

For more information about this feature, see Double-sided. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided.md index 9911a7ff7a2..11815c147bd 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/double-sided.md @@ -1,6 +1,6 @@ Double-Sided GI - - + N/A + N/A Determines how HDRP handles a material with regards to Double Sided GI. When selecting Auto, Double-Sided GI is enabled if the material is Double-Sided; otherwise selecting On or Off respectively enables or disables double sided GI regardless of the material's Double-Sided option. When enabled, the lightmapper accounts for both sides of the geometry when calculating Global Illumination. Backfaces aren't rendered or added to lightmaps, but get treated as valid when seen from other objects. When using the Progressive Lightmapper backfaces bounce light using the same emission and albedo as frontfaces. (Currently this setting is only available when baking with the Progressive Lightmapper backend.). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/dual-specular-lobe-parametrization.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/dual-specular-lobe-parametrization.md index 31adc6b45f5..e6704612de9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/dual-specular-lobe-parametrization.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/dual-specular-lobe-parametrization.md @@ -1,6 +1,6 @@ Dual Specular Lobe Parametrization - - +N/A +N/A Specifies the method that controls the second specular lobe. The options are:
Direct: Gives you direct control of the second lobe. SmoothnessB controls the second lobe's smoothness, LobeMix controls the amount of mixing between the two lobes, and Anisotropy controls the second lobe's anisotropic smoothness.
Hazy Gloss: Adds a haze effect to the surface directly while keeping the primary lobe mostly unchanged. Haziness controls the intensity of the haze effect. HazeExtent controls the range of the haze around the central highlight. This option is the most intuitive and controllable way to use two lobes. Note that this mode implicitly modifies the specular color. If the material already has a high specular intensity (close to 1), there is no room to increase it in regions where haziness requires it to be boosted. In this case, haziness has little to no effect.
From Diffusion Profile: Use the Dual Lobe Multipliers and Lobe Mix settings in the Diffusion Profile.
This setting only has an effect if you enable Dual Specular Lobe. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/dual-specular-lobe.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/dual-specular-lobe.md index 8b2554edef1..b0798ef1433 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/dual-specular-lobe.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/dual-specular-lobe.md @@ -1,6 +1,6 @@ Dual Specular Lobe - - +N/A +N/A Indicates whether to add a second specular lobe to the base layer to simulate hazy materials without using a coat. If you also enable anisotropy, each lobe has an independent, configurable, anisotropic smoothness.
The two lobes that characterize the base surface layer use the same index of refraction, or specular color (depending on the Base Color Parametrization). The second lobe then further uses a different input configuration depending on the Dual Specular Lobe Parametrization. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/energy-conserving-specular-color.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/energy-conserving-specular-color.md index 186686dd3c8..5e1ca827716 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/energy-conserving-specular-color.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/energy-conserving-specular-color.md @@ -1,6 +1,6 @@ Energy Conserving Specular Color - - +N/A +N/A Indicates whether HDRP reduces the diffuse color of the Material if the specular effect is more intense. This makes the lighting of the Material more consistent and makes it look more physically-accurate.
This property only appears when you set Material Type to Specular Color. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/energy-conserving-specular.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/energy-conserving-specular.md index 093c2ce5e00..77f579a0dae 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/energy-conserving-specular.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/energy-conserving-specular.md @@ -1,6 +1,6 @@ Energy Conserving Specular - - +N/A +N/A Indicates whether HDRP reduces the diffuse color of the Material if the specular effect is more intense. This makes the lighting of the Material more consistent and makes it look more physically accurate.
This setting only appears when you set Base Color Parametrization to Specular Color and Use IOR From Diffusion Profile is not enabled. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/exclude-from-taau.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/exclude-from-taau.md index 994801a90fc..51a03951011 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/exclude-from-taau.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/exclude-from-taau.md @@ -1,7 +1,7 @@ - Exclude from Temporal Upscaling and Anti Aliasing - - +N/A +N/A Indicates whether the render pipeline excludes this surface from any temporal upscalers (TU) and temporal anti-aliasing (AA). This is useful when the surface looks blurry when TAA or any Temporal Upscaler is enabled and especially useful for animated textures (such as video player in a surface). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/eye-material-type.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/eye-material-type.md index ad8b6b8111d..e0b379abaa0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/eye-material-type.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/eye-material-type.md @@ -1,6 +1,6 @@ Material Type - - +N/A +N/A Specifies the method HDRP uses to calculate the lighting in the eye's iris:
Eye: Uses a low resource-intensity method to calculate caustics.
Eye Cinematic: Refracts incoming light to create more realistic lighting. This is the algorithm used in The Heretic. This method is more resource-intensive than Eye.
Eye Cinematic With Caustic: Uses refracted light direction and caustic approximation to shade the iris. This is the algorithm used in Enemies. This method is the most resource intensive. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/fragment-normal-space.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/fragment-normal-space.md index 219e87871d8..c6b1c066b3e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/fragment-normal-space.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/fragment-normal-space.md @@ -1,6 +1,6 @@ Fragment Normal Space - - +N/A +N/A Specifies the normal map space that this Material uses.
• TangentSpace: Defines the normals in tangent space. Use this to tile a Texture on a Mesh.
• ObjectSpace: Defines the normals in object space. Use this for planar-mapping GameObjects like the terrain.
• WorldSpace: Defines the normal maps in world space. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/geometric-specular-aa.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/geometric-specular-aa.md index d842afdc858..2c4fcea9159 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/geometric-specular-aa.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/geometric-specular-aa.md @@ -1,6 +1,6 @@ Geometric Specular AA - - +N/A +N/A Indicates whether HDRP performs geometric anti-aliasing on this material. This modifies the smoothness values on the surfaces of curved geometry to remove specular artifacts.
For more information about the feature and for the list of properties this feature exposes, see the Geometric Specular Anti-aliasing documentation. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/gsaa-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/gsaa-threshold.md index b7f3fd11f73..512b4ca2dd0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/gsaa-threshold.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/gsaa-threshold.md @@ -1,6 +1,6 @@ - Threshold - - +N/A +N/A The maximum value for the offset that HDRP subtracts from the smoothness value to reduce artifacts.
This property only appears if you enable Geometric Specular AA. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/honor-per-light-max-smoothness.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/honor-per-light-max-smoothness.md index bf4336b9a44..20da3f3b1ee 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/honor-per-light-max-smoothness.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/honor-per-light-max-smoothness.md @@ -1,6 +1,6 @@ Honor Per Light Max Smoothness - - +N/A +N/A Indicates whether the StackLit shader uses the shape of directional, punctual, and spot Lights when it simulates the extent of the Lights.
Depending on the smoothness values of the layers, enabling this option can produce unrealistic results for Lights that have large shapes. To fix this, enable Recompute Stack and Iridescence. These options are separate because recomputing the stack per Light instead of once for all Lights is significantly more resource intensive. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/iridescence.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/iridescence.md index a3667d78ae3..bf0bd2df2e3 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/iridescence.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/iridescence.md @@ -1,6 +1,6 @@ Iridescence - - +N/A +N/A Indicates whether to apply iridescence to the base layer (and the coat layer if there is one). Iridescent surfaces appear to gradually change color as the angle of view or the angle of illumination changes. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/iris-normal.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/iris-normal.md index f929b83eec8..95d6d9f507d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/iris-normal.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/iris-normal.md @@ -1,6 +1,6 @@ Iris Normal - - +N/A +N/A Indicates whether to use custom normals for the iris. When enabled, the Iris Normal Block sets the normal of the iris for the current fragment. When disabled, it uses the Normal Block. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lit-surface-options.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lit-surface-options.md index c5b34af99f1..eafdab28dbc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lit-surface-options.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lit-surface-options.md @@ -7,8 +7,8 @@ Property - - + Option + Sub-option Description diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lock-with-height-map-tiling-rate.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lock-with-height-map-tiling-rate.md index 5e235d4da9e..6fa36bc4de7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lock-with-height-map-tiling-rate.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lock-with-height-map-tiling-rate.md @@ -1,6 +1,6 @@ - Lock With Height Map Tiling Rate - - +N/A +N/A Indicates whether to alter the amplitude of the displacement using the tiling of the Height Map. This allows you to preserve the ratio between the amplitude of the displacement and the scale of the Height Map Texture.
This property only appears if you set Displacement Mode to Vertex Displacement or Pixel Displacement. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lock-with-object-scale.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lock-with-object-scale.md index 7d65761c14b..aef84abb86d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lock-with-object-scale.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/lock-with-object-scale.md @@ -1,6 +1,6 @@ - Lock With Object Scale - - +N/A +N/A Indicates whether to alter the height of the displacement using the Scale of the Transform. This allows you to preserve the ratio between the amplitude of the displacement and the Scale of the Transform.
This property only appears if you set Displacement Mode to Vertex Displacement or Pixel Displacement. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-fabric.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-fabric.md index 9906e473409..199251554c8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-fabric.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-fabric.md @@ -1,6 +1,6 @@ Material Type - - +N/A +N/A Specifies the type of Material the fabric Shader represents. The options are:
Cotton Wool: A variant inspired by the Imageworks’s cloth model.
Silk: A fabric variant based on an anisotropic DinseyGGX BRDF Model. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-hair.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-hair.md index 2eda3d5114e..00f066dfa02 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-hair.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-hair.md @@ -1,6 +1,6 @@ Material Type - - +N/A +N/A Specifies the type of Material the Hair Shader represents. The options are:
Approximate: This hair material type is suitable for hair card geometry and based on the Kajiya-Kay hair model. When you use this type, you need to adjust the blocks in the Fragment context to suit the lighting environment in your scene.
Physical:This hair material type is suitable for hair strand geometry and based on the Marschner hair model. This type is suitable for all light environments. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-layered.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-layered.md index d8b55f22f62..56286855f45 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-layered.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type-layered.md @@ -1,6 +1,6 @@ Material Type - - +N/A +N/A Specifies a type for the material. This allows you to customize the material with different settings depending on the type you select. The options are:
Subsurface Scattering: Applies the subsurface scattering workflow to the material. Subsurface scattering simulates the way light interacts with and penetrates translucent objects, such as skin or plant leaves. When light penetrates the surface of a subsurface scattering material, it scatters and blurs before exiting the surface at a different point.
Standard: Applies the basic metallic Shader workflow to the material. This is the default Material Type.
Translucent: Applies the Translucent workflow to the material. Use this Material Type, and a thickness map, to simulate a translucent material. In contrast to Subsurface Scattering materials, Translucent materials do not blur light that transmits through the material.

For more information about the feature and for the list of properties each Material Type exposes, see the Material Type documentation. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type.md index 53fa6e7bce9..81f9c1eb1d0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/material-type.md @@ -1,6 +1,6 @@ Material Type - - +N/A +N/A Specifies a type for the material. This allows you to customize the material with different settings depending on the type you select. The options are:
• Subsurface Scattering: Applies the subsurface scattering workflow to the material. Subsurface scattering simulates the way light interacts with and penetrates translucent objects, such as skin or plant leaves. When light penetrates the surface of a subsurface scattering material, it scatters and blurs before exiting the surface at a different point.
• Standard: Applies the basic metallic Shader workflow to the material. This is the default Material Type.
• Anisotropy: Applies the anisotropic workflow to the material. The highlights of Anisotropic surfaces change in appearance as you view the material from different angles. Use this Material Type to create materials with anisotropic highlights. For example, brushed metal or velvet.
• Iridescence: Applies the Iridescence workflow to the material. Iridescent surfaces appear to gradually change color as the angle of view or angle of illumination changes. Use this Material Type to create materials like soap bubbles, iridescent metal, or insect wings.
• Specular Color: Applies the Specular Color workflow to the material. Use this Material Type to create Materials with a coloured specular highlight. This is similar to the built-in Specular Shader.
• Translucent: Applies the Translucent workflow to the material. Use this Material Type, and a thickness map, to simulate a translucent material. In contrast to Subsurface Scattering materials, Translucent materials do not blur light that transmits through the material.
For more information about the feature and for the list of properties each Material Type exposes, see the Material Type documentation. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/normal-mode.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/normal-mode.md index 51a80a1f3ff..f3b448a9258 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/normal-mode.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/normal-mode.md @@ -1,6 +1,6 @@ - + Double-Sided GI Normal Mode - + N/A Specifies the mode HDRP uses to calculate the normals for back facing geometry.
• Flip: The normal of the back face is 180° of the front facing normal. This also applies to the Material which means that it looks the same on both sides of the geometry.
• Mirror: The normal of the back face mirrors the front facing normal. This also applies to the Material which means that it inverts on the back face. This is useful when you want to keep the same shapes on both sides of the geometry, for example, for leaves.
• None: The normal of the back face is the same as the front face.
This property only appears if you enable Double-Sided. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/postpass-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/postpass-threshold.md index c030c49a7e4..89183844e86 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/postpass-threshold.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/postpass-threshold.md @@ -1,7 +1,7 @@ - Postpass Threshold - - +N/A +N/A The alpha value limit HDRP uses for the transparent depth postpass. This works in the same way as the main Threshold property described above.
This property only appears when you enable the Transparent Depth Postpass checkbox. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/prepass-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/prepass-threshold.md index 0eb3d5b6940..5565b9d4b4f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/prepass-threshold.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/prepass-threshold.md @@ -1,7 +1,7 @@ - Prepass Threshold - - +N/A +N/A The alpha value limit HDRP uses for the transparent depth prepass. This works in the same way as the main Threshold property described above.
This property only appears when you enable the Transparent Depth Prepass checkbox. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/preserve-specular-lighting.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/preserve-specular-lighting.md index cb2c35a2c3f..2247c5f59bf 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/preserve-specular-lighting.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/preserve-specular-lighting.md @@ -1,6 +1,6 @@ - - +Surface Type +N/A Preserve Specular Lighting Indicates whether to make alpha blending not reduce the intensity of specular highlights. This preserves the specular elements on the transparent surface, such as sunbeams shining off glass or water.
This property only appears if you set Surface Type to Transparent. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-decals.md index 4817e16219c..33b5064591e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-decals.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-decals.md @@ -1,6 +1,6 @@ Receive Decals - - +N/A +N/A Indicates whether HDRP can draw decals on this material’s surface. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-fog.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-fog.md index 5a029d2ea84..d60e3d6ec52 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-fog.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-fog.md @@ -1,6 +1,6 @@ - + Surface Type Receive Fog - + N/A Indicates whether fog affects the transparent surface. When disabled, HDRP doesn't take this material into account when it calculates the fog in the Scene. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-ssr-transparent.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-ssr-transparent.md index efbb8995c6a..a8ab91f8ae8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-ssr-transparent.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-ssr-transparent.md @@ -1,6 +1,6 @@ Receive SSR Transparent - - + N/A + N/A Indicates whether HDRP includes this material when it processes the screen space reflection pass.
This property only appears if you set Surface Type to Transparent. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-ssr.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-ssr.md index 00345d39136..df06a0be6fc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-ssr.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/receive-ssr.md @@ -1,6 +1,6 @@ Receive SSR - - + N/A + N/A Indicates whether HDRP includes this material when it processes the screen space reflection pass.
This property only appears if you set Surface Type to Opaque. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recompute-stack-and-iridescence.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recompute-stack-and-iridescence.md index 756949ce806..103198575bb 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recompute-stack-and-iridescence.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recompute-stack-and-iridescence.md @@ -1,6 +1,6 @@ Recompute Stack And Iridescence - - +N/A +N/A Indicates whether the StackLit shader simulates its coat/layer effect for each Light individually, rather than once for all Lights at the same time. Note this only applies to punctual, directional, and spot Lights. Enabling this option increases the resource intensity of the shader, so only use it when necessary (for example, when Honor Per Light Max Smoothness is enabled). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recursive-rendering.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recursive-rendering.md index 43fd5b0947a..bece4aea88b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recursive-rendering.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/recursive-rendering.md @@ -1,6 +1,6 @@ Recursive Rendering - - +N/A +N/A Indicates whether to include this material in the recursive rendering pipeline. When enabled, if your project supports ray tracing and a Recursive Rendering Volume Profile override is active, HDRP uses ray tracing to render this material. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/rendering-pass.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/rendering-pass.md index 8ef5ad1e5f0..374f298ade2 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/rendering-pass.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/rendering-pass.md @@ -1,6 +1,6 @@ - +Surface Type Rendering Pass - +N/A Specifies the rendering pass that HDRP processes this material in.
• Before Refraction: Draws the GameObject before the refraction pass. This means that HDRP includes this Material when it processes refraction. To expose this option, select Transparent from the Surface Type drop-down.
• Default: Draws the GameObject in the default opaque or transparent rendering pass pass, depending on the Surface Type.
• Low Resolution: Draws the GameObject in half resolution after the Default pass.
• After post-process: For Unlit Materials only. Draws the GameObject after all post-processing effects. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/screen-space-variance.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/screen-space-variance.md index ef1103955c4..c18023f979f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/screen-space-variance.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/screen-space-variance.md @@ -1,6 +1,6 @@ - Screen Space Variance - - +N/A +N/A The strength of the geometric specular anti-aliasing effect between 0 and 1. Higher values produce a blurrier result with less aliasing.
This property only appears if you enable Geometric Specular AA. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-matte.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-matte.md index b7e08041c98..cb269eefc4c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-matte.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-matte.md @@ -1,7 +1,7 @@ Shadow Matte - - +N/A +N/A Indicates whether the shader receives shadows. Shadow matte only supports shadow maps. It doesn't support screen-space shadows, ray-traced Shadows, or contact shadows.
Enable **Shadow Matte** if you add a custom Node that samples shadow maps, otherwise shadows might not render correctly. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-threshold.md index c0db7d388c8..2d5123a6f6e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-threshold.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/shadow-threshold.md @@ -1,7 +1,7 @@ - - Shadow Threshold - - +N/A +N/A The alpha value limit that HDRP uses to determine whether it should render shadows for a pixel.
This property only appears if you enable Use Shadow Threshold. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/sorting-priority.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/sorting-priority.md index 12480688035..cd91e15e38f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/sorting-priority.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/sorting-priority.md @@ -1,6 +1,6 @@ - + Surface Type Sorting Priority - + N/A Allows you to change the rendering order of overlaid transparent surfaces. For more information and an example of usage, see the Material sorting documentation.
This property only appears if you set Surface Type to Transparent. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/specular-occlusion-mode-stacklit.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/specular-occlusion-mode-stacklit.md index 64815abeebd..b8bf8022911 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/specular-occlusion-mode-stacklit.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/specular-occlusion-mode-stacklit.md @@ -1,6 +1,6 @@ Specular Occlusion Mode - - +N/A +N/A The mode that HDRP uses to calculate specular occlusion. The options are:
Off: Disables specular occlusion.
Direct From AO: Calculates specular occlusion from the ambient occlusion map and the Camera's view vector.
SPTD Integration of Bent AO: First uses the bent normal with the ambient occlusion value to calculate a general visibility cone. Then, calculates the specular occlusion using a Spherical Pivot Transformed Distribution (SPTD) that is properly integrated against the bent visibility cone.
• *Custom*: Allows you to specify your own specular occlusion values. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/ss-depth-offset.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/ss-depth-offset.md index 0065e22ce50..c107882b03f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/ss-depth-offset.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/ss-depth-offset.md @@ -1,6 +1,6 @@ Depth Offset - - +N/A +N/A Indicates whether HDRP modifies the depth buffer according to the displacement. This allows effects that use the depth buffer (Contact Shadows for example) to capture pixel displacement details. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/subsurface-scattering.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/subsurface-scattering.md index 95a25310e2f..2b49802f6c9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/subsurface-scattering.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/subsurface-scattering.md @@ -1,6 +1,6 @@ Subsurface Scattering - - +N/A +N/A Indicates whether the Material supports subsurface scattering. To disable subsurface scattering in specific regions of the Material, use the Subsurface Mask. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/surface-type.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/surface-type.md index 23ba9e7b0d7..1870d5ff7ca 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/surface-type.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/surface-type.md @@ -1,6 +1,6 @@ Surface Type - - +N/A +N/A Specifies whether the material supports transparency or not. Materials with a Transparent Surface Type are more resource intensive to render than Materials with an Opaque Surface Type. Depending on the option you select, HDRP exposes more properties. The options are:
• Opaque:
• Transparent: Simulates a translucent Material that light can penetrate, such as clear plastic or glass.
For more information about the feature and for the list of properties each Surface Type exposes, see the Surface Type documentation. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/tessellation.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/tessellation.md index 20584b7ef37..64359c54e99 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/tessellation.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/tessellation.md @@ -1,6 +1,6 @@ Tessellation - - +N/A +N/A Tessellation Shaders subdivide the Mesh and add vertices according to the Material’s tessellation options, see the Tessellation documentation. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transmission.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transmission.md index 18bf1d63b8a..5c269f02178 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transmission.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transmission.md @@ -1,7 +1,7 @@ Transmission - - +N/A +N/A Indicates whether HDRP simulates the translucency of the material using a thickness map. Configure subsurface scattering and transmission settings using a Diffusion Profile. For more information, see documentation on Subsurface Scattering.
This property only appears when you select Subsurface Scattering from the Material Type drop-down. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-postpass.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-postpass.md index fb776941a47..40626b11a0b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-postpass.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-postpass.md @@ -1,7 +1,7 @@ - Transparent Depth Postpass - - +N/A +N/A Indicates whether HDRP adds polygons to the depth buffer that post-processing uses. HDRP performs this operation before the lighting pass. Enabling this feature is useful if you want to use post-processing effects that use depth information, like motion blur or depth of field. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-prepass.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-prepass.md index 9f1257073cf..f915dec84d6 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-prepass.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-depth-prepass.md @@ -1,6 +1,6 @@ - + Surface Type Transparent Depth Prepass - + N/A Indicates whether HDRP adds polygons from the transparent surface to the depth buffer to improve their sorting. HDRP performs this operation before the lighting pass and this process improves GPU performance. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-writes-motion-vectors.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-writes-motion-vectors.md index c71f9801767..39fe14780d7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-writes-motion-vectors.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/transparent-writes-motion-vectors.md @@ -1,6 +1,6 @@ - +Surface Type Transparent Writes Motion Vectors - +N/A Indicates whether HDRP writes motion vectors for transparent GameObjects that use this Material. This allows HDRP to process effects like motion blur for transparent objects. For more information on motion vectors, see the motion vectors documentation.
This property only appears if you set Surface Type to Transparent. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-profile-ior.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-profile-ior.md index 43827e06981..7531d94161f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-profile-ior.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-profile-ior.md @@ -1,6 +1,6 @@ Use IOR From Diffusion Profile - - +N/A +N/A Indicates whether the Material computes the fresnel color from the IOR of the diffusion profile, or using the Dielectric IOR set in the graph output. This is only available if Subsurface Scattering or Transmission is enabled. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-shadow-threshold.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-shadow-threshold.md index 959262d1383..f018e269d39 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-shadow-threshold.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/use-shadow-threshold.md @@ -1,7 +1,7 @@ - Use Shadow Threshold - - +N/A +N/A Indicates whether HDRP uses another threshold value for alpha clipping shadows.
This property only appears if you enable Alpha Clipping. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/velocity.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/velocity.md index 8dc5eea1e56..861bb9376bc 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/velocity.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/surface-options/velocity.md @@ -1,6 +1,6 @@ Add Custom Velocity - - +N/A +N/A Indicates whether HDRP changes the motion vector according to the provided velocity. HDRP adds the provided velocity (the difference between the current frame position and the last frame position in Object space) to the motion vector calculation. This provides correct motion vector calculations for any procedural geometry that HDRP calculates outside of Shader Graph. The motion vector still takes into account other deformations (for example, skinning or vertex animation). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/transparency-inputs/refraction-model.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/transparency-inputs/refraction-model.md index cc244592cb9..48229f69609 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/transparency-inputs/refraction-model.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/shader-properties/transparency-inputs/refraction-model.md @@ -1,7 +1,7 @@ Refraction Model - - +N/A +N/A Specifies the model HDRP uses to process refraction. The options are:
None: No refraction occurs. Select this option to disable refraction.
Box: A box-shaped model where incident light enters through a flat surface and leaves through a flat surface. Select this option for hollow surfaces.
Sphere: A sphere-shaped model that produces a magnifying glass-like effect to refraction. Select this option for solid surfaces.
Thin: A thin box surface type, equivalent to Box with a fixed thickness of 5cm. Select this for thin window-like surfaces. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/thread-map.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/thread-map.md index aafce7bbf03..20eabef7627 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/thread-map.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/thread-map.md @@ -2,7 +2,7 @@ The Fabric shaders can use a thread map for the high-frequency details that fabrics exhibit. This is similar to the [detail map](../Mask-Map-And-Detail-Map.md#DetailMap) found in HDRP's Lit shaders. The Thread Map input is channel-packed to optimise memory and is arranged in a way to optimise precision for the normal map. The Fabric Material Sample includes some pre-authored Thread Maps for you. -![img](../Images/thread-map.png) +![Sample thread map.](../Images/thread-map.png) The format of the thread map texture: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/tracing-modes.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/tracing-modes.md index 9fe88000daa..9217a01f749 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/tracing-modes.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/snippets/tracing-modes.md @@ -14,15 +14,15 @@ In Mixed tracing mode, HDRP processes screen-space ray marching in the GBuffer. In Mixed tracing mode, HDRP still uses ray tracing for any geometry inside the ray tracing acceleration structure, regardless of whether vertex animation or decals modify the geometry's surface. This means if HDRP fails to intersect the on-screen deformed geometry, it intersects the original mesh inside in the ray tracing acceleration structure. This may cause visual discrepancies between what you see and what you expect. For example, the following Scene contains a cliff that uses mesh deformation. -![](../Images/mixed-tracing-mixed.png) +![Example scene contains a cliff mesh that uses mesh deformation.](../Images/mixed-tracing-mixed.png) In this Scene, Mixed mode can include reflections for the opaque leaf particles, the white decal, and GameObjects that aren't visible in the cliff face's non-deformed geometry. -![](../Images/mixed-tracing-ray-traced.png) +![Reflections in the water show elements that are not visible on the cliff surface.](../Images/mixed-tracing-ray-traced.png) Reflection rays intersect with the original, non-deformed cliff face geometry. This means the rays can still be affected by the bush behind the rock. To view the Scene from the perspective of the ray tracing mode, refer to the following image. -![](../Images/mixed-tracing-ray-traced-no-deform.png) +![The scene rendered using ray tracing. The reflections match the cliff surface.](../Images/mixed-tracing-ray-traced-no-deform.png) This image shows the elements of the Scene that ray tracing takes into account. The non-deformed cliff face geometry reveals the bushes behind the rocks. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-master-stack-reference.md index 1108bbd514e..a17a9fb3c6d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-master-stack-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-master-stack-reference.md @@ -131,8 +131,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add Property - - + Option + Sub-option Description diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-material.md index fab5a3682fb..d35992eb024 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/stacklit-material.md @@ -2,7 +2,7 @@ The StackLit Master Stack can render materials that are more complex than the [Lit Master Stack](lit-master-stack-reference.md). It includes all the features available in the Lit shader and, sometimes, provides more advanced or higher quality versions. For example, it uses a more advanced form of specular occlusion and also calculates anisotropic reflections for area lights in the same way the Lit shader does for other light types. It also takes into account light interactions between two vertically stacked physical layers, along with a more complex looking general base layer. -![](Images/HDRPFeatures-StackLitShader.png) +![Stacklit material example.](Images/HDRPFeatures-StackLitShader.png) ## Creating a StackLit Shader Graph diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/synchronize-water-surfaces.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/synchronize-water-surfaces.md index efed0df3f62..724f7f6494e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/synchronize-water-surfaces.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/synchronize-water-surfaces.md @@ -1,4 +1,4 @@ -# Synchronize water surfaces +# Synchronize multiple water surfaces If you use multiple water surfaces, you can synchronize the water simulation of each surface. For example, if you need to make sure the water surface is the same for all the players in a multiplayer game. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/terrain-lit-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/terrain-lit-material.md index 0c28b4a30bc..9febcdbb874 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/terrain-lit-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/terrain-lit-material.md @@ -2,7 +2,7 @@ The High Definition Render Pipeline (HDRP) uses the Terrain Lit Shader for Unity Terrain. This Shader is a simpler version of the [Lit Shader](lit-material.md). A Terrain can use a Terrain Lit Material with up to eight [Terrain Layers](https://docs.unity3d.com/Manual/class-TerrainLayer.html). -![](Images/HDRPFeatures-TerrainShader.png) +![Sample Terrain Lit Material](Images/HDRPFeatures-TerrainShader.png) ## Creating a Terrain Lit Material @@ -22,7 +22,7 @@ To use a Terrain Lit Material, you must assign it to a Terrain: 1. View the Terrain in the Inspector window and select **Terrain Settings**. 2. Either drag and drop or use the radio button to assign your Terrain Lit Material to the **Material** property. -![](Images/TerrainLitShader1.png) +![Terrain Lit Material Inspector.](Images/TerrainLitShader1.png) ## Using the Paint Holes Tool @@ -31,4 +31,3 @@ If you use the **Paint Holes** tool on your terrain, enable the **Terrain Hole** 1. Open your HDRP Asset in the Inspector window. 2. Go to **Rendering** and enable **Terrain Hole**. -![](Images/TerrainPaintHoles.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-and-debug-materials-in-different-lighting-conditions-look-dev.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-and-debug-materials-in-different-lighting-conditions-look-dev.md index f6f4556f646..fe98d646122 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-and-debug-materials-in-different-lighting-conditions-look-dev.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-and-debug-materials-in-different-lighting-conditions-look-dev.md @@ -3,5 +3,3 @@ Look Dev is an image-based lighting tool that you can use to test how your Assets look in various lighting conditions. For more information, see [the SRP Core documentation.](https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@latest/index.html?subfolder=/manual/Look-Dev.html) - -![](Images/HDRPFeatures-LookDev.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-debug-exposure.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-debug-exposure.md index 07e4dd773ae..ddac3ff4f6c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-debug-exposure.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/test-debug-exposure.md @@ -8,13 +8,13 @@ This debug mode shows a heat map of the scene luminance converted to [EV100 Furthermore, this debug view shows the numerical value of the pixel at the center of the screen. It also displays this value in the heatmap indicator at the bottom of the screen to show where it's relative to the full range. -![](Images/Override-Exposure4.png) +![A scene of spaceship machinery with a heat map of the scene luminance. The majority of the scene is in various shades of blue, with yellow on areas underneath the lights and a few orange marks. Blue indicates a lower value and orange indicates a higher value.](Images/Override-Exposure4.png) ## Histogram View In **Automatic Histogram** mode, if may be difficult to set the upper and lower brightness percentages without a references. To help with this, HDRP includes the Histogram debug view which shows an overview of what the scene brightness distribution looks like. -![](Images/Override-Exposure5.png) +![A scene of a spaceship interior with red, blue, and neutral color overlays representing exposure levels. Red indicates overexposed areas, while blue marks underexposed regions. A histogram with a curve is at the bottom, indicating luminance distribution and current exposure settings. Text overlays in the bottom-left corner display exposure values.](Images/Override-Exposure5.png) There are two places this debug mode displays information: @@ -37,11 +37,11 @@ By default, the values on the x-axis are fixed, however, you can also make the h The Metering Weighted debug view displays the scene alongside a picture of what the scene looks like after HDRP weights it with the metering mask. This is useful to set up the procedural metering masks or determine the right texture mask. -![](Images/Override-Exposure6.png) +![A scene of a spaceship interior in the Metering Weighted debug view, which displays the scene alongside a picture of what the scene looks like after HDRP weights it with the metering mask. With the metering mask, the scene is significantly darker.](Images/Override-Exposure6.png) #### Final Image Histogram The final image histogram debug view displays the scene alongside an overlay representing the histogram of the image after all post-processing (tonemapping and gamma correction included) is applied. This histogram has 256 bins to map to 8-bit image values. This view can display both luminance histogram or RGB channels represented separately. -![](Images/Override-Exposure7.png) \ No newline at end of file +![A scene of a spaceship interior with the final image histogram debug view.](Images/Override-Exposure7.png) \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-clouds.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-clouds.md index bbebffa8e52..2f8307a4970 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-clouds.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-clouds.md @@ -13,7 +13,7 @@ __Note:__ Cloud Layer and Volumetric Clouds do not support Planet Center Positio ## Volumetric clouds -![](Images/volumetric-clouds-1.png) +![A vast snowy mountainous landscape, with large fluffy white and grey clouds in a clear blue sky.](Images/volumetric-clouds-1.png) Volumetric clouds are interactable clouds that can render shadows, and receive fog and volumetric light. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md index ae284b0439d..e95871efd55 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-decals.md @@ -7,7 +7,7 @@ The High Definition Render Pipeline (HDRP) includes the following ways to create To use these methods, you need to create a decal Material. A decal Material is a Material that uses the Decal Shader or Decal Master Stack. You can then place or project your decal Material into a Scene. -![](Images/HDRPFeatures-DecalShader.png) +![Rocky ground with two dark iridescent oil patches.](Images/HDRPFeatures-DecalShader.png) Refer to [Use decals](use-decals.md) for more information. @@ -17,7 +17,7 @@ When the Decal Projector component projects decals into the Scene, they interact The Decal Projector also supports [Decal Layers](use-decals.md#decal-layers) which means you can control which Materials receive decals on a Layer by Layer basis. -![](Images/DecalProjector1.png) +![A stony forest floor in the Scene view, with a rectanglar area represnting a Decal Projector above a reflective puddle.](Images/DecalProjector1.png) ## Limitations diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-eyes.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-eyes.md index 5805ddac496..cef6ce7e90a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-eyes.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-eyes.md @@ -9,13 +9,13 @@ When rendering eyes, it’s helpful to become familiar with their biological str * The **Limbus**, or the Limbal Ring, is the darkened bordering region between the Cornea and the Sclera. * The **Sclera** is the opaque, protective outer layer of the eye. -![img](Images/eye-shader-anatomy.png) +![Front and side views of an eye, with the five areas labelled.](Images/eye-shader-anatomy.png) ## Eye materials Use the Eye shader or the Eye Shader Graph as the starting point for rendering eyes in the High Definition Render Pipeline (HDRP). They model a two-layer material, in which the first layer describes the cornea and fluids on the surface, and the second layer describes the sclera and the iris, visible through the first layer. They supports various effects, such as cornea refraction, caustics, pupil dilation, limbal darkening, and subsurface scattering. -![](Images/HDRPFeatures-EyeShader.png) +![Six floating eyeballs, each with a different-colored iris and a different-sized limbus.](Images/HDRPFeatures-EyeShader.png) Under the hood, the Eye shader is a pre-configured Shader Graph. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fabrics.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fabrics.md index 87f80130891..1981c13cb45 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fabrics.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fabrics.md @@ -6,7 +6,7 @@ The Cotton/Wool shader is your starting point for rendering diffuse fabrics in t The type of fibers that make up the fabric, as well as the fabric's knit or weave, influence the appearance of the fabric. Natural fibers are typically rougher so they diffuse light. -![](Images/HDRPFeatures-CottonShader.png) +![Sample cotton/wool fabrics.](Images/HDRPFeatures-CottonShader.png) The Cotton/Wool shader is a pre-configured Shader Graph. To learn more about the Cotton/Wool shader implementation, or to create your own Fabric shader variant, see the Shader Graph documentation about the [Fabric Master Stack](fabric-master-stack-reference.mdd). @@ -18,7 +18,7 @@ The Silk shader is your starting point for rendering anisotropic fabrics in the Silk and other synthetic fibers are usually smoother than natural fibres because they're produced as a single smooth filament. When these fibres are woven together, it produces a fabric with anisotropic specular highlights. -![img](Images/HDRPFeatures-SilkShader.png) +![Sample silk fabrics.](Images/HDRPFeatures-SilkShader.png) The Silk shader is a pre-configured Shader Graph. To learn more about the Silk shader implementation, or to create your own Silk shader variant, see the Shader Graph documentation about the [Fabric Master Stack](fabric-master-stack-reference.md). @@ -28,7 +28,7 @@ Refer to [Create a fabric material](create-a-fabric-material.md) for more inform The Fabric Master Stack enables you to render various types of fabric in the High Definition Render Pipeline (HDRP). It uses either cotton wool or anisotropic silk as its base, and supports various additional effects such as [Subsurface Scattering](skin-and-diffusive-surfaces-subsurface-scattering.md) to create realistic looking fabrics. -![](Images/MasterNodeFabric1.png) +![Sample fabrics.](Images/MasterNodeFabric1.png) Refer to [Create a fabric material](create-a-fabric-material.md) for more information. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fullscreen-materials.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fullscreen-materials.md index 1b35369292c..4449fb291b7 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fullscreen-materials.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-fullscreen-materials.md @@ -8,7 +8,7 @@ You can then use the Fullscreen shader in the following ways: - To create a [Custom Post Process effect](custom-post-processing-use-full-screen-shader.md). - In a C# script with the [`HDUtils.DrawFullscreen`](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@15.0/api/UnityEngine.Rendering.HighDefinition.HDUtils.html) or `Graphics.Blit()` functions. To use `Graphics.Blit()`see [Make a Fullscreen material Blit compatible](create-a-fullscreen-material#make-a-full-screen-shader-graph-blit-compatible). -![](Images/Fullscreen-shader-rain.png) +![A scene of 3D shapes, with a full-screen shader that applies a raindrop effect to the screen.](Images/Fullscreen-shader-rain.png) A full-screen shader that applies a raindrop effect to the screen. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-hair-and-fur.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-hair-and-fur.md index 66722eab0a2..37bd7a0a924 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-hair-and-fur.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-hair-and-fur.md @@ -2,7 +2,7 @@ You can use the Hair shader or the Hair Shader Graph as a starting point for rendering hair and fur in the High Definition Render Pipeline (HDRP). To create a realistic looking hair effect, the Hair shader and the Hair Shader Graph use layers called hair cards. Each hair card represents a different section of hair. If you use semi-transparent hair cards, you must manually sort them so that they're in back-to-front order from every viewing direction. -![](Images/HDRPFeatures-HairShader.png) +![Front and side views of the top of a woman's head with very realistic-looking flowing hair.](Images/HDRPFeatures-HairShader.png) The Hair shader is a pre-configured Shader Graph. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-high-quality-line-rendering.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-high-quality-line-rendering.md index ceef887219c..d914c39214c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-high-quality-line-rendering.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-high-quality-line-rendering.md @@ -4,10 +4,10 @@ Rendering line topology via traditional hardware rasterization, for example to r Use the **High Quality Line Rendering** override to draw line geometry with analytic anti-aliasing and transparent sorting. -![](Images/HQLines-HW.png) +![The head of a lion, where the mane looks rougher and more pixelated.](Images/HQLines-HW.png)
An example of hardware lines. -![](Images/HQLines-SW.png) +![The same lion, where the main looks softer and smoother.](Images/HQLines-SW.png)
An example of high quality lines. The High Quality Line Renderer is a line segment software rasterizer designed for fast, high quality transparency and anti-aliasing. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-refraction.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-refraction.md index 62af9a36908..5b7cda6fed1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-refraction.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-refraction.md @@ -2,7 +2,8 @@ Refraction is when light bends as it passes from one material ('medium') into another. Your eye can see refraction only through a transparent material, because most light is absorbed or reflected in opaque materials. -![](Images/refraction-glass-of-water.png)
+![Light rays bend as they travel through the different mediums of air, water, and glass, so the pencil appears deformed.](Images/refraction-glass-of-water.png) + Light rays bend as they travel through the different mediums of air, water, and glass, so the pencil appears deformed. ## How refraction works in HDRP diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-volumes.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-volumes.md index 99e3cd3fcb8..be4423df359 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-volumes.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/understand-volumes.md @@ -19,7 +19,7 @@ Refer to [Set up a volume](set-up-a-volume.md) for more information. Each Volume component references a Volume Profile, which contains scene properties in one or more Volume Overrides. Each Volume Override controls different settings. -![](Images/VolumeProfile3.png) +![The default Sky and Fog Volume selected in the Hierarchy window and open in the Inspector window. The volume profile is set to SkyandFogSettingsProfile, and there is a dropdown and properties for each Volume Override.](Images/VolumeProfile3.png) The default **Sky and Fog Volume** GameObject in a new HDRP project. The GameObject has a global volume. The Volume Profile has **Visual Environment**, **Physically Based Sky**, **Fog** and **Exposure** Volume Overrides. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-master-stack-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-master-stack-reference.md index b95aa12c56a..b83a590fe39 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-master-stack-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-master-stack-reference.md @@ -97,8 +97,8 @@ Depending on the [Graph Settings](#graph-settings) you use, Shader Graph can add Property - - + Option + Sub-option Description diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-material.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-material.md index ddab36fac4f..f3352461f28 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-material.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/unlit-material.md @@ -2,7 +2,7 @@ The Unlit Shader and the Unlit Shader Graph let you create Materials that are not affected by lighting. They include options for the Surface Type, Emissive Color, and GPU Instancing. For more information about Materials, Shaders and Textures, see the [Unity User Manual](https://docs.unity3d.com/Manual/Shaders.html). -![](Images/HDRPFeatures-UnlitShader.png) +![Two glowing strip lights in a very dark industrial environment.](Images/HDRPFeatures-UnlitShader.png) ## Creating an Unlit Material @@ -14,8 +14,6 @@ New Materials in HDRP use the [Lit Shader](lit-material.md) by default. To creat 3. Click the __Shader__ drop-down at the top of the Material Inspector, and select __HDRP > Unlit__. -![](Images/HDRPFeatures-UnlitShader.png) - Refer to [Unlit Material Inspector reference](unlit-material-inspector-reference.md) for more information. ## Creating an Unlit Shader Graph diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/use-decals.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/use-decals.md index b7a7eb98b59..26d9f17088a 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/use-decals.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/use-decals.md @@ -8,7 +8,7 @@ The High Definition Render Pipeline (HDRP) includes the following ways to create To use these methods, you need to create a decal Material. A decal Material is a Material that uses the [Decal Shader](Decal-Shader.md) or [Decal Master Stack](master-stack-decal.md). You can then place or project your decal Material into a Scene. -![](Images/HDRPFeatures-DecalShader.png) +![Decal shader.](Images/HDRPFeatures-DecalShader.png) ## Decal Layers @@ -69,7 +69,7 @@ HDRP renders Material depth in a Depth Prepass to apply decals to opaque Materia You can use Additive normal blending to blend decal normals with the normals of a specific GameObject. In the following image examples, the screenshot on the left doesn't use additive normal blending, and the screenshot on the right uses additive normal blending. -![](Images/HDRPFeatures-SurfGrad.png) +![The image on the left doesn't use additive normal blending, and the image on the right uses additive normal blending.](Images/HDRPFeatures-SurfGrad.png) To use Additive Normal Blending: 1. Open your Project’s [HDRP Asset](HDRP-Asset.md). diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/use-the-graphics-compositor.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/use-the-graphics-compositor.md index b18be1ab821..fb7dd385c99 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/use-the-graphics-compositor.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/use-the-graphics-compositor.md @@ -17,11 +17,11 @@ If you set the Game view to show **Display 1**, , make sure the Graphics Composi The following example uses the Graphics Compositor to render a watermark on top of a Unity Scene. -![](Images/Compositor-CompositorSimpleGraph.png) +![This example uses the Graphics Compositor to render a watermark on top of a Unity Scene.](Images/Compositor-CompositorSimpleGraph.png) The composition graph. -![](Images/Compositor-HDRPTemplateWithLogo.png) +![The composition graph.](Images/Compositor-HDRPTemplateWithLogo.png) The result. @@ -50,7 +50,7 @@ When you create a Composition Graph, there are two main types of input property The following graph contains examples of the property types described above. The **Logo** property is an example of a Composition Layer and the **Opacity** property is an example of an input property to control an aspect of the composition: -![](Images/Compositor-CompositorSimpleGraph.png) +![This graph contains examples of the property types described above.](Images/Compositor-CompositorSimpleGraph.png) Unity saves the Graphics Compositor properties in a .asset file with the same name as the Composition Graph. When the Graphics Compositor loads a Composition Graph, it also loads the properties from the corresponding Asset file if one exists, otherwise, it creates a new Asset with default settings. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md index 44b22b7e9fa..f14b3bcbfc2 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/volumetric-clouds-volume-override-reference.md @@ -113,11 +113,11 @@ For the **Cloud LUT**, the color channels represent: When importing these two map Textures, disable **sRGB**. For best results, do not use any compression. -![](Images/CloudLUT_Advanced.png) +![A small rectangular texture with a bright cyan background. On the left are two small white clouds at different heights. On the right is a curving gradient from red to green.](Images/CloudLUT_Advanced.png)
As a reference, here is the procedurally generated cloud LUT used for advanced mode. You can clearly see the 3 types of clouds (mid-altitude on the left, high altitude in the middle and cumulonimbus on the right). Also, there is variations in the green and blue channels to specify more of less erosion and ambient occlusion depending on the cloud profile. -![](Images/Volumetric-Clouds-manual-lut.png) +![A rectangular texture with 8 bands of 32 pixels each. The first 3 bands are thin clouds at different heights. The next band is a tall fluffy cloud. The next 3 bands are clouds that get spottier at different heights. The final band is a curving vertical cloud. The edge at 96 pixels maps to the top-left of the sky, and the edge at 128 pixels maps to the center of the sky. The final image is a tower of layered cloud, with smaller clouds scattered nearby.)](Images/Volumetric-Clouds-manual-lut.png) Here is an example cloud LUT that can be used in manual mode. On the top image, the LUT is divided into 8 32px wide parts, each representing a cloud type with a specific profile and altitude. (stratus on the left and cumulus on the right) On the bottom left, the cloud map uses grayscale values to map which type of clouds is used. For exemple a radial gradient using thoses values creates a circular cloud as seen on the bottom right using the profile set on the cloud LUT. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-capabilities-of-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-capabilities-of-the-water-system.md index a3f6172ba83..050b81887bb 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-capabilities-of-the-water-system.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-capabilities-of-the-water-system.md @@ -28,7 +28,7 @@ For more in-depth water Material customizations, you can use [the water ShaderGr ## Masking You can assign custom masks to attenuate or supress ripples, swells, and foam on specific portions of a water surface. You can also use them to adjust decal and light layers. ## Scripting -It is possible to create [scripts that interact with the water system](water-scripting-in-the-water-system.md), to imitate buoyancy, for example. +You can create scripts that interact with the water system, for example, to imitate buoyancy. ## Limitations and caveats The water system does not currently support: @@ -66,4 +66,3 @@ Also, **Affect Base Color** only produces monochromatic output. # Additional resources * [Settings and properties related to the water system](settings-and-properties-related-to-the-water-system.md) -* [Scripting in the water system](water-scripting-in-the-water-system.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-caustics-in-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-caustics-in-the-water-system.md index 48f3183558e..5c7333ed6a2 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-caustics-in-the-water-system.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-caustics-in-the-water-system.md @@ -1,20 +1,63 @@ -# Caustics in the water system -Caustics are a consequence of light rays refracted or reflected by a curved surface and projected onto another object. +# Customize caustics in the water system -## Wave size -HDRP uses the **Ripples** **Simulation Band** for **Caustics** calculations by default if the **Ripples** band is active. If you wish to base caustics on larger waves in a **River** or **Ocean, Sea, or Lake** water surface, you need to adjust the **Simulation Band** setting. It may also be necessary to adjust the **Virtual Plane Distance** to ensure a plausible result. To prevent aliasing artifacts, you can increase the **Caustics Resolution**. +![A swimming pool with water caustics below the surface.](Images/caustics.jpg) -## Limitations -In the current water implementation, caustics do not have an effect above the water unless you script this behavior. For example, if you have a boat sitting in the water, HDRP does not project caustics on the part of its hull that is not submerged, and a swimming pool inside of a room does not bounce caustics off the walls or ceiling. -You can manually implement this effect by creating a **Decal Projector** in the following way: -```cs -this.GetComponent().material.SetTexture("_Base_Color", waterSurface.GetFoamBuffer(out Vector2 _)); +Customize the appearance of caustics, which are bright light patterns on GameObjects caused by the curved water surface reflecting and refracting light. + +## Create caustics from larger waves + +By default, the High Definition Render Pipeline (HDRP) uses the ripples [simulation band](water-water-system-simulation.md#simulation-bands) to calculate caustics. + +To calculate caustics from larger waves in a river, ocean, sea, or lake, follow these steps: + +1. Select the water surface GameObject. +2. In the **Inspector** window, go to **Appearance**. In the **Caustics** section, set the **Simulation Band** to a different band. +3. Increase **Virtual Plane Distance** until you get the desired result. + +To prevent aliasing artifacts, set **Caustics Resolution** to a higher value. + +![On the left, caustics with the simulation band set to **Ripples**. On the right, caustics with the simulation band set to **Swell First Band**.](Images/caustics-simulation-bands.jpg)
+On the left, caustics with the simulation band set to **Ripples**. On the right, caustics with the simulation band set to **Swell First Band**. + +## Add caustics above water + +To add caustics to GameObjects above water, for example the parts of a boat that sit above the water surface, follow these steps: + +1. Create a [Decal Projector](understand-decals.md#decal-projector). +2. Add a script to the Decal Projector that uses the `GetCausticsBuffer` API to get the caustics texture from the water surface, and apply the texture as the Decal Projector texture. + +For example: + +```c# +using UnityEngine; +using UnityEngine.Rendering.HighDefinition; + +public class ProjectCaustics : MonoBehaviour +{ + public WaterSurface waterSurface; + + void Update() + { + this.GetComponent().material.SetTexture("_Base_Color", waterSurface.GetCausticsBuffer(out float regionSize)); + } +} ``` -Caustics have the following limitations with transparents GameObjects: -* When the camera is above a water surface, HDRP computes caustics using the position of any opaque object behind a transparent. +Caustics have the following limitations with transparent GameObjects: + +* When the camera is above a water surface, HDRP calculates caustics using the position of any opaque GameObject behind a transparent GameObject. * HDRP doesn't apply caustics to transparent GameObjects when the camera is underwater. -* Caustics do not react to current maps and Water Mask. +* Caustics don't react to current maps and water masks. + +## Make caustics less visible + +You can reduce the absorption distance of the water surface. When water has a lower absorption distance, it's muddier and refracts less light, which makes caustics less visible. + +To make caustics less visible, follow these steps: + +1. Select the water surface GameObject. +2. In the **Inspector** window, in the **Refraction** section, decrease **Absorption Distance**. ## Additional resources -* Settings and properties related to the water system + +- [Settings and properties related to the water system](settings-and-properties-related-to-the-water-system.md) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-create-a-current-in-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-create-a-current-in-the-water-system.md index 2576ed4ca3e..b81c50736bf 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-create-a-current-in-the-water-system.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-create-a-current-in-the-water-system.md @@ -22,16 +22,16 @@ To open the River sample scene: You can create a Current map texture in any image-editing software. The image can be in any non sRGB format. The resolution of a current map texture has a small impact on the current effect. -![](Images/watersystem-curent.png) +![Current map texture.](Images/watersystem-curent.png) The Red and Green channels contain the 2D direction of the current and the Blue channel contains the influence of the current map. The default direction is +X, as a result, the neutral value for a current map is (1, 0.5, 1). When importing a current map in the editor, make sure to that the sRGB checkbox is disabled in the texture importer. The following images display each channel of the current map included in the River sample scene. -* The red channel of a current map: ![](Images/watersystem-curent-r.png) -* The green channel of a current map: ![](Images/watersystem-curent-g.png) -* The blue channel of a current map: ![](Images/watersystem-curent-b.png) +* The red channel of a current map: ![The red channel of a current map.](Images/watersystem-curent-r.png) +* The green channel of a current map: ![The green channel of a current map.](Images/watersystem-curent-g.png) +* The blue channel of a current map: ![The blue channel of a current map.](Images/watersystem-curent-b.png) ## Create a current map texture in Krita @@ -77,7 +77,7 @@ Current maps behave in a different way depending on the type of water surface: ## Make an object follow a current map -When using [Script Interactions](water-scripting-in-the-water-system.md) to make an object float on the surface, you can get the current at the resulting location to make the object move with the flow of the water. +If you use a script to [float an object on the water surface](float-objects-on-a-water-surface.md), you can get the current at the resulting location to make the object move with the flow of the water. The [River sample scene](#river-sample-scene) includes a script that extends the Float script to make objects float along the current map. @@ -89,4 +89,4 @@ To visualize the effect of a current map on a water surface: - Open the **Miscellaneous** section. - Locate **Debug Mode** and select **Current.** -![](Images/watersystem-current-debug.png) +![You can visualize the effect of a current map on a water surface.](Images/watersystem-current-debug.png) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-debug-mode.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-debug-mode.md index 3ec9bfecdfb..85d03b2edcf 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-debug-mode.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-debug-mode.md @@ -3,14 +3,13 @@ For authoring purposes, the water surface component has debug view modes. Those views are available in Miscellaneous section in the water surface component. They are especially useful for placing the different areas (Mask, Deformation, Foam) precisely. -## Water Mask -The Water Mask mode displays the reduction of each simulation band. White means no reduction. Black means 100% reduction. -You can select which channel of the water mask to debug by using the **Water Mask Mode** dropdown. +## Simulation Mask +The Simulation Mask mode displays the reduction of each simulation band. White means no reduction. Black means 100% reduction. +You can select which channel of the water mask to debug by using the **Simulation Mask Mode** dropdown. Note that, for saving texture space, the red channel always attenuate the first band (First swell band for oceans, Agitation for rivers, Ripples for pools), green channel, the second band (Second swell band for oceans, ripples for rivers)... etc ![An island scene, with a gradient texture that represents the simulation band changing as the water approaches the island.](Images/water-debug-watermask.png) - ## Simulation Foam Mask The Simulation Foam Mask mode shows where the simulation foam is rendered on your water surface. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-and-masking-in-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-and-masking-in-the-water-system.md index 043e63400b2..1c36e7e03f0 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-and-masking-in-the-water-system.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-and-masking-in-the-water-system.md @@ -1,25 +1,15 @@ # Decals and masking in the water system ## Masks -You can use a **Water Mask** to affect the influence the simulation has on specific areas of the water surface. +You can use a simulation mask to affect the influence the simulation has on specific areas of the water surface. -Masks take into account the **Wrap Mode** of the texture on the importer. For **Ocean, Sea, or Lake** water surface types, choose **Clamp** rather the default, **Repeat**. +Masks take into account the **Wrap Mode** of the texture on the importer. For **Ocean, Sea, or Lake** water surface types, choose **Clamp** rather than the default, **Repeat**. - - - - - - - - -
- - - -
-In this example, the Red channel attenuates the First and Second bands with a gradient. The noise on the Green channel attenuates ripples. See the Water Mask property description for more information. -
+![A square texture with a diffuse cloudy pattern of magenta, pink, light blue, and blue.](Images/WaterMask_Example-22.2.png) + +![A mostly flat ocean with a gentle pattern of waves and ripples.](Images/WaterMask_ExempleRender.PNG) + +In this example, the Red channel attenuates the First and Second bands with a gradient. The noise on the Green channel attenuates ripples. See the Simulation Mask property description for more information. ## Decals You can use a [decal](decals.md) with a water surface in the form of a **Decal Layer Mask**. You might use this to imitate debris floating on the water, for example. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-masking-landing.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-masking-landing.md index 5a1f6dda3f8..a77db2bc129 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-masking-landing.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-decals-masking-landing.md @@ -1,14 +1,18 @@ # Water surface fluctuations -You can apply effects like swell, agitation, deformation, and foam across the water surface. +You can apply effects like swell, agitation, and deformation across the water surface. -You can add fluctuations such as swell, agitation, or ripples to the whole of a water surface based on texture channels with a Water Mask. +You can add fluctuations such as swell, agitation, or ripples to the whole of a water surface based on texture channels with a simulation mask. You can also add detailed visual effects to localized water areas with water decals, a type of shader graph nodes. -| **Page** | **Description** | -|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------------| -| **[Enable mask and water decals](enable-mask-and-water-decals.md)** | Mask and current water decals are disabled by default. | -| **[Configure swell, agitation, or ripples with a water mask](add-swell-agitation-or-ripples.md)** | Configure swell, agitation, or ripples across the water surface. | -| **[Simulate currents with a water decal](simulating-currents-with-water-decals.md)** | Simulate water currents by projecting textures. | -| **[Simulate foam or ripples with masks](simulating-foam-or-ripples-with-masks.md)** | Create effects like foam or ripples. | +| **Page** | **Description** | +|-----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------| +| [Introduction to water decals](introduction-to-water-decals.md) | Use mask and current water decals to apply water effects. | +| [Enable mask and current water decals](enable-mask-and-current-water-decals.md) | Create water effects with mask and current water decals in your project. | +| [Configure swell, agitation, or ripples with a water mask](add-swell-agitation-or-ripples.md) | Configure swell, agitation, or ripples across the water surface. | +| [Simulate currents with a water decal](simulating-currents-with-water-decals.md) | Simulate water currents by projecting textures. | +| [Simulate ripples with masks](simulating-foam-or-ripples-with-masks.md) | Create effects like ripples. | +| [Check waves and ripples](add-caustics-and-foam-and-check-waves-and-ripples.md) | Check or retrieve information about the displacement of the water surface. | +| [Float objects on a water surface](float-objects-on-a-water-surface.md) | Add buoyancy to the water simulation. | +| [Align objects to the water surface using normals](align-objects-to-water-surface-using-normals.md) | Make objects follow the curvature of the water in real time. | 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 2d61ea158c5..e66d614fee3 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 @@ -1,63 +1,71 @@ # Deform a water surface -You can use a deformer to control the shape of a water surface. A Deformer is a GameObject that changes the shape of the water surface. You can create a deformer based on one of the predefined [shapes](#deformer-type), or use a shadergraph to make a completely custom Deformer. +You can use water decals to achieve deformation effects on the water surface. Water decals use textures and Shader Graph materials to modify the water's appearance dynamically. -Water deformers can affect each other additively if they are placed at the same location. For example, if you put two 1 meter box deformers on top of each other, it is the same as creating a single box deformer two meters in height. +![A swimming pool with a deformed water surface.](Images/watersystem-deformer.png) -HDRP limits the maximum number of deformers active at the same time in a scene. You can control the maximum amount in the [HDRP Asset](HDRP-Asset.md) in **Rendering** > **Water** > **Deformation** > **Maximum Deformer Count**. +## Deform a water surface vertically -The region of a water surface that can receive deformation is limited. You can select the size and offset of the rectangular region that supports deformation in the **Deformation** section of the water surface Inspector window. To highlight this region for debug purposes, go to **Miscellaneous** > **Debug Mode** and select **Deformation**. +To deform a water surface vertically: -Also, there is a maximum number of deformer you can have in a scene. This limit can be set directly in the HDRP Asset under **Water** > **Deformation** > **Maximum Deformer Count**. +1. Create a [water surface](water-use-the-water-system-in-your-project.md). -![](Images/watersystem-deformer.png) +1. In the **Inspector** window of the water surface, go to **Water Surface (Script)** > **Water decals**, and enable **Deformation**. -## Create a Water Deformer + To add a deformation only, disable **Foam**. -To create a Deformer: +1. In the main menu, go to **GameObject** > **Water** > **Water Decal**. -1. Go to **GameObject** > **Water** > **Deformer.** -2. Select the type of deformer you want to use. + Unity adds a **Water Decal** GameObject to your hierarchy and the water deformation appears in the **Scene** view. -**Note**: You can also change the Deformer type in the Water Deformer inspector window. +1. In the **Inspector** window of the **Water Decal**, expand the **Water Decal (Script)** section. -To make a water deformer affect a water surface: +1. To create a new **Water Decal** material, do one of the following: -1. Select the Water Surface to open it in the Inspector. -2. Select the Deformation drop-down. -3. Select the **Enable** toggle. + - To start from the template shader graph, select **New** > **Deformer and Foam Water Decal**. -You must also make sure it is enabled in your Project’s HDRP Asset and in the Frame Settings: + - To create a new material from scratch, select **New** > **Empty Water Decal**. -1. Select the HDRP Asset in the Project window and, in the Inspector, go to **Rendering** > **Water** and enable the **Deformation** checkbox. -2. To enable Deformation for all Cameras, Go to **Edit** > **Project Settings** > **Graphics** > **Pipeline Specific Settings** > **HDRP** > **Frame Settings (Default Values)** > **Camera** > **Rendering** > , then enable the **Water Deformation** checkbox. + A new material using the [water decal master stack](understand-decals.md) is created in your assets subfolder. -Lastly, make sure that your deformer is inside the deformation area. To see the area, you can select deformation in the debug dropdown in the Miscellaneous foldout at the bottom of the water surface inspector. +1. In the **Inspector** window of the **Water Decal**, select **Edit** next to the water decal shader graph, then edit the shader graph as needed. - +For example, connect the following gradient texture with your deformation pattern with the Deformation fragment. -## Configure a Deformer type +![Water decal shader graph: Vertical deformation.](Images/new-empty-water-decal.png) + +This results in the following deformation along the Y-axis: -The properties in the Water Deformer inspector window change based on the type you select. +![Water surface deformed vertically](Images/water-deform-a-water-surface-y-axis.jpg) -**Note**: The **Move** tool only moves a water deformer along the X and Z axes. To make a deformer move above or below the water surface, change the **Amplitude** value. +## Deform a water surface horizontally -### Common properties +Enabling horizontal deformation has the following effects: -The following properties exist in all Deformer types. +- HDRP creates a new buffer, which increases the amount of memory HDRP uses. +- The results of water scripts, [underwater effects](water-underwater-view.md), and [script interactions](float-objects-on-a-water-surface.md) might be less accurate. -| **Property** | | **Description** | -| --------------- | -------------- | ------------------------------------------------------------ | -| **Scale Mode** | | The scaling mode to apply to the deformer. The options are:• **Scale Invariant**: Ignores the scale set in the Transform component and uses the region size directly.• **Inherit from Hierarchy**: Multiplies the Deformer’s region size by the [lossy scale](https://docs.unity3d.com/ScriptReference/Transform-lossyScale.html) of the Transform. Note that since the Deformer uses a top down projection, if the transformation hierarchy is [skewed](https://docs.unity3d.com/Manual/class-Transform.html), the deformer does not scale correctly. | -| **Region Size** | | Control the size of the deformer in meters. | -| **Type** | | | -| | **Sphere** | Create a deformer in the shape of a sphere. | -| | **Box** | Create a deformer in the shape of a cube. For information about the properties specific to this type, see [Box](#deformer-type-box). | -| | **Bow Wave** | Create a deformer in the shape of the front of a boat. For information about the properties specific to this type, see [Bow Wave](#deformer-type-bowwave). | -| | **Shore Wave** | Create a deformer in the shape of waves that move in a specific direction. For information about the properties specific to this type, see [Shore Wave](#deformer-type-shorewave). | -| | **Texture** | Customize the shape of a deformer with a texture. For information about the properties specific to this type, see [Texture](#deformer-type-texture). | -| | **Material** | Customize the shape of a deformer with a ShaderGraph. For information about the properties specific to this type, see [Texture](#deformer-type-material). | -| **Amplitude** | | Control the height of the water surface. | +Follow these steps: + +1. In the main menu, go to **Edit** > **Project Settings**. +1. In the **Project Settings** window, go to **Quality** > **HDRP** > **Rendering** > **Water**, then enable **Horizontal Deformation**. + +1. If the **Fragment** context doesn't contain a **Horizontal Deformation** block, right-click the **Fragment** context and select **Add Block Node** > **Horizontal Deformation**. +1. Connect a gradient texture to the **Horizontal Deformation** block. HDRP uses the yellow and blue channels of the texture to deform the x-axis and z-axis of the water surface. + + For example, connect the red channel of the default HDRP **Default-Particle** texture to both the x-axis and z-axis: + + ![Water decal shader graph example: A deformation along the x-axis and z-axis, built on top of existing vertical deformation.](Images/water-surface-3d-deformation.png) + + This results in deformation along the x-axis and z-axis, built on top of existing vertical deformation. + + ![Water surface deformed in 3D](Images/water-deform-a-water-surface-x-axis.jpg) + +You can also view an advanced example of how to apply a 3D deformation to a water surface in the rolling wave [water sample](HDRP-Sample-Content.md). + +## Configure the Deformer and Foam Water Decal template + +The properties used in the water decal material **Inspector** window change based on the type you select. @@ -80,7 +88,7 @@ Use the following property to control the Bow Wave deformer type. | ---------------------- | -------------------------------------------------------- | | **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 Water surface Inspector 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 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. @@ -106,19 +114,13 @@ Use the following properties to control the Shore Wave deformer type. These properties are specific to the Texture deformer type. -| **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 . | - - +| **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. | -## Material -These properties are specific to the Material deformer type. +## Additional resources -| **Property** | **Description** | -| ------------ | ------------------------------------------------------------ | -| Resolution | The material specified by this deformer will be blit into the intermediate deformer atlas to be used later by the water system. This property specifies the size that it should occupy in the atlas. | -| Update Mode | The frequency at which the material should be rendered inside the atlas. When update mode is **On Demand**, you can use the **RequestUpdate** function on the **Deformer** script to trigger an update. | -| Material | The material used by the deformer. This should be a Material with a shader created from the ShaderGraph Water Decal master node. Use the **Deformation** output with values between [0,1] that can be remapped using **Range Remap** property and multliplied by the **Amplitude**. | +- [Materials and surfaces](materials-and-surfaces.md) +- [Shader Graph](https://docs.unity3d.com/Packages/com.unity.shadergraph@17.2) diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-exclude-part-of-the-water-surface.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-exclude-part-of-the-water-surface.md index bfc9beeb0da..7546a03057e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-exclude-part-of-the-water-surface.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-exclude-part-of-the-water-surface.md @@ -1,10 +1,10 @@ # Exclude part of a water surface -Sometimes you might want to prevent water from appearing on top of other surfaces. For static environments, you can use a [water mask](water-decals-and-masking-in-the-water-system.md) to make sure the water stays under the terrain. For dynamic objects, it’s more practical to use a water excluder. A water excluder is a GameObject that marks pixels on screen that should not receive a water surface. +Sometimes you might want to prevent water from appearing on top of other surfaces. For static environments, you can use a [simulation mask](water-decals-and-masking-in-the-water-system.md) to make sure the water stays under the terrain. For dynamic objects, it’s more practical to use a water excluder. A water excluder is a GameObject that marks pixels on screen that should not receive a water surface. You can use a water excluder to remove a water surface inside a floating object. The following example shows a water excluder applied to the inside of a boat. -![](Images/watersystem-excluder.png) +![A water excluder applied to the inside of a boat.](Images/watersystem-excluder.png) This image shows the following, from left to right: @@ -52,4 +52,4 @@ You can also right-click on a GameObject in the Hierarchy and select **Water** > ## Change the shape of a Water Excluder -If you want to exclude water from the inside of a boat, you will probably need to author a custom mesh that fits the shape of your boat. To do this, create a simplified version of the inside of your boat in a 3D modelling software, then assign the mesh to a Water Excluder object. \ No newline at end of file +If you want to exclude water from the inside of a boat, you will probably need to author a custom mesh that fits the shape of your boat. To do this, create a simplified version of the inside of your boat in a 3D modelling software, then assign the mesh to a Water Excluder object. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-foam-in-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-foam-in-the-water-system.md index 66457da3e8e..7072e910c06 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-foam-in-the-water-system.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-foam-in-the-water-system.md @@ -1,105 +1,13 @@ -# Foam in the water system +# Foam -The foam properties make it possible to control how much foam appears on your water surface and to make small adjustments to the foam's appearance. -On the water system there is two different type of foam: Simulation foam and Generated foam. +Simulate and customize foam effects for water surfaces in your project. -## Simulation Foam +Foam effects enhance the realism of water by simulating phenomena like wind-driven foam or trailing foam behind objects. Learn how to create and control foam on water surfaces, including scripting options and reference settings. -The simulation foam automatically appears on local maximum on high amplitude waves crests depending on the properties set below. -It is currently best practice to only adjust two of the foam settings: **Simulation Foam Amount** and the **Wind Speed Dimmer**. - -![](Images/watersystem-simulation-foam.png) - -**Simulation Foam Amount** determines foam patch size. -### Wind Speed Dimmer -This control determines the amount of foam that **Distant Wind Speed** values produce. - -![](Images/water-foam-dimmer.png)
-* A: **Distant Wind Speeds** at the bottom of the curve do not produce any foam. -* B: **Distant Wind Speeds** in the range where the curve rises produce some foam. -* C: **Distant Wind Speeds** in the range at the top of the curve produce lots of foam. -* D: The x axis of this graph represents normalized **Distant Wind Speed**. -* E: The y axis of this graph represents the percentage of the maximum foam amount. - -## Generated Foam - -The generated foam is foam injected at specific location using a foam generator with a specific shape. -Note that the [Shore Wave Deformer](WaterSystem-waterdeformer.md#deformer-type-shorewave) has a foam generator included to generate foam behind the waves. -This foam persistence can be adjusted and can also follow the swell's current direction. - -![](Images/watersystem-generated-foam.png) - -### Create a Foam Generator - -To create a Foam Generator: - -1. Go to **GameObject** > **Water** > **Foam Generator.** - -To make a foam generator affect a water surface: - -1. Select the Water Surface to open it in the Inspector. -2. Select the Foam drop-down. -3. Select the **Enable** toggle. - -You must also make sure it is enabled in your Project’s HDRP Asset : - -1. Select the HDRP Asset in the Project window and, in the Inspector, go to **Rendering** > **Water** and enable the **Foam** checkbox. - -Lastly, make sure that your foam generator is inside the foam area. To see the area, you can select foam in the debug dropdown in the Miscellaneous foldout at the bottom of the water surface inspector. - - - -### Configure a Foam Generator - -The properties in the Water Deformer inspector window change based on the type you select. - -**Note**: The **Move** tool only moves a water deformer along the X and Z axes. To make a deformer move above or below the water surface, change the **Amplitude** value. - -### Common properties - -The following properties exist in all Deformer types. - -| **Property** | | **Description** | -| --------------- | -------------- | ------------------------------------------------------------ | -| **Scale Mode** | | The scaling mode to apply to the deformer. | -| | **Scale Invariant** | Ignores the scale set in the Transform component and uses the region size directly. -| | **Inherit from Hierarchy** | Multiplies the Deformer’s region size by the [lossy scale](https://docs.unity3d.com/ScriptReference/Transform-lossyScale.html) of the Transform. Note that since the Deformer uses a top down projection, if the transformation hierarchy is [skewed](https://docs.unity3d.com/Manual/class-Transform.html), the deformer does not scale correctly. | -| **Region Size** | | Control the size of the foam generator in meters. | -| **Type** | | | -| | **Disk** | Create a foam generator in the shape of a disk. | -| | **Rectangle** | Create a foam generator in the shape of a Rectangle. | -| | **Texture** | Customize the shape of a foam generator with a texture. For information about the properties specific to this type, see [Texture](#foam-generator-type-texture). | -| | **Material** | Customize the shape of a foam generator with a ShaderGraph. For information about the properties specific to this type, see [Material](#foam-generator-type-material). | -| **Surface Foam Dimmer** | | Control the dimmer for the surface foam. The higher the value, the more surface foam appears. | -| **Deep Foam Dimmer** | | Control the dimmer for the deep foam. The higher the value, the more deep foam appears. | - - - -### Texture - -These properties are specific to the Texture foam generator type. - -| **Property** | **Description** | -| ------------ | ------------------------------------------------------------ | -| Texture | Specifies the texture used to generate the foam. The red channel holds the surface foam and the green channel holds the deep foam.
This texture can be a regular texture or a Render Texture, which can be updated at runtime by modifying a render target with a full screen shader graph for example. For a Render Texture, use the R16_UNorm format. | - - - -### Material - -These properties are specific to the Material foam generator type. - -| **Property** | **Description** | -| ------------ | ------------------------------------------------------------ | -| Resolution | The material specified by this foam generator will be blit into the intermediate foam atlas to be used later by the water system. This property specifies the size that it should occupy in the atlas. | -| Update Mode | The frequency at which the material should be rendered inside the atlas. When update mode is **On Demand**, you can use the **RequestUpdate** function on the **Deformer** script to trigger an update. | -| Material | The material used by the foam generator. This should be a Material with a shader created from the ShaderGraph Water Decal master node. Use the **Surface foam** and **Deep foam** output to inject foam. | - - -## Limitations -This foam implementation is monochromatic. You cannot add a tint to represent algae, for example. - -The foam injected using the custom foam input in the water shader graph is not affected when disabling foam on a water surface. - -## Additional resources -* Settings and properties related to the water system \ No newline at end of file +| **Topic** | **Description** | +| :----------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- | +| **[Introduction to foam](introduction-to-foam.md)** | Overview of foam effects in the water system. | +| **[Create wind-driven foam on the entire water surface](create-wind-driven-foam-on-the-whole-water-surface.md)** | Enable simulation to display foam across the entire water surface. | +| **[Add foam with a script](add-foam-with-script.md)** | Guide to scripting foam effects programmatically. | +| **[Create local foam near a GameObject](create-local-foam-in-the-wake-of-a-gameobject.md)** | Display local foam, such as trailing foam behind a floating, moving object. | +| **[Foam reference](settings-and-properties-related-to-the-water-system.md)** | Detailed settings and properties related to foam in the water system. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-materials-in-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-materials-in-the-water-system.md index 97452202f63..aff01ecc678 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-materials-in-the-water-system.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-materials-in-the-water-system.md @@ -17,7 +17,7 @@ As you increase the values of the first three properties in this section of the **Direct Light Body Term** and **Direct Light Tip Term** (the second of these is only for **Ocean, Sea, or Lake** water surface types) increase the intensity of light visible through waves, as at the wave tips in the screenshot below. **Direct Light Tip Term** is most visible at grazing angles. -![](Images/watersystem-directlighttip.JPG) +![*Direct Light Body Term and Direct Light Tip Term (the second of these is only for Ocean, Sea, or Lake water surface types) increase the intensity of light visible through waves.](Images/watersystem-directlighttip.JPG) ## Custom Materials To create a custom water Material, copy the default water Material and adjust that copy. The [water ShaderGraph](master-stack-water.md) documentation provides more information about which properties you can adjust. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-scripting-in-the-water-system.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-scripting-in-the-water-system.md deleted file mode 100644 index c114ea4d0bf..00000000000 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-scripting-in-the-water-system.md +++ /dev/null @@ -1,12 +0,0 @@ -# Scripting in the water system - -You can make boats, floating debris, or other objects match the curvature of the water dynamically. - -To align objects correctly with the water surface you can retrieve the normal of the surface at a given point. You can thus ensure objects move or rotate appropriately relative to the surface's real-time changes. - -| **Page** | **Description** | -|----------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------| -| [Float objects on a water surface](float-objects-on-a-water-surface.md) | Add buoyancy to the water simulation. | -| [Align objects to the water surface using normals](align-objects-to-water-surface-using-normals.md) | Make objects follow the curvature of the water in real time. | -| [Add caustics or foam and check waves and ripples](add-caustics-and-foam-and-check-waves-and-ripples.md) | Incorporate caustics or foam and check or retrieve information about the displacement of the water surface. | -| [Synchronize water surfaces](synchronize-water-surfaces.md) | Synchronize water simulation across all clients in a multiplayer game. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-underwater-view.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-underwater-view.md index 15a2b1762af..a8730635e64 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-underwater-view.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-underwater-view.md @@ -26,14 +26,12 @@ To set the area of the underwater view for an ocean, follow these steps: When the camera is at the limit of the water's surface, the underwater view adds a boundary when transitioning from below to above the water's surface. -![](Images/water-waterline-raw.png) +![A view at the same level of a water surface. A clear boundary separates the fluctuating water surface above and the black below.](Images/water-waterline-raw.png) To customize the water line even more, you can sample the generated underwater buffer in a [Custom Pass](Custom-Pass.md) by using the [HD Sample Buffer](https://docs.unity3d.com/Packages/com.unity.shadergraph@latest/index.html?subfolder=/manual/HD-Sample-Buffer-Node.html) node from the Shader Graph using the **IsUnderwater** option from the Source Buffer dropdown. Refer to the Waterline scene in the [HDRP Water samples](HDRP-Sample-Content.md#water-samples) for more details. -![](Images/water-sample-buffer-underwater.png) - ## Limitations * When using a custom mesh, underwater doesn't behave as expected if the mesh's Y position isn't at 0, or if the mesh isn't flat. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-use-the-water-system-in-your-project.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-use-the-water-system-in-your-project.md index adda9ef0ccb..d3064798f95 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-use-the-water-system-in-your-project.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-use-the-water-system-in-your-project.md @@ -49,10 +49,7 @@ To simulate stormy conditions, you might: * Choose darker **Color** values for **Refraction** and **Scattering**. * You can also enable **Foam**. -
- -
-
+![Water system: Stormy sea](Images/watersystem-StormySea.png) ### Dirty river To simulate a polluted or silty river, you could: @@ -61,10 +58,7 @@ To simulate a polluted or silty river, you could: * Disable **Caustics**. * You can also add a [Decal](decals.md) that resembles fragments of debris. -
- -
-
+![Water system: Dirty river](Images/watersystem-PollutedRiver.png) ### Calm, clean swimming pool on a sunny day To simulate a clean outdoor swimming pool on a clear day with little wind: @@ -75,21 +69,14 @@ To simulate a clean outdoor swimming pool on a clear day with little wind: * Adjust the **Virtual Plane Distance** to a value appropriate to the depth of your pool. * In the **Refraction** properties, reduce **Absorption Distance**, to make the water more transparent. Increase **Maximum Distance** to extend the range of the refraction effect, especially if you have scenery in the water. -
- -
-
+![Water system: Shallow swimming pool, sunny day](Images/watersystem-shallowpoolsunny.png) ### A deep swimming pool * Somewhat darken the **Color** properties for **Scattering** and **Refraction**. * Reduce the **Absorption Distance** slightly. * Increase **Maximum Distance** if there are caustics or objects in the water that make the refraction effect visible. -
- -
-
- +![Water system: Deep swimming pool, sunny day](Images/watersystem-deeppoolsunny.png) ## Additional resources * Settings and properties related to the water system diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-vfx-interaction.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-vfx-interaction.md index 396ac631f6f..0c9c34a2146 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-vfx-interaction.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-vfx-interaction.md @@ -2,8 +2,6 @@ The water system supports being evaluated from the VFX Graph, to access data such as the water height at a given point, the surface normal, or the current value. -![](Images/SampleWaterVFX.png) - However there are several simulations that are important to be aware of. As the water surface gameobject is saved inside a scene, and the VFX graph is an asset on disk, it is not possible to directly reference the surface from within the graph. This means data of the water surface need to be set globally by the user before the VFX can sample the water. As a result, only a single surface can be sampled from any VFX Graph at any given time. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-water-system-simulation.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-water-system-simulation.md index 3c0e0428fc7..fed27795396 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-water-system-simulation.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water-water-system-simulation.md @@ -11,54 +11,17 @@ As you modify the simulation inputs the simulation displaces the water mesh. ## Wind and wave types There are two types of wind in the HDRP water implementation: distant wind and local wind. Local wind produces **Ripples**, small waves that are close together. Distant wind produces **Swells** (for **River, Sea, or Ocean** surface types) or **Agitation** (for **River** surface types), broader waves that are farther apart. +![An ocean on a clear day, with large wide waves and peaks.](Images/watersystem-OceanSwellOnly.png) +An **Ocean, Sea, or Lake** surface that only has **Swells**. These **Swells** significantly displace the water surface. - - - - - -
- - - -
+![The same ocean, with a higher number of smaller waves and peaks.](Images/watersystem-OceanRipplesOnly.png) -Here is an **Ocean, Sea, or Lake** surface that only has **Swells**. These **Swells** significantly displace the water surface. - -
- - - - - - - -
- - - -
- - -Here is an **Ocean, Sea, or Lake** surface that only has **Ripples**. These **Ripples** do not significantly displace the water surface. -
- - - - - - -
- - - -
- - -Here is an **Ocean, Sea, or Lake** surface with both Swells and Ripples. +An **Ocean, Sea, or Lake** surface that only has **Ripples**. These **Ripples** do not significantly displace the water surface. +![A sailing vessel on a dark stormy sea, with both very large wide swells, and smaller waves and peaks.](Images/watersystem-StormySea.png) +An **Ocean, Sea, or Lake** surface with both Swells and Ripples. ## Simulation bands A frequency is a measure of the number of vibrations that pass through a specific point in one second. A band is a specific range of frequencies within a broader spectrum. You may have heard of the FM radio broadcast band, for example. @@ -91,7 +54,7 @@ To break up overly regular patterns of waves, you can increase the **Chaos** val The Volume Override uses the terms Patch and Grid. The Patch is the size of the area on which Unity runs the simulation for a particular Simulation Band. The Grid is the geometry Unity uses to render the water, which is always a rectangle. ## Scripting with the water simulation -You can query a water surface for position and current direction which you can use in scripts, for example to create a customized buoyancy effect that makes it possible to float a ball on the waves (for example). See [Scripting in the water system](water-scripting-in-the-water-system.md) for more information. +You can query a water surface for position and current direction which you can use in scripts, for example to create a customized buoyancy effect that makes it possible to float a ball on the waves (for example). The [River sample scene](#river-sample-scene) includes a script that extends the Float script to make objects float along the current map. ## Additional resources diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water.md index f46fa11d839..3e09d00294e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/water.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/water.md @@ -9,13 +9,15 @@ Create water in the High Definition Render Pipeline (HDRP). | [Water system simulation](water-water-system-simulation.md) | How the water system simulation works. | | [Quality and performance decisions](water-quality-and-performance-decisions.md) | How to make quality decisions and optimize performance. | | [Water Override for Volumes](water-the-water-system-volume-override.md) | Purpose of the water Volume Override. | -| [Decals and masking in the water system](water-decals-and-masking-in-the-water-system.md) | How foam works in the water system. | +| [Water surface fluctuations](water-decals-masking-landing.md) | Resources on applying effects like swell, agitation, and deformation across the water surface. | +| [Decals and masking in the water system](water-decals-and-masking-in-the-water-system.md) | How decals and masks work in the water system. | | [Foam in the water system](water-foam-in-the-water-system.md) | Control how much foam appears on your water surface. | -| [Caustics in the water system](water-caustics-in-the-water-system.md) | What caustics are, how to adjust them, and their limitations. | +| [Customize caustics in the water system](water-caustics-in-the-water-system.md) | Customize the appearance of the bright light patterns caused by the curved water surface reflecting and refracting light. | | [Create a current in the water system](water-create-a-current-in-the-water-system.md) | Apply a current map to a water surface. | -| [Deform a water surface](water-deform-a-water-surface.md) | Use a deformer to control the shape of a water surface | +| [Deform a water surface](water-deform-a-water-surface.md) | Use a water decal to alter the shape of a water surface. | | [Exclude part of a water surface](water-exclude-part-of-the-water-surface.md) | Prevent water from appearing on top of other surfaces. | | [Underwater view](water-underwater-view.md) | Learn more about the underwater view of the water surface simulation. | | [Materials in the water system](water-materials-in-the-water-system.md) | The effects of water Material properties. | -| [Scripting in the water system](water-scripting-in-the-water-system.md) | How to write scripts that interact with the water system. | +| [Synchronize water surfaces](synchronize-water-surfaces.md) | Synchronize water simulation across all clients in a multiplayer game. | +| [Debug modes in the water system](water-debug-mode.md) | To place masks, deformation, and foam correctly, use the debug modes in the water system. | | [VFX Graph in the water system](water-vfx-interaction.md) | How to make VFX Graph interact with the water system. | diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-10.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-10.md index 1e58f783baa..a1065308817 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-10.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-10.md @@ -14,7 +14,7 @@ This version of HDRP includes support for the Game Core Xbox Series platform as ### IES Profiles and light cookies -![](Images/HDRPFeatures-IESProfiles.png) +![IES Profiles sample.](Images/HDRPFeatures-IESProfiles.png) HDRP now supports the Illuminating Engineering Society's (IES) file format for describing the distribution of light from a light source. HDRP supports the IES profile for Point, Spot (Cone, Pyramid, and Box), and rectangular Area [Lights](Light-Component.md). You can also mix the IES profile with [cookies](https://docs.unity3d.com/Manual/Cookies.html) and even use the profile and cookie mix for [light map baking](https://docs.unity3d.com/Manual/LightMode-Baked.html). @@ -45,7 +45,7 @@ This version of HDRP includes scalability settings for fog and subsurface scatte ### Screen-space global illumination -![](Images/HDRPFeatures-SSGI.png) +![Screen-space global illumination sample.](Images/HDRPFeatures-SSGI.png) This version of HDRP introduces screen-space global illumination (SSGI). It is an algorithm that accesses indirect diffuse lighting the environment generates. It works in the same way as the [Screen Space Reflection](Override-Screen-Space-Reflection.md) in that it uses ray marching to calculate the result. @@ -53,14 +53,14 @@ For more information, see [Screen Space Global Illumination](Override-Screen-Spa ### Custom Pass AOV Export -![img](Images/aov_example.png) +![Custom Pass AOV Export example.](Images/aov_example.png) This feature allows you to export arbitrary data from custom pass injection points using an extension of the Arbitrary Output Variables (AOV) API in HDRP. An example use-case is for exporting “Object IDs†that are rendered with a custom pass. For information about the feature and example scripts, see the [AOV documentation](AOVs.md). ### Debug modes #### Light debug view -![](Images/LightDebugView.png) +![Light debug view example.](Images/LightDebugView.png) To help you to debug lighting in your Scene, HDRP now includes various lighting debug view modes that allow you to separate the various components of the light into multiple parts. These debug modes are also available in the [AOV](AOVs.md) API to allow recorders to export them. The new lighting debug modes are: @@ -79,13 +79,13 @@ HDRP now includes a new [light layer](Rendering-Layers.md) debug mode which can For more information, see the Lighting panel section in the [Rendering Debugger](rendering-debugger-window-reference.md). #### Volume debug mode -![](Images/VolumeDebugMode.png) +![Volume debug mode example.](Images/VolumeDebugMode.png) The Rendering Debugger window now has a new Volume panel which you can use to visualize the Volume components that affect a specific Camera. For each Volume that contributes to the final interpolated value, this panel shows the value of each property and whether or not it is overridden. It also calculates the Volume's influence percentage using the Volume's weight and blend distance. For more information, see the Volume panel section in the [Rendering Debugger](rendering-debugger-window-reference.md#VolumePanel). #### Quad Overdraw and Vertex Density -![quad_density](Images/quad_density_example.png) +![Quad Overdraw and Vertex Density example.](Images/quad_density_example.png) To help you finding GameObjects in you scene that need LODs, HDRP includes two new full screen rendering debug modes to spot Meshes far away or with too many details. - Quad Overdraw: highlights GPU quads running multiple fragment shaders, which is mainly caused by small or thin triangles. (Not supported on Metal and PS4) @@ -131,7 +131,7 @@ For more information, see the [Create an HDRI sky](create-an-hdri-sky.md). ### Graphics Compositor -![](Images/Compositor-HDRPTemplateWithLogo_Feature.png) +![Example: Compositor template with logo feature.](Images/Compositor-HDRPTemplateWithLogo_Feature.png) The Graphics Compositor allows real-time compositing operations between layers of 3D content, static images, and videos. The tool support three types of compositing techniques: @@ -148,7 +148,7 @@ For information about the feature, see the [HDRP Compositor documentation](graph #### Path-traced depth of field -![](Images/Path-traced-DOF-Feature.png) +![Path-traced depth of field example.](Images/Path-traced-DOF-Feature.png) This version of HDRP includes a new depth of field mode for producing path-traced images with high-quality defocus blur. Compared to post-processed depth of field, this mode works correctly with multiple layers of transparency and does not produce any artifacts, apart from noise typical in path traced images (which you can mitigate by increasing the sample count and/or using an external denoising tool). @@ -156,21 +156,21 @@ For more information about this feature, see [Depth-of-field](Post-Processing-De #### Accumulation motion blur and path tracer convergence APIs -![](Images/Path_tracing_recording-Feature.png) +![Accumulation motion blur and path tracer convergence APIs example.](Images/Path_tracing_recording-Feature.png) HDRP now includes a recording API which you can use to render effects such as high-quality accumulation motion blur and converged path-traced images. These techniques create the final "converged" frame by combining information from multiple intermediate sub-frames. The new API allows your scripts to extract the properly converged final frames and do further processing or save them to disk. For information about this feature and for some example scripts, see [Multiframe rendering and accumulation documentation](Accumulation.md). #### Path-traced sub-surface scattering -![](Images/Path-traced-SSS-Feature.png) +![Path-traced sub-surface scattering example.](Images/Path-traced-SSS-Feature.png) Path tracing now supports subsurface scattering (SSS), using a random walk approach. To use it, enable path tracing and set up SSS in the same way as you would for HDRP materials. For information on SSS in HDRP, see [subsurface scattering](subsurface-scattering.md). #### Path-traced fog -![](Images/Path-traced-fog-Feature.png) +![Path-traced fog example.](Images/Path-traced-fog-Feature.png) Path tracing now supports fog absorption. Like SSS, to use this feature, enable path tracing and set up fog in the same way as you would for standard fog in HDRP. @@ -268,19 +268,19 @@ HDRP, being a high-end modern renderer, contains a lot of compute shader passes. ### Screen Space Reflection -![](Images/HDRP-SSRImprovement.png) +![Split-screen 3D render of a flooded Venetian street during high tide, with buildings reflected in the water. The left side shows four orange vertical beams reflected on the water surface. On the right side are two slanted color calibration patterns reflected on the water surface.](Images/HDRP-SSRImprovement.png) HDRP improves the Screen Space Reflection by providing a new implementation 'PBR Accumulation' ### Planar reflection probe filtering -![](Images/PlanarReflectionFiltering-Feature.png) +![Planar reflection probe filtering example.](Images/PlanarReflectionFiltering-Feature.png) Planar reflection probe filtering is a process that combines the result of planar reflection and surfaces smoothness. Up until this version, the implementation for planar reflection probe filtering did not always produce results of fantastic quality. This version of HDRP includes a new implementation that is closer to being physically-based and improves on the image quality significantly. ### Fake distance based roughness for reflection probe -![](Images/DistanceBaseRoughness-Feature.png) +![Fake distance based roughness for reflection probe example.](Images/DistanceBaseRoughness-Feature.png) Reflection Probe can now fake the increasing preceive bluriness of a surface reflection with distance from the object. This option is disabled by default and need to be enabled on the Reflection Probe. @@ -324,7 +324,7 @@ More options are now available for [contact shadows](Override-Contact-Shadows.md ### Light component user experience -![](Images/NewLightUX.png) +![Light component visualization example.](Images/NewLightUX.png) The [Light component](Light-Component.md) now includes a visualization to help you set the intensity of your lights using [physical light units](Physical-Light-Units.md). @@ -340,7 +340,7 @@ Auto-exposure systems calculate the average scene luminance and try to map this ### Custom Pass API -![](Images/CustomPass_API.png) +![Custom Pass API example.](Images/CustomPass_API.png) From this version, within the rendering of your main Camera, you can now render GameObjects from another point of view (a disabled camera for example). The new API also comes with built-in support for rendering Depth, Normal and Tangent into an RTHandle. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-11.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-11.md index bd2b3417abc..86323b707ab 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-11.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-11.md @@ -36,15 +36,15 @@ From HDRP 11.0, [Planar Reflection Probes](Planar-Reflection-Probe.md) now consi From HDRP 11.0, the AxF Material supports ray tracing. It also supports rasterized area light shadows. -![](Images/AxFRaytracing.png) +![AxF raytracing sample.](Images/AxFRaytracing.png) ### Decal widget From HDRP 11.0, the decal widget includes more functionality to help you create decals in a Scene. It now includes pivot point manipulation (both in the Inspector and Scene view), UV manipulation (in the Scene view only), and color and intensity customization. -![](Images/DecalWidget-1.gif) +![Decal widget sample.](Images/DecalWidget-1.gif) -![](Images/DecalWidget-2.gif) +![Decal widget sample.](Images/DecalWidget-2.gif) ### Cubemap fields in Volume components diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-13.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-13.md index 5c530728ff5..ab9f99ca182 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-13.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-13.md @@ -20,8 +20,6 @@ See all the available properties in the [scripting reference](xref:UnityEngine.R #### Lights -![](Images/HDRPFeatures-IESProfile.png) - From 13.x, you can access a light IES profile in the editor in the following ways: * Use [HDLightUtils](xref:UnityEditor.Rendering.HighDefinition.HDLightUtils) @@ -29,8 +27,6 @@ From 13.x, you can access a light IES profile in the editor in the following way ### Material Variants -![](Images/material-variants.png) - HDRP 13.x supports Material Variants for all Shaders and Shader Graphs. You can use Material Variants to create a set of predefined variations of a Material, in which you can override specific properties. You can also put a lock on a Material property to prevent child GameObjects from being able to modify the value. To do this: @@ -75,7 +71,7 @@ The full ACES tonemapper is more resource intensive than the approximation but i ### Depth Of Field -![](Images/depth-of-field.png) +![A courtyard with the camera close-up on a golden orb with the Unity logo. The orb is sharp but the background is blurry.](Images/depth-of-field.png) HDRP 13.x includes optimizations for the physically based depth of field effect that significantly speed up render GPU time, without visibly reducing the image quality. For example, HDRP computes image regions that are out-of-focus at a lower resolution, while in-focus regions keep the full resolution. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-14.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-14.md index 187673617f2..faf698a61d8 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-14.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-14.md @@ -12,7 +12,7 @@ In HDRP 14, the [Ray Tracing Settings](Ray-Tracing-Settings.md) volume includes ### Fullscreen Shader Graph -![](Images/HDRP-Fullscreen-Frost-Effect.png) +![Example: Fullscreen Shader Graph.](Images/HDRP-Fullscreen-Frost-Effect.png) HDRP 14 introduces a new **Fullscreen** Material type in ShaderGraph. You can use Fullscreen shaders in fullscreen custom passes, custom post processes and C# scripting. @@ -32,8 +32,8 @@ Each shader is associated with a prefab that demonstrates how to implement it in ### Transparency Material Sample Scene -![](Images/HDRP-MaterialSample-ShadowsTransparency.png) -![](Images/HDRP-MaterialSample-StackingTransparency.png) +![Material sample: Shadows transparency.](Images/HDRP-MaterialSample-ShadowsTransparency.png) +![Material sample: Stacking transparency.](Images/HDRP-MaterialSample-StackingTransparency.png) HDRP 14 includes new sample scenes that demonstrates transparent Materials using different rendering methods: - Rasterization. @@ -55,15 +55,15 @@ HDRP 14 includes a set of industry-standard color monitors that you can use to c You can find these monitors in the Rendering Debugger window (menu: **Windows > Analysis > Rendering Debugger**) in the **Rendering** tab. - **Waveform**: Displays the full range of luma information in the render -![](Images/new_waveform.png) +![Example: Waveform.](Images/new_waveform.png) - **Parade**: Splits the image into red, green and blue separately -![](Images/new_waveform_parade.png) +![Example: Waveform parade.](Images/new_waveform_parade.png) - **Vectorscope**: Measures the overall range of hue and saturation within the image -![](Images/new_vectorscope.png) +![Example: Vectorscope.](Images/new_vectorscope.png) ### Denoising in Path Tracing -![](Images/Path-Tracing-Denoise-banner.png) +![Example: Denoising in Path Tracing.](Images/Path-Tracing-Denoise-banner.png) HDRP 14 adds denoising for frames that use path tracing. You can choose from the following denoising methods: - Optix Denoiser. @@ -74,7 +74,7 @@ HDRP 14 adds denoising for frames that use path tracing. You can choose from the in HDRP 14, Local Volumetric Fog volume supports Materials you create in ShaderGraph. You can use this to create dynamic fog effects. For more information, see [Volumetric Material](create-a-fog-volume-shader.md) -![](Images/Aurora_Fog.png) +![Example: Aurora fog.](Images/Aurora_Fog.png) ### Local Volumetric Fog blending @@ -86,7 +86,7 @@ This version also adds a **Priority** property that you can use to control the o ### Screen Space Reflection -![](Images/ScreenSpaceReflection_SpeedRejection_Debug_whatsnew.png) +![Example: World Space Speed Rejection.](Images/ScreenSpaceReflection_SpeedRejection_Debug_whatsnew.png) HDRP 14 adds new properties to the Screen Space Reflection component that you can use to control how the PBR Accumulation SSR algorithm behaves. For example, enable **World Space Speed Rejection** to reject samples based on speed in world space. @@ -169,7 +169,7 @@ HDRP 14 makes the following improvements to the [Cloud Layer](create-simple-clou - Changes the **Distortion** property name to **Wind**. - Changes the raymarching algorithm to improve scattering, and to give more consistent results when you change the number of steps. Depending on your lighting conditions, you might have to tweak the **Density** and **Exposure** sliders to get the same result as earlier HDRP versions. -![](Images/cl-whats-new.png) +![Cloud layer sample.](Images/cl-whats-new.png) ### Renderer bounds access in ShaderGraph @@ -183,7 +183,7 @@ HDRP 14 adds the **Occlusion remap Curve** property to the Lens Flare component. ### New Eye Shader Subtype -![](Images/EyeCaustic.gif) +![Eye caustic sample.](Images/EyeCaustic.gif) HDRP 14.0 includes a new Eye Shader type called **Eye Cinematic with Caustic**. This Eye Shader uses caustics to give a more realistic effect. This makes it more resource-intensive than other HDRP Eye Shaders. @@ -223,7 +223,7 @@ HDRP 14 improves the precision of the Decal Projector's **Angle Fade** property. ### Improve area light soft shadows -![](Images/SoftAreaShadowImrpovements.png) +![Soft area shadow improvements sample.](Images/SoftAreaShadowImrpovements.png) In HDRP 14, soft area shadows are more accurate to the raytraced reference. This version also makes the following changes: - **Shadow Filtering Quality** only affects the quality of regular lights. @@ -231,7 +231,7 @@ In HDRP 14, soft area shadows are more accurate to the raytraced reference. This ### Ray-Tracing and Terrain -![](Images/DXRTerrain.png) +![Ray-Tracing and Terrain sample.](Images/DXRTerrain.png) From HDRP 14, all raytracing effects support Terrain. @@ -243,14 +243,14 @@ HDRP 14 adds the **Time slicing** property to the [Reflection Probe](Reflection- #### Reflection probe atlas -![](Images/HDRPAtlasCubemap.png) +![Atlas Cubemap sample.](Images/HDRPAtlasCubemap.png) HDRP 14 replaces the cube reflection probe cache array with a 2D texture atlas cache in octahedral projection. Planar reflection probes now use the same 2D texture cache. This means you can control the cube probe resolution for each reflection probe to save memory. ### Water system -![](Images/WaterSystem2022-2.png) +![Water system sample.](Images/WaterSystem2022-2.png) HDRP 14 introduces the water system. This feature allows you to render highly realistic water surfaces and interact with them. Among the various features that this version includes: diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-15.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-15.md index 5f317fcd1a3..c3e706c506e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-15.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-15.md @@ -5,7 +5,7 @@ This page contains an overview of new features, improvements, and issues resolve ## Added ### Temporal Anti-Aliasing Sharpening Mode -![](Images/TAA-Sharpening-header.png) +![A vintage railway carriage in sharp detail on a railway track.](Images/TAA-Sharpening-header.png) HDRP 15 adds the following Temporal Anti-Aliasing (TAA) properties: @@ -19,7 +19,7 @@ HDRP 15 adds the High Quality Line Rendering override that you can use to improv For more information, refer to [High Quality Line Rendering](Override-High-Quality-Lines.md). -![](Images/WhatsNew15_HQLines.png) +![A: The head of a lion, where the mane looks rougher. B: The same lion, where the main looks softer and smoother.](Images/WhatsNew15_HQLines.png) An example of High Quality Line Rendering's effect on animal fur. @@ -30,7 +30,7 @@ B: Fur that uses the High Quality Line Renderer. From HDRP 15, you can enable the **Specular Fade** property to reduce the effect of specular light on Lit and StackLit shaders that receive specular light. -![](Images/Whatsnew15_Specular.png) +![A: A white sphere with specular light at its top-left and bottom-left edges. B: The same sphere, with no specular light.](Images/Whatsnew15_Specular.png) An example of the effect of the **Specular Fade** property on a sphere. @@ -40,14 +40,12 @@ B: **Specular Fade** reduces the effect of specular light on the sphere. To enable this property, open the Project Settings window, select **HDRP Global Settings** and go to **Miscellaneous** > **Specular Fade**. ### Screen Space Lens Flare -![](Images/ScreenSpaceLensFlare-header.png) +![A car on a forest road, viewed from the front looking over the hood. Bright spots and rings are visible on the car and on the camera lens.](Images/ScreenSpaceLensFlare-header.png) HDRP 15 includes a new [Screen Space Lens Flare](shared/lens-flare/Override-Screen-Space-Lens-Flare.md) post-processing override, in addition to the existing [Lens Flare (SRP)](shared/lens-flare/lens-flare-component.md) component. The override uses what's on the screen to create multiple types of lens flare, based on the texture from the [Bloom](Post-Processing-Bloom.md) override. Screen space lens flares are useful for bright spots in your scene that appear depending on the camera view, for example a bright specular reflection on a shiny metal object, or a bright outside area viewed from a dark indoor area. ### Compute Thickness -![](Images/WhatsNew15_ComputeThickness.png) - HDRP 15 adds a full-screen pass called Compute Thickness. You can use this to calculate the density of solid or flat GameObjects. This effect improves the appearance of materials that use subsurface scattering or refraction. For more information, refer to [Compute Thickness](Compute-Thickness.md) @@ -64,23 +62,11 @@ HDRP 15 adds the following properties to diffusion profiles for Subsurface Scatt The mixture of two specular lobes replicates the thin, oily layer that covers the skin. -![](Images/profile_dual_lobe_labelled.png) - -The effect of two specular lobes on a subsurface scattering material. - -**A**: **Dual Lobe Multiplier** first lobe set to 0.8. - -**B**: **Dual Lobe Multiplier** second lobe set to 1.2. - -**C**: **Lobe Mix** set to 0.5. - -**D**: Final result. - For more information, refer to [Diffusion Profile](diffusion-profile-reference.md). ### Adaptive Probe Volumes (APV) -![](Images/APVSamplingDebug.png) +![A small 3D grid of spheres in a scene, representing the probes in an Adaptive Probe Volume. Each Probe has a red or green debug value above it.](Images/APVSamplingDebug.png) HDRP 15 makes the following changes to APV properties: @@ -92,7 +78,7 @@ HDRP 15 makes the following changes to APV properties: ### Water system -![](Images/Water2023-1.png) +![An ocean view at sunset.](Images/Water2023-1.png) HDRP 15 makes the following improvements and additions to the water system: @@ -109,7 +95,7 @@ HDRP 15 makes the following improvements and additions to the water system: ### Volumetric Clouds -![](Images/Volumetric-Clouds-2023-1.png) +![Realistic white and grey clouds on a mostly clear day.](Images/Volumetric-Clouds-2023-1.png) HDRP 15 makes the following improvements to [volumetric clouds](create-realistic-clouds-volumetric-clouds.md): - Adds a third level of noise to achieve even more convincing results. diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-16.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-16.md index 9195529711d..3fa443ce665 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-16.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/whats-new-16.md @@ -16,7 +16,7 @@ HDRP 16 adds a [Dynamic Resolution](https://docs.unity3d.com/Packages/com.unity. ### Colored translucent material Type -![](Images/colored_translucency.png) +![Colored translucent material Type sample.](Images/colored_translucency.png) HDRP 16 adds the Colored Translucent material type in Shader Graph. Use this material for thin, double-sided geometry. This material supports a colored transmission mask and doesn't require a diffusion profile. @@ -25,7 +25,7 @@ This material supports a colored transmission mask and doesn't require a diffusi HDRP 16 adds a cinematic mode for the physically-based hair shader. Enable this mode to trade performance for high-quality environment and area lighting with multiple scattering that closely matches a path-traced reference. -![](Images/CinematicHairShadingComparison.png) +![Cinematic Hair Shading comparison sample.](Images/CinematicHairShadingComparison.png) This image shows hair with a single environment light without cinematic shading (left) and with cinematic shading (right). @@ -36,7 +36,7 @@ This feature requires the [Unity hair system](https://github.com/Unity-Technolog HDRP 16 adds the [Canvas Master Node](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/master-stack-canvas.md) to Shader Graph that you can use to create UI shaders for a Canvas. -![](Images/shader-graph-canvas.png) +![ShaderGraph Canvas Master Node sample.](Images/shader-graph-canvas.png) ### Path tracer @@ -49,17 +49,17 @@ To support the decals with path tracing, HDRP regards all decals as clustered de The HDRP Path Tracer does not support emissive decals. -![](Images/WhatsNew16_pathtraceddecals.PNG) +![Decals in HDRP Path Tracer sample.](Images/WhatsNew16_pathtraceddecals.PNG) This image displays a puddle and checkerboard decal in a path-traced scene. #### Henyey-Greenstein Anisotropic Fog HDRP 16 supports path-traced anisotropic fog. The path tracer uses the Henyey-Greenstein phase function evaluation and sampling. This phase function has an anisotropy parameter that controls the behaviour of the scattering. You can set this parameter between -1 and 1. A negative value corresponds to backward scattering and a positive value corresponds to forward scattering. A value of 0 corresponds to the regular isotropic behavior. Isotropic scattering (anisotropy=0) -![](Images/HDRP_PathtracingAnisotropicFogBefore.png) +![Henyey-Greenstein Anisotropic Fog: Isotropic scattering (anisotropy=0).](Images/HDRP_PathtracingAnisotropicFogBefore.png) Anisotropic forward scattering (anisotropy=0.75) -![](Images/HDRP_PathtracingAnisotropicFogAfter.png) +![Henyey-Greenstein Anisotropic Fog: Anisotropic forward scattering (anisotropy=0.75).](Images/HDRP_PathtracingAnisotropicFogAfter.png) ### Volumetric fog output @@ -67,13 +67,13 @@ In version 16, the [Volumetric fog shader graph](https://docs.unity3d.com/Packag ### Color Checker Tool -![](Images/colorchecker.png) +![Color Checker Tool.](Images/colorchecker.png) Use the Color Checker tool to check the calibration of lighting and post processing. To open the color checker tool, go to **GameObject** > **Rendering** > **Color Checker Tool**. HDRP doesn't save any changes you make in the color checker. ### Light Placement Tool -![](Images/LightPlacementTool.png) +![Light Placement Tool.](Images/LightPlacementTool.png) Use the Light Placement Tool to look through a light and use the camera movement controls to move the light around the scene. To enter this mode select a light GameObject and select the Light Placement Tool button in the Tools Panel. For more information, refer to [Light placement tool](lights-placement-tool.md). @@ -90,23 +90,23 @@ HDRP 16 updates the Physically Based Sky in the following ways to make it easier - Added the PBRSky material type in Shader Graph to allow effects like procedural stars. - Added an option to mark celestial bodies as moons which makes them receive lighting from the main directional light. -![](Images/night-sky.png) +![Night Sky sample.](Images/night-sky.png) ### SpeedTrees HDRP 16 adds motion vector support for SpeedTrees. To do this, SpeedTree shader graphs use the Transmission Mask input of the Lit master node. This means that speedtrees with a single draw can also recieve vector transmission in the bark and branches. -![](Images/SpeedTreeMotionVector-1.png) -![](Images/SpeedTreeMotionVector-2.png) +![SpeedTree motion vector sample.](Images/SpeedTreeMotionVector-1.png) +![SpeedTree motion vector sample.](Images/SpeedTreeMotionVector-2.png) ### Shadows #### Percentage-Closer Soft Shadow (PCSS) HDRP 16 improves Percentage-Closer Soft Shadow (PCSS) quality for directional. To do this, the shadow samples along a cone instead of a disk. This makes PCSS shadows appear softer. -![](Images/directional_pcss_before.png) +![PCSS shadows that sample a disc.](Images/directional_pcss_before.png) PCSS shadows that sample a disc. -![](Images/directional_pcss_after.png) +![PCSS shadows that sample a cone.](Images/directional_pcss_after.png) PCSS shadows that sample a cone. #### Shadow quality @@ -120,11 +120,11 @@ Version 16 also splits the **Shadow Filtering Quality** property in the [HDRP As HDRP 16 updates the algorithm that it uses to render the volumetric clouds shadows. This fixes an issue where clouds cast shadows on objects above the clouds, and softens the shadows that clouds cast. -![](Images/beer-shadow-maps.png) +![Volumetric Clouds Shadows sample.](Images/beer-shadow-maps.png) ### Ray-Traced reflections ReBLUR denoiser -![](Images/WhatsNew16_ReBLUR_Denoiser.png) +![Ray-Traced reflections ReBLUR denoiser sample.](Images/WhatsNew16_ReBLUR_Denoiser.png) HDRP 16 replaces the Ray-Traced Reflections denoiser with the ReBLUR algorithm. This algorithm includes an anti-flickering setting that improves temporal stability and gives a more even result on rough and smooth objects. Ray-Traced Reflections uses this denoiser in **Raytracing** mode and **Mixed** mode. @@ -140,7 +140,7 @@ From version 16ayou can stream probe volume data directly from a disk. To use di For more information, refer to [Probe volume streaming](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/probevolumes-streaming.html). ### Water system -![](Images/WaterSamples.png) +![Water system samples.](Images/WaterSamples.png) HDRP 16.0 makes the following improvements to the water system: * Improves performance for rendering surfaces with Instanced Quads. @@ -152,7 +152,7 @@ HDRP 16.0 makes the following improvements to the water system: ### Data Driven Lens Flare XR support -![](Images/WhatsNew16_LensFlareDataDriven_XR.png) +![Data Driven Lens Flare XR support sample.](Images/WhatsNew16_LensFlareDataDriven_XR.png) HDRP 16 adds [XR](https://docs.unity3d.com/Manual/xr-graphics.html) support to the data-driven Lens Flare component. This includes single pass instancing and multipass support. @@ -160,7 +160,7 @@ HDRP 16 adds [XR](https://docs.unity3d.com/Manual/xr-graphics.html) support to t HDRP 16 adds a Volumetric Fog fullscreen debug mode to the [rendering debugger](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@16.0/manual/Render-Pipeline-Debug-Window.html). This mode displays the fog that affects the opaque geometry. You can control how the fog appears in the debug mode's **Exposure** property. t. -![](Images/WhatsNew16_VolumetricFogDebug.png) +![Volumetric fog fullscreen debug mode example.](Images/WhatsNew16_VolumetricFogDebug.png) ### Render Graph Viewer diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/PropertyDrawers/HDRPDefaultVolumeProfileSettingsPropertyDrawer.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/PropertyDrawers/HDRPDefaultVolumeProfileSettingsPropertyDrawer.cs index b9106bdb0f1..f5695a30189 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/PropertyDrawers/HDRPDefaultVolumeProfileSettingsPropertyDrawer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/PropertyDrawers/HDRPDefaultVolumeProfileSettingsPropertyDrawer.cs @@ -92,7 +92,7 @@ protected override VisualElement CreateAssetFieldUI() return profileLine; } - public class HDRPDefaultVolumeProfileSettingsContextMenu : DefaultVolumeProfileSettingsContextMenu + public class HDRPDefaultVolumeProfileSettingsContextMenu : DefaultVolumeProfileSettingsContextMenu2 { protected override string defaultVolumeProfilePath { diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/PropertyDrawers/LookDevVolumeProfileSettingsPropertyDrawer.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/PropertyDrawers/LookDevVolumeProfileSettingsPropertyDrawer.cs index cd0e7f96e4b..99cc74a5039 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/PropertyDrawers/LookDevVolumeProfileSettingsPropertyDrawer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/PropertyDrawers/LookDevVolumeProfileSettingsPropertyDrawer.cs @@ -111,7 +111,7 @@ VisualElement CreateAssetFieldUI() if (lookDevVolumeProfileSettings.volumeProfile == null) { lookDevVolumeProfileSettings.volumeProfile = VolumeUtils.CopyVolumeProfileFromResourcesToAssets( - GraphicsSettings.GetRenderPipelineSettings().defaultVolumeProfile); + GraphicsSettings.GetRenderPipelineSettings().lookDevVolumeProfile); } m_VolumeProfileSerializedProperty.objectReferenceValue = lookDevVolumeProfileSettings.volumeProfile; diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Core/Debugging/.buginfo b/Packages/com.unity.render-pipelines.high-definition/Runtime/Core/Debugging/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Core/Debugging/.buginfo +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Core/Debugging/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIllumination.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIllumination.cs index 85d2e17afbd..9b1e44932e1 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIllumination.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/GlobalIllumination.cs @@ -8,7 +8,7 @@ namespace UnityEngine.Rendering.HighDefinition ///

[Serializable, VolumeComponentMenu("Lighting/Screen Space Global Illumination")] [SupportedOnRenderPipeline(typeof(HDRenderPipelineAsset))] - [HDRPHelpURL("Ray-Traced-Global-Illumination")] + [HDRPHelpURL("Override-Screen-Space-GI")] public sealed class GlobalIllumination : VolumeComponentWithQuality { bool UsesQualityMode() diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/HDShadow.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/HDShadow.hlsl index 6a91a495279..0e74aa8ebdd 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/HDShadow.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/HDShadow.hlsl @@ -49,10 +49,11 @@ float GetPunctualShadowAttenuation(HDShadowContext shadowContext, float2 positio if (pointLight) { - sd.rot0 = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].rot0; - sd.rot1 = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].rot1; - sd.rot2 = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].rot2; - sd.atlasOffset = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].atlasOffset; + const int cubeFaceOffset = CubeMapFaceID(-L); + sd.rot0 = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].rot0; + sd.rot1 = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].rot1; + sd.rot2 = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].rot2; + sd.atlasOffset = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].atlasOffset; } if (sd.isInCachedAtlas > 0) // This is a scalar branch. @@ -77,11 +78,12 @@ float GetPunctualShadowClosestDistance(HDShadowContext shadowContext, SamplerSta if (pointLight) { - sd.shadowToWorld = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].shadowToWorld; - sd.atlasOffset = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].atlasOffset; - sd.rot0 = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].rot0; - sd.rot1 = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].rot1; - sd.rot2 = shadowContext.shadowDatas[shadowDataIndex + CubeMapFaceID(-L)].rot2; + const int cubeFaceOffset = CubeMapFaceID(-L); + sd.shadowToWorld = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].shadowToWorld; + sd.atlasOffset = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].atlasOffset; + sd.rot0 = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].rot0; + sd.rot1 = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].rot1; + sd.rot2 = shadowContext.shadowDatas[shadowDataIndex + cubeFaceOffset].rot2; } if (sd.isInCachedAtlas > 0) // This is a scalar branch. diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/ReflectionProbeTextureCache.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/ReflectionProbeTextureCache.cs index 970e72a836d..615bc768738 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/ReflectionProbeTextureCache.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Reflection/ReflectionProbeTextureCache.cs @@ -641,8 +641,8 @@ public Vector4 FetchPlanarReflectionProbe(CommandBuffer cmd, HDProbe probe, ref public void ReserveReflectionProbeSlot(HDProbe probe) { Texture texture = probe.texture; - Assert.IsTrue(texture.width == texture.height); - Assert.IsTrue(texture.dimension == TextureDimension.Tex2D || texture.dimension == TextureDimension.Cube); + Assert.IsTrue(texture.width == texture.height, "Reflection probe should be a square texture. Check the import settings of the texture, or your Texture Importer presets"); + Assert.IsTrue(texture.dimension == TextureDimension.Tex2D || texture.dimension == TextureDimension.Cube, "Reflection probe should be a 2D or Cube texture. Check the import settings of the texture, or your Texture Importer presets"); int textureId = GetTextureIDAndSize(probe, out int textureSize); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAlgorithms.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAlgorithms.hlsl index 61556bdfd96..c5882372e0e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAlgorithms.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Lighting/Shadow/HDShadowAlgorithms.hlsl @@ -7,9 +7,15 @@ // For backward compatibility #ifdef SHADOW_LOW +#ifndef PUNCTUAL_SHADOW_LOW #define PUNCTUAL_SHADOW_LOW +#endif +#ifndef DIRECTIONAL_SHADOW_LOW #define DIRECTIONAL_SHADOW_LOW #endif +#endif + + // For non-fragment shaders we might skip the variant with the quality as shadows might not be used, if that's the case define something just to make the compiler happy in case the quality is not defined. #ifndef SHADER_STAGE_FRAGMENT diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalData.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalData.hlsl index d4fa1b483a7..438f4fe932e 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalData.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalData.hlsl @@ -135,7 +135,7 @@ void GetSurfaceData(FragInputs input, float3 V, PositionInputs posInput, float a #else // DECAL_SURFACE_GRADIENT #ifdef _NORMALMAP - float3 normalTS = UnpackNormalmapRGorAG(SAMPLE_TEXTURE2D(_NormalMap, sampler_NormalMap, texCoords)); + float3 normalTS = UnpackNormalMapRGorAG(SAMPLE_TEXTURE2D(_NormalMap, sampler_NormalMap, texCoords)); #else float3 normalTS = float3(0.0, 0.0, 1.0); #endif diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl index 13abc7d4883..6e0892a17d4 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Decal/DecalUtilities.hlsl @@ -181,7 +181,7 @@ void EvalDecalMask( PositionInputs posInput, float3 vtxNormal, float3 positionRW float2 deriv = UnpackDerivativeNormalRGorAG(atlasData); src.xyz = SurfaceGradientFromTBN(deriv, tangentToWorld[0], tangentToWorld[1]); #else - normalTS = UnpackNormalmapRGorAG(atlasData); + normalTS = UnpackNormalMapRGorAG(atlasData); #endif } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.shader b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.shader index 6ac3791950b..23099cf5ef5 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.shader +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.shader @@ -1045,8 +1045,10 @@ Shader "HDRP/Lit" #ifndef SHADER_STAGE_FRAGMENT #define SHADOW_LOW + #ifndef USE_FPTL_LIGHTLIST #define USE_FPTL_LIGHTLIST #endif + #endif #define SHADERPASS SHADERPASS_FORWARD // In case of opaque we don't want to perform the alpha test, it is done in depth prepass and we use depth equal for ztest (setup from UI) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataIndividualLayer.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataIndividualLayer.hlsl index 8fda2e5454f..b5525553365 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataIndividualLayer.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/LitDataIndividualLayer.hlsl @@ -312,7 +312,7 @@ float ADD_IDX(GetSurfaceData)(FragInputs input, LayerTexCoord layerTexCoord, out #ifdef _TANGENTMAP #ifdef _NORMALMAP_TANGENT_SPACE_IDX // Normal and tangent use same space // Tangent space vectors always use only 2 channels. - float3 tangentTS = UnpackNormalmapRGorAG(SAMPLE_UVMAPPING_TEXTURE2D(_TangentMap, sampler_TangentMap, layerTexCoord.base), 1.0); + float3 tangentTS = UnpackNormalMapRGorAG(SAMPLE_UVMAPPING_TEXTURE2D(_TangentMap, sampler_TangentMap, layerTexCoord.base), 1.0); surfaceData.tangentWS = TransformTangentToWorld(tangentTS, input.tangentToWorld); #else // Object space // Note: There is no such a thing like triplanar with object space normal, so we call directly 2D function diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Splatmap.hlsl b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Splatmap.hlsl index 16c16de5694..1ce8500babe 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Splatmap.hlsl +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Material/TerrainLit/TerrainLit_Splatmap.hlsl @@ -55,7 +55,7 @@ float3 SampleNormalGrad(TEXTURE2D_PARAM(textureName, samplerName), float2 uv, fl #ifdef UNITY_NO_DXT5nm return UnpackNormalRGB(nrm, scale); #else - return UnpackNormalmapRGorAG(nrm, scale); + return UnpackNormalMapRGorAG(nrm, scale); #endif #endif } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/.buginfo b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/.buginfo index 5e8e3c368ad..ffb9da4973f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/.buginfo +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/.buginfo @@ -2,4 +2,4 @@ Workflow: when: path: - ^.*GlobalSettings?.*$ - area: SRP Workflow \ No newline at end of file + area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs index 00ee3473b0c..149f974ab35 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.PostProcess.cs @@ -914,13 +914,18 @@ TextureHandle DoDLSSPass( passData.parameters.drsSettings = currentAsset.currentPlatformRenderPipelineSettings.dynamicResolutionSettings; // Must check this with nvidia. After trying many things this gives the least amount of ghosting. // For now we clamp the exposure to a reasonable value. - passData.parameters.preExposure = Mathf.Clamp(hdCamera.GpuExposureValue(), 0.35f, 2.0f); + passData.parameters.preExposure = Mathf.Clamp(hdCamera.GpuExposureValue(), 0.20f, 2.0f); var viewHandles = new UpscalerResources.ViewResourceHandles(); viewHandles.source = builder.ReadTexture(source); viewHandles.output = builder.WriteTexture(GetPostprocessUpsampledOutputHandle(hdCamera, renderGraph, "DLSS destination")); viewHandles.depth = builder.ReadTexture(depthBuffer); viewHandles.motionVectors = builder.ReadTexture(motionVectors); + // Note: exposure texture input + // We skip providing exposureTexture since HDRP pre-applies exposure in GBuffer pass / light accumulation buffer, + // and doesn't use it later on in tonemapping. DLSS docs mention this texture is needed if used in tonemapping later on. + // Given we also provide an option to inject DLSS post-tonemapping, we can safely skip providing this input as + // it usually exacerbates ghosting within the HDRP use context. if (biasColorMask.IsValid()) viewHandles.biasColorMask = builder.ReadTexture(biasColorMask); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs index 616c14e106a..0807c02165b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.RenderGraph.cs @@ -434,7 +434,8 @@ void RecordRenderGraph(RenderRequest renderRequest, // Stop XR single pass before rendering screenspace UI StopXRSinglePass(m_RenderGraph, hdCamera); - RenderScreenSpaceOverlayUI(m_RenderGraph, hdCamera, backBuffer); + if (renderRequest.isLast) + RenderScreenSpaceOverlayUI(m_RenderGraph, hdCamera, backBuffer); } } @@ -1570,7 +1571,8 @@ TransparentPrepassOutput RenderTransparentPrepass(RenderGraph renderGraph, Culli if (!output.enablePerPixelSorting) return output; - output.depthBufferPreRefraction = CreateDepthBuffer(renderGraph, false, hdCamera.msaaSamples, "CameraDepthStencil PreRefraction", false); + output.depthBufferPreRefraction = CreateDepthBuffer(renderGraph, m_HasResolutionChanged, hdCamera.msaaSamples, "CameraDepthStencil PreRefraction", false); + m_HasResolutionChanged = false; output.beforeRefraction = renderGraph.CreateTexture(new TextureDesc(Vector2.one, true, true) { format = GraphicsFormat.B10G11R11_UFloatPack32, msaaSamples = hdCamera.msaaSamples, clearBuffer = true, name = "Before Refraction" }); diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs index 50ae35a200d..c8950b8f67f 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/HDRenderPipeline.cs @@ -211,6 +211,9 @@ internal static HDRenderPipeline currentPipeline // User render requests can use different ones to avoid mixing history information HDCamera.HistoryChannel m_CurrentCameraHistoryChannel = HDCamera.HistoryChannel.RenderLoopHistory; + bool m_HasResolutionChanged = false; + Action m_OnResolutionChanged; + internal GraphicsFormat GetColorBufferFormat() { if (CoreUtils.IsSceneFilteringEnabled()) @@ -723,6 +726,11 @@ public HDRenderPipeline(HDRenderPipelineAsset asset) #if UNITY_EDITOR GPUInlineDebugDrawer.Initialize(); #endif + + m_OnResolutionChanged = () => + { + m_HasResolutionChanged = true; + }; } private void SetLodQualitySettings() @@ -1066,6 +1074,7 @@ protected override void Dispose(bool disposing) #if UNITY_EDITOR GPUInlineDebugDrawer.Dispose(); #endif + m_OnResolutionChanged = null; } void Resize(HDCamera hdCamera) @@ -1430,6 +1439,7 @@ public struct Target public List<(HDProbe.RenderData, HDProbe)> viewDependentProbesData; public bool cullingResultIsShared; public XRPass xrPass; + public bool isLast; } private void VisitRenderRequestRecursive(List requests, List visitStatus, int requestIndex, List renderIndices) @@ -2279,7 +2289,7 @@ protected override void Render(ScriptableRenderContext renderContext, List + struct ResetImplementation : IRenderPipelineGraphicsSettingsContextMenu2 { - public void PopulateContextMenu(HDRPDefaultVolumeProfileSettings setting, PropertyDrawer drawer, ref GenericMenu menu) + public void PopulateContextMenu(HDRPDefaultVolumeProfileSettings setting, SerializedProperty _, ref GenericMenu menu) { void Reset() { diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Settings/LookDevVolumeProfileSettings.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Settings/LookDevVolumeProfileSettings.cs index cd3226f8cfe..99691e07873 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Settings/LookDevVolumeProfileSettings.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Settings/LookDevVolumeProfileSettings.cs @@ -69,7 +69,13 @@ void IRenderPipelineGraphicsSettings.Reset() #if UNITY_EDITOR if (UnityEditor.Rendering.EditorGraphicsSettings.TryGetRenderPipelineSettingsForPipeline(out var rpgs)) { - volumeProfile = VolumeUtils.CopyVolumeProfileFromResourcesToAssets(rpgs.lookDevVolumeProfile); + //UUM-100350 + //When opening the new HDRP project from the template the first time, the global settings is created and the population of IRenderPipelineGraphicsSettings + //will call this Reset() method. At this time, the copied item will appear ok but will be seen as null soon after. This lead to errors when opening the + //inspector of the LookDev's VolumeProfile (at the creation of Editors for VolumeComponent). Closing and opening the project would make this issue disappear. + //This asset data base manipulation issue disappear if we delay it. + UnityEditor.EditorApplication.delayCall += () => + volumeProfile = VolumeUtils.CopyVolumeProfileFromResourcesToAssets(rpgs.lookDevVolumeProfile); } #endif } diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSkyRenderer.cs b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSkyRenderer.cs index 619efe2f353..7bd3fae1bc9 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSkyRenderer.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Sky/PhysicallyBasedSky/PhysicallyBasedSkyRenderer.cs @@ -68,6 +68,9 @@ class PrecomputationData RTHandle m_AtmosphericScatteringLut; + // BUG: https://jira.unity3d.com/browse/UUM-86915 RwTex3D outputs red. Disable on some devices as a workaround. + bool m_EnableAtmosphericScatteringBlur; + bool IsWorldSpace() => m_InScatteredRadianceTables != null; RTHandle AllocateGroundIrradianceTable() @@ -150,6 +153,13 @@ public void Allocate(BuiltinSkyParameters builtinParams) colorFormat: s_ColorFormat, enableRandomWrite: true, name: "AtmosphericScatteringLUT"); + + // BUG: https://jira.unity3d.com/browse/UUM-86915 + m_EnableAtmosphericScatteringBlur = !(s_ColorFormat == GraphicsFormat.B10G11R11_UFloatPack32 && + SystemInfo.graphicsDeviceName.Contains("Graphics") && + (SystemInfo.graphicsDeviceName.Contains("HD") || // and UHD + SystemInfo.graphicsDeviceName.Contains("Iris") || + SystemInfo.graphicsDeviceName.Contains("Xe"))); } } @@ -269,10 +279,14 @@ internal void RenderAtmosphericScatteringLut(BuiltinSkyParameters builtinParams) // Perform a blur pass on the buffer to reduce resolution artefacts cmd.SetComputeTextureParam(s_SkyLUTGenerator, s_AtmosphericScatteringBlurKernel, HDShaderIDs._AtmosphericScatteringLUT_RW, m_AtmosphericScatteringLut); - cmd.DispatchCompute(s_SkyLUTGenerator, s_AtmosphericScatteringBlurKernel, - 1, - 1, - (int)PbrSkyConfig.AtmosphericScatteringLutDepth); + if(m_EnableAtmosphericScatteringBlur) + { + cmd.DispatchCompute(s_SkyLUTGenerator, s_AtmosphericScatteringBlurKernel, + 1, + 1, + (int)PbrSkyConfig.AtmosphericScatteringLutDepth); + } + } public void BindGlobalBuffers(CommandBuffer cmd) diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/.buginfo b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/.buginfo index a09f37773d8..9f56afd6d2b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/.buginfo +++ b/Packages/com.unity.render-pipelines.high-definition/Runtime/Utilities/.buginfo @@ -2,4 +2,4 @@ Workflow: when: path: - ^.*Volume?.*$ - area: SRP Workflow \ No newline at end of file + area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Environment.unity b/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Environment.unity index 17389c1f286..d2b4338bb8d 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Environment.unity +++ b/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Environment.unity @@ -42,7 +42,8 @@ RenderSettings: --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -92,10 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 112000000, guid: 6005c3d0cb630ac479b03290cefa43ce, - type: 2} - m_LightingSettings: {fileID: 4890085278179872738, guid: 8c826231a086e5a4081d69acdf85086c, - type: 2} + m_LightingDataAsset: {fileID: 112000000, guid: 6005c3d0cb630ac479b03290cefa43ce, type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 8c826231a086e5a4081d69acdf85086c, type: 2} --- !u!196 &4 NavMeshSettings: serializedVersion: 2 @@ -120,21 +119,6 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} ---- !u!115 &56900744 -MonoScript: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - serializedVersion: 7 - m_DefaultReferences: {} - m_Icon: {fileID: 0} - m_Type: 2 - m_ExecutionOrder: 0 - m_ClassName: SceneObjectIDMapSceneAsset - m_Namespace: UnityEngine.Experimental.Rendering.HDPipeline - m_AssemblyName: --- !u!1 &87711811 GameObject: m_ObjectHideFlags: 0 @@ -257,6 +241,11 @@ MonoBehaviour: m_LightUnit: 0 m_LuxAtDistance: 1 m_Intensity: 0 + m_Version: 13 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 m_InnerSpotPercent: 0 m_SpotIESCutoffPercent: 100 m_LightDimmer: 1 @@ -375,11 +364,6 @@ MonoBehaviour: m_AreaLightEmissiveMeshShadowCastingMode: 0 m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 m_AreaLightEmissiveMeshLayer: -1 - m_Version: 13 - m_ObsoleteShadowResolutionTier: 1 - m_ObsoleteUseShadowQualitySettings: 0 - m_ObsoleteCustomShadowResolution: 512 - m_ObsoleteContactShadows: 0 --- !u!108 &87711814 Light: m_ObjectHideFlags: 0 @@ -475,7 +459,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_LensFlareData: {fileID: 11400000, guid: 72012a4fc3d5256459a391564bfec40e, type: 2} version: 0 - intensity: 1 + intensity: 0 maxAttenuationDistance: 100 maxAttenuationScale: 100 distanceAttenuationCurve: @@ -636,7 +620,7 @@ GameObject: - component: {fileID: 140650421} - component: {fileID: 140650420} m_Layer: 0 - m_Name: Environement Sample Showcase + m_Name: Environment Sample Showcase m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -663,8 +647,7 @@ MonoBehaviour: highlightDarkColor: {r: 1, g: 0.89, b: 0.45, a: 1} codeLightColor: {r: 0.76, g: 0.41, b: 0, a: 1} codeDarkColor: {r: 0.91, g: 0.57, b: 0.17, a: 1} - SamplesDescriptionsJson: {fileID: 4900000, guid: a3edb1dce6b83f24e99a418dd97ac23b, - type: 3} + SamplesDescriptionsJson: {fileID: 4900000, guid: a3edb1dce6b83f24e99a418dd97ac23b, type: 3} samplesPrefabs: - {fileID: 6220992063172374777, guid: b3679846edcc58c4b88f2e33a3456c79, type: 3} - {fileID: 4615487114326440942, guid: cda8d3042e9e583449bd044a1adaa286, type: 3} @@ -735,6 +718,11 @@ MonoBehaviour: m_LightUnit: 0 m_LuxAtDistance: 1 m_Intensity: 0 + m_Version: 13 + m_ObsoleteShadowResolutionTier: 1 + m_ObsoleteUseShadowQualitySettings: 0 + m_ObsoleteCustomShadowResolution: 512 + m_ObsoleteContactShadows: 0 m_InnerSpotPercent: 0 m_SpotIESCutoffPercent: 100 m_LightDimmer: 0 @@ -853,11 +841,6 @@ MonoBehaviour: m_AreaLightEmissiveMeshShadowCastingMode: 0 m_AreaLightEmissiveMeshMotionVectorGenerationMode: 0 m_AreaLightEmissiveMeshLayer: -1 - m_Version: 13 - m_ObsoleteShadowResolutionTier: 1 - m_ObsoleteUseShadowQualitySettings: 0 - m_ObsoleteCustomShadowResolution: 512 - m_ObsoleteContactShadows: 0 --- !u!108 &233041084 Light: m_ObjectHideFlags: 0 @@ -1094,83 +1077,67 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1413190315} m_Modifications: - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalScale.x value: 1.245375 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalScale.y value: 2.05 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalScale.z value: 2.10125 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalPosition.x value: 2324 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalPosition.y value: -149 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalPosition.z value: -574 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalRotation.w value: 0.6452224 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalRotation.x value: -0.6452229 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalRotation.y value: -0.28928852 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalRotation.z value: -0.2892882 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: -90 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: -768.299 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_ConstrainProportionsScale value: 1 objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -7511558181221131132, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: 39f549d48bf0a804ca76258c1abf1cdf, type: 2} - - target: {fileID: 919132149155446097, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: 919132149155446097, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_Name value: Island objectReference: {fileID: 0} @@ -1181,25 +1148,9 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} --- !u!4 &325810463 stripped Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} m_PrefabInstance: {fileID: 325810462} m_PrefabAsset: {fileID: 0} ---- !u!115 &394898109 -MonoScript: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - serializedVersion: 7 - m_DefaultReferences: {} - m_Icon: {fileID: 0} - m_Type: 2 - m_ExecutionOrder: 0 - m_ClassName: SceneObjectIDMapSceneAsset - m_Namespace: UnityEngine.Rendering.HighDefinition - m_AssemblyName: --- !u!1 &491924231 GameObject: m_ObjectHideFlags: 0 @@ -1249,94 +1200,6 @@ Transform: m_Children: [] m_Father: {fileID: 140650421} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &728537253 -GameObject: - m_ObjectHideFlags: 19 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 728537255} - - component: {fileID: 728537254} - m_Layer: 0 - m_Name: SceneIDMap - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &728537254 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 728537253} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 56900744} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &728537255 -Transform: - m_ObjectHideFlags: 19 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 728537253} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, 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 &835913245 -GameObject: - m_ObjectHideFlags: 19 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 835913247} - - component: {fileID: 835913246} - m_Layer: 0 - m_Name: SceneIDMap - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &835913246 -MonoBehaviour: - m_ObjectHideFlags: 19 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 835913245} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 394898109} - m_Name: - m_EditorClassIdentifier: ---- !u!4 &835913247 -Transform: - m_ObjectHideFlags: 19 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 835913245} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, 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 &1039289122 GameObject: m_ObjectHideFlags: 0 @@ -1504,61 +1367,15 @@ MonoBehaviour: largeBand0FadeToggle: 1 largeBand1FadeToggle: 1 ripplesFadeToggle: 1 - surfaceType: 0 - geometryType: 3 - meshRenderers: [] - timeMultiplier: 1 - scriptInteractions: 0 - cpuEvaluateRipples: 0 - customMaterial: {fileID: 0} - startSmoothness: 0.95 - endSmoothness: 0.85 - smoothnessFadeStart: 100 - smoothnessFadeDistance: 500 - tessellation: 0 - maxTessellationFactor: 3 - tessellationFactorFadeStart: 150 - tessellationFactorFadeRange: 1850 - refractionColor: {r: 0.010022826, g: 0.21404114, b: 0.21404114, a: 1} - maxRefractionDistance: 0.5 - absorptionDistance: 100 - scatteringColor: {r: 0, g: 0.13286833, b: 0.13286833, a: 1} - ambientScattering: 0.2 - heightScattering: 0.2 - displacementScattering: 0.1 - directLightTipScattering: 0.6 - directLightBodyScattering: 0.5 - maximumHeightOverride: 0 - caustics: 0 - causticsIntensity: 0.5 - causticsPlaneBlendDistance: 1 - causticsResolution: 256 - causticsBand: 2 - virtualPlaneDistance: 4 - causticsTilingFactor: 1 - causticsDirectionalShadow: 0 - causticsDirectionalShadowDimmer: 0.25 - renderingLayerMask: 1 - debugMode: 0 - waterMaskDebugMode: 0 - waterCurrentDebugMode: 0 - currentDebugMultiplier: 1 - waterFoamDebugMode: 0 - underWater: 0 - volumeBounds: {fileID: 0} - volumeDepth: 50 - volumeHeight: 0 - volumePrority: 0 - absorptionDistanceMultiplier: 1 - underWaterAmbientProbeContribution: 1 - underWaterScatteringColorMode: 0 - underWaterScatteringColor: {r: 0, g: 0.27, b: 0.23, a: 1} - underWaterRefraction: 0 + supportLargeCurrent: 0 + largeCurrentRes: 512 largeCurrentSpeedValue: 0 largeCurrentMap: {fileID: 0} largeCurrentRegionExtent: {x: 100, y: 100} largeCurrentRegionOffset: {x: 0, y: 0} largeCurrentMapInfluence: 1 + supportRipplesCurrent: 0 + ripplesCurrentRes: 512 ripplesCurrentSpeedValue: 0 ripplesCurrentMap: {fileID: 0} ripplesCurrentRegionExtent: {x: 100, y: 100} @@ -1566,19 +1383,15 @@ MonoBehaviour: ripplesCurrentMapInfluence: 1 deformation: 0 deformationRes: 512 - deformationAreaSize: {x: 200, y: 200} - deformationAreaOffset: {x: 0, y: 0} foam: 0 foamResolution: 512 - foamAreaSize: {x: 200, y: 200} - foamAreaOffset: {x: 0, y: 0} foamPersistenceMultiplier: 0.5 foamCurrentInfluence: 0.6 foamColor: {r: 1, g: 1, b: 1, a: 1} foamTextureTiling: 0.15 foamSmoothness: 1 - simulationFoam: 1 simulationFoamAmount: 0.2 + supportSimulationFoamMask: 0 simulationFoamMask: {fileID: 0} simulationFoamMaskExtent: {x: 100, y: 100} simulationFoamMaskOffset: {x: 0, y: 0} @@ -1644,10 +1457,64 @@ MonoBehaviour: ripplesFadeMode: 1 ripplesFadeStart: 50 ripplesFadeDistance: 200 + simulationMask: 0 + maskRes: 512 waterMask: {fileID: 0} waterMaskRemap: {x: 0, y: 1} waterMaskExtent: {x: 100, y: 100} waterMaskOffset: {x: 0, y: 0} + surfaceType: 0 + geometryType: 3 + meshRenderers: [] + timeMultiplier: 1 + scriptInteractions: 0 + cpuEvaluateRipples: 0 + customMaterial: {fileID: 0} + startSmoothness: 0.95 + endSmoothness: 0.85 + smoothnessFadeStart: 100 + smoothnessFadeDistance: 500 + tessellation: 0 + maxTessellationFactor: 3 + tessellationFactorFadeStart: 150 + tessellationFactorFadeRange: 1850 + refractionColor: {r: 0.010022826, g: 0.21404114, b: 0.21404114, a: 1} + maxRefractionDistance: 0.5 + absorptionDistance: 100 + scatteringColor: {r: 0, g: 0.13286833, b: 0.13286833, a: 1} + ambientScattering: 0.2 + heightScattering: 0.2 + displacementScattering: 0.1 + directLightTipScattering: 0.6 + directLightBodyScattering: 0.5 + maximumHeightOverride: 0 + caustics: 0 + causticsIntensity: 0.5 + causticsPlaneBlendDistance: 1 + causticsResolution: 256 + causticsBand: 2 + virtualPlaneDistance: 4 + causticsTilingFactor: 1 + causticsDirectionalShadow: 0 + causticsDirectionalShadowDimmer: 0.25 + renderingLayerMask: 1 + debugMode: 0 + waterMaskDebugMode: 0 + waterCurrentDebugMode: 0 + currentDebugMultiplier: 1 + waterFoamDebugMode: 0 + underWater: 0 + volumeBounds: {fileID: 0} + volumeDepth: 50 + volumeHeight: 0 + volumePrority: 0 + absorptionDistanceMultiplier: 1 + underWaterAmbientProbeContribution: 1 + underWaterScatteringColorMode: 0 + underWaterScatteringColor: {r: 0, g: 0.27, b: 0.23, a: 1} + underWaterRefraction: 0 + decalRegionSize: {x: 200, y: 200} + decalRegionAnchor: {fileID: 0} --- !u!4 &1618829025 Transform: m_ObjectHideFlags: 0 @@ -1695,6 +1562,53 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} m_Name: m_EditorClassIdentifier: + m_Version: 9 + m_ObsoleteRenderingPath: 0 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 clearColorMode: 0 backgroundColorHDR: {r: 0.025, g: 0.07, b: 0.19, a: 0} clearDepth: 1 @@ -1775,53 +1689,6 @@ MonoBehaviour: data1: 0 data2: 17179901952 defaultFrameSettings: 0 - m_Version: 9 - m_ObsoleteRenderingPath: 0 - m_ObsoleteFrameSettings: - overrides: 0 - enableShadow: 0 - enableContactShadows: 0 - enableShadowMask: 0 - enableSSR: 0 - enableSSAO: 0 - enableSubsurfaceScattering: 0 - enableTransmission: 0 - enableAtmosphericScattering: 0 - enableVolumetrics: 0 - enableReprojectionForVolumetrics: 0 - enableLightLayers: 0 - enableExposureControl: 1 - diffuseGlobalDimmer: 0 - specularGlobalDimmer: 0 - shaderLitMode: 0 - enableDepthPrepassWithDeferredRendering: 0 - enableTransparentPrepass: 0 - enableMotionVectors: 0 - enableObjectMotionVectors: 0 - enableDecals: 0 - enableRoughRefraction: 0 - enableTransparentPostpass: 0 - enableDistortion: 0 - enablePostprocess: 0 - enableOpaqueObjects: 0 - enableTransparentObjects: 0 - enableRealtimePlanarReflection: 0 - enableMSAA: 0 - enableAsyncCompute: 0 - runLightListAsync: 0 - runSSRAsync: 0 - runSSAOAsync: 0 - runContactShadowsAsync: 0 - runVolumeVoxelizationAsync: 0 - lightLoopSettings: - overrides: 0 - enableDeferredTileAndCluster: 0 - enableComputeLightEvaluation: 0 - enableComputeLightVariants: 0 - enableComputeMaterialVariants: 0 - enableFptlForForwardOpaque: 0 - enableBigTilePrepass: 0 - isFptlEnabled: 0 --- !u!81 &1894943370 AudioListener: m_ObjectHideFlags: 0 @@ -1916,83 +1783,67 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1413190315} m_Modifications: - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalScale.x value: 1.215 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalScale.y value: 2 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalScale.z value: 2.05 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalPosition.x value: 3845.45 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalPosition.y value: -231 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalPosition.z value: 13393 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalRotation.w value: -0.69766325 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalRotation.x value: 0.69766325 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalRotation.y value: 0.11517803 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalRotation.z value: 0.11517803 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: -90 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: -277.5 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: -821.249 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_ConstrainProportionsScale value: 1 objectReference: {fileID: 0} - - target: {fileID: -7511558181221131132, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: -7511558181221131132, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2100000, guid: 39f549d48bf0a804ca76258c1abf1cdf, type: 2} - - target: {fileID: 919132149155446097, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + - target: {fileID: 919132149155446097, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} propertyPath: m_Name value: Far Island objectReference: {fileID: 0} @@ -2003,8 +1854,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} --- !u!4 &2072971992 stripped Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, - type: 3} + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: ed3cbb58bf190444981f2540feb4056d, type: 3} m_PrefabInstance: {fileID: 2072971991} m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 @@ -2015,7 +1865,5 @@ SceneRoots: - {fileID: 1039289124} - {fileID: 1894943372} - {fileID: 87711815} - - {fileID: 728537255} - - {fileID: 835913247} - {fileID: 1600578303} - {fileID: 1413190315} diff --git a/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Resources/Environment Required Settings.asset b/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Resources/Environment Required Settings.asset index e244f11a9f9..d1f70607a2c 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Resources/Environment Required Settings.asset +++ b/Packages/com.unity.render-pipelines.high-definition/Samples~/Environment Samples/Resources/Environment Required Settings.asset @@ -16,6 +16,7 @@ MonoBehaviour: - m_name: Water m_description: Enable Water rendering. propertyPath: m_RenderPipelineSettings.supportWater + globalSettingsType: valueType: 0 targetValue: 1 validationType: 0 @@ -24,6 +25,7 @@ MonoBehaviour: - m_name: Volumetric Clouds m_description: Enable Volumetric Clouds. propertyPath: m_RenderPipelineSettings.supportVolumetricClouds + globalSettingsType: valueType: 0 targetValue: 1 validationType: 0 @@ -32,6 +34,7 @@ MonoBehaviour: - m_name: Volumetric Fog m_description: Enable Volumetric Fog. propertyPath: m_RenderPipelineSettings.supportVolumetrics + globalSettingsType: valueType: 0 targetValue: 1 validationType: 0 @@ -40,16 +43,18 @@ MonoBehaviour: - m_name: Screen Space Reflection m_description: Enable Screen Space Reflection. propertyPath: m_RenderPipelineSettings.supportSSR + globalSettingsType: valueType: 0 targetValue: 1 validationType: 0 uiSectionInt: 32 - uiSubSectionInt: 1 + uiSubSectionInt: 8 - m_name: Screen Space Reflection On Transparent m_description: Enable Screen Space Reflection On Transparent. propertyPath: m_RenderPipelineSettings.supportSSRTransparent + globalSettingsType: valueType: 0 targetValue: 1 validationType: 0 uiSectionInt: 32 - uiSubSectionInt: 1 + uiSubSectionInt: 8 diff --git a/Packages/com.unity.render-pipelines.high-definition/package.json b/Packages/com.unity.render-pipelines.high-definition/package.json index 4cb2f53231a..a085150227b 100644 --- a/Packages/com.unity.render-pipelines.high-definition/package.json +++ b/Packages/com.unity.render-pipelines.high-definition/package.json @@ -3,7 +3,7 @@ "description": "The High Definition Render Pipeline (HDRP) is a high-fidelity Scriptable Render Pipeline built by Unity to target modern (Compute Shader compatible) platforms. HDRP utilizes Physically-Based Lighting techniques, linear lighting, HDR lighting, and a configurable hybrid Tile/Cluster deferred/Forward lighting architecture and gives you the tools you need to create games, technical demos, animations, and more to a high graphical standard.", "version": "17.1.0", "unity": "6000.1", - "displayName": "High Definition RP", + "displayName": "High Definition Render Pipeline", "dependencies": { "com.unity.modules.video": "1.0.0", "com.unity.modules.animation": "1.0.0", diff --git a/Packages/com.unity.render-pipelines.universal-config/package.json b/Packages/com.unity.render-pipelines.universal-config/package.json index 1c36d042789..d674f473a1f 100644 --- a/Packages/com.unity.render-pipelines.universal-config/package.json +++ b/Packages/com.unity.render-pipelines.universal-config/package.json @@ -3,7 +3,7 @@ "description": "Configuration files for the Universal Render Pipeline.", "version": "17.0.3", "unity": "6000.0", - "displayName": "Universal RP Config", + "displayName": "Universal Render Pipeline Config", "dependencies": { "com.unity.render-pipelines.core": "17.0.3" } diff --git a/Packages/com.unity.render-pipelines.universal/.buginfo b/Packages/com.unity.render-pipelines.universal/.buginfo index b5c92da4460..0343123ae4b 100644 --- a/Packages/com.unity.render-pipelines.universal/.buginfo +++ b/Packages/com.unity.render-pipelines.universal/.buginfo @@ -1,5 +1,5 @@ old: - area: Universal RP + area: SRP Foundation Workflow: when: @@ -9,7 +9,7 @@ Workflow: - ^.*AdditionalLight?.*$ - ^.*Camera?.*$ - ^.*ContextualMenuDispatcher?.*$ - area: SRP Workflow + area: SRP Settings Tools: when: diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs index ce5455b587e..3ffcd626687 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/Light2DEditor.cs @@ -49,12 +49,6 @@ protected override void SetShape(ScriptablePath shapeEditor, SerializedObject se } } - private struct ToggleFoldoutResult - { - public bool foldoutState; - public bool toggleState; - } - private static class Styles { public static readonly GUIContent InnerOuterSpotAngle = EditorGUIUtility.TrTextContent("Inner / Outer Spot Angle", "Adjusts the inner / outer angles of this light to change the angle ranges of this Spot Light’s beam."); @@ -191,10 +185,8 @@ private void AnalyticsTrackChanges(SerializedObject serializedObject) } } - private ToggleFoldoutResult DrawHeaderFoldoutWithToggle(GUIContent title, bool foldoutState, bool toggleState, string documentationURL = "") + private void DrawHeaderFoldoutWithToggle(GUIContent title, SavedBool foldoutState, SerializedProperty toggleState, string documentationURL = "") { - ToggleFoldoutResult foldoutResult = new ToggleFoldoutResult(); - const float height = 17f; var backgroundRect = GUILayoutUtility.GetRect(0, 0); float xMin = backgroundRect.xMin; @@ -204,13 +196,18 @@ private ToggleFoldoutResult DrawHeaderFoldoutWithToggle(GUIContent title, bool f labelRect.xMin += 16f; labelRect.xMax -= 20f; - foldoutResult.toggleState = GUI.Toggle(labelRect, toggleState, " "); // Needs a space because the checkbox won't have a proper outline if we don't make a space here - foldoutResult.foldoutState = CoreEditorUtils.DrawHeaderFoldout("", foldoutState); - labelRect.xMin += 20; - EditorGUI.LabelField(labelRect, title, EditorStyles.boldLabel); + bool newToggleState = GUI.Toggle(labelRect, toggleState.boolValue, " "); // Needs a space because the checkbox won't have a proper outline if we don't make a space here + bool newFoldoutState = CoreEditorUtils.DrawHeaderFoldout("", foldoutState.value); + + if (newToggleState != toggleState.boolValue) + toggleState.boolValue = newToggleState; + if (newFoldoutState != foldoutState.value) + foldoutState.value = newFoldoutState; - return foldoutResult; + + labelRect.xMin += 20; + EditorGUI.LabelField(labelRect, title, EditorStyles.boldLabel); } void OnEnable() @@ -317,7 +314,10 @@ void OnDestroy() void DrawBlendingGroup() { CoreEditorUtils.DrawSplitter(false); - m_BlendingSettingsFoldout.value = CoreEditorUtils.DrawHeaderFoldout(Styles.blendingSettingsFoldout, m_BlendingSettingsFoldout.value); + bool foldoutState = CoreEditorUtils.DrawHeaderFoldout(Styles.blendingSettingsFoldout, m_BlendingSettingsFoldout.value); + if (foldoutState != m_BlendingSettingsFoldout.value) + m_BlendingSettingsFoldout.value = foldoutState; + if (m_BlendingSettingsFoldout.value) { if (!m_AnyBlendStyleEnabled) @@ -334,9 +334,7 @@ void DrawShadowsGroup() { CoreEditorUtils.DrawSplitter(false); - ToggleFoldoutResult result = DrawHeaderFoldoutWithToggle(Styles.shadowsSettingsFoldout, m_ShadowsSettingsFoldout.value, m_ShadowsEnabled.boolValue); - m_ShadowsEnabled.boolValue = result.toggleState; - m_ShadowsSettingsFoldout.value = result.foldoutState; + DrawHeaderFoldoutWithToggle(Styles.shadowsSettingsFoldout, m_ShadowsSettingsFoldout, m_ShadowsEnabled); if (m_ShadowsSettingsFoldout.value) { @@ -354,9 +352,8 @@ void DrawVolumetricGroup() { CoreEditorUtils.DrawSplitter(false); - ToggleFoldoutResult result = DrawHeaderFoldoutWithToggle(Styles.volumetricSettingsFoldout, m_VolumetricSettingsFoldout.value, m_VolumetricEnabled.boolValue); - m_VolumetricSettingsFoldout.value = result.foldoutState; - m_VolumetricEnabled.boolValue = result.toggleState; + DrawHeaderFoldoutWithToggle(Styles.volumetricSettingsFoldout, m_VolumetricSettingsFoldout, m_VolumetricEnabled); + if (m_VolumetricSettingsFoldout.value) { EditorGUI.indentLevel++; @@ -375,7 +372,10 @@ void DrawVolumetricGroup() void DrawNormalMapGroup() { CoreEditorUtils.DrawSplitter(false); - m_NormalMapsSettingsFoldout.value = CoreEditorUtils.DrawHeaderFoldout(Styles.normalMapsSettingsFoldout, m_NormalMapsSettingsFoldout.value); + bool foldoutState = CoreEditorUtils.DrawHeaderFoldout(Styles.normalMapsSettingsFoldout, m_NormalMapsSettingsFoldout.value); + if (foldoutState != m_NormalMapsSettingsFoldout.value) + m_NormalMapsSettingsFoldout.value = foldoutState; + if (m_NormalMapsSettingsFoldout.value) { EditorGUILayout.PropertyField(m_NormalMapQuality, Styles.generalNormalMapLightQuality); diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Converter/PPv2/PPv2Converter.cs b/Packages/com.unity.render-pipelines.universal/Editor/Converter/PPv2/PPv2Converter.cs index 8820598395c..ba27eb5de86 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Converter/PPv2/PPv2Converter.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Converter/PPv2/PPv2Converter.cs @@ -52,7 +52,7 @@ public override void OnInitialize(InitializeConverterContext context, Action cal // Components First using var componentContext = Search.SearchService.CreateContext("asset", "urp=convert-ppv2component a=URPConverterIndex"); - using var componentItems = Search.SearchService.Request(componentContext); + using var componentItems = Search.SearchService.Request(componentContext, SearchFlags.Synchronous); { AddSearchItemsAsConverterAssetEntries(componentItems, context); } @@ -60,7 +60,7 @@ public override void OnInitialize(InitializeConverterContext context, Action cal // Then ScriptableObjects using var scriptableObjectContext = Search.SearchService.CreateContext("asset", "urp=convert-ppv2scriptableobject a=URPConverterIndex "); - using var scriptableObjectItems = Search.SearchService.Request(scriptableObjectContext); + using var scriptableObjectItems = Search.SearchService.Request(scriptableObjectContext, SearchFlags.Synchronous); { AddSearchItemsAsConverterAssetEntries(scriptableObjectItems, context); } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Overrides/.buginfo b/Packages/com.unity.render-pipelines.universal/Editor/Overrides/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Overrides/.buginfo +++ b/Packages/com.unity.render-pipelines.universal/Editor/Overrides/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Settings/.buginfo b/Packages/com.unity.render-pipelines.universal/Editor/Settings/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Settings/.buginfo +++ b/Packages/com.unity.render-pipelines.universal/Editor/Settings/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Editor/Settings/PropertyDrawers/URPDefaultVolumeProfileSettingsPropertyDrawer.cs b/Packages/com.unity.render-pipelines.universal/Editor/Settings/PropertyDrawers/URPDefaultVolumeProfileSettingsPropertyDrawer.cs index 461742b9dd3..11f03010f52 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/Settings/PropertyDrawers/URPDefaultVolumeProfileSettingsPropertyDrawer.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/Settings/PropertyDrawers/URPDefaultVolumeProfileSettingsPropertyDrawer.cs @@ -86,7 +86,7 @@ protected override VisualElement CreateAssetFieldUI() return profileLine; } - public class URPDefaultVolumeProfileSettingsContextMenu : DefaultVolumeProfileSettingsContextMenu + public class URPDefaultVolumeProfileSettingsContextMenu : DefaultVolumeProfileSettingsContextMenu2 { protected override string defaultVolumeProfilePath => "Assets/VolumeProfile_Default.asset"; } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs index 43eb10ecf4e..48724312c22 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderScriptableStripper.cs @@ -111,6 +111,8 @@ public bool PassHasKeyword(LocalKeyword keyword) Shader m_PaniniProjection = Shader.Find("Hidden/Universal Render Pipeline/PaniniProjection"); Shader m_Bloom = Shader.Find("Hidden/Universal Render Pipeline/Bloom"); Shader m_TerrainLit = Shader.Find("Universal Render Pipeline/Terrain/Lit"); + Shader m_TerrainLitAddPass = Shader.Find("Hidden/Universal Render Pipeline/Terrain/Lit (Add Pass)"); + Shader m_TerrainLitBasePass = Shader.Find("Hidden/Universal Render Pipeline/Terrain/Lit (Base Pass)"); Shader m_StencilDeferred = Shader.Find("Hidden/Universal Render Pipeline/StencilDeferred"); Shader m_ClusterDeferred = Shader.Find("Hidden/Universal Render Pipeline/ClusterDeferred"); Shader m_UberPostShader = Shader.Find("Hidden/Universal Render Pipeline/UberPost"); @@ -958,7 +960,7 @@ internal bool StripInvalidVariants_HDR(ref IShaderScriptableStrippingData stripp internal bool StripInvalidVariants_TerrainHoles(ref IShaderScriptableStrippingData strippingData) { - if (strippingData.shader == m_TerrainLit) + if (strippingData.shader == m_TerrainLit || strippingData.shader == m_TerrainLitAddPass || strippingData.shader == m_TerrainLitBasePass) if (!strippingData.IsShaderFeatureEnabled(ShaderFeatures.TerrainHoles) && strippingData.IsKeywordEnabled(m_AlphaTestOn)) return true; return false; diff --git a/Packages/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/Templates/URPDecal/PassGBuffer.template b/Packages/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/Templates/URPDecal/PassGBuffer.template index 9820c7dce8e..ef4867c1808 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/Templates/URPDecal/PassGBuffer.template +++ b/Packages/com.unity.render-pipelines.universal/Editor/VFXGraph/Shaders/Templates/URPDecal/PassGBuffer.template @@ -117,6 +117,7 @@ Pass // We can not use usual GBuffer functions (etc. BRDFDataToGbuffer) as we use alpha for blending half3 packedNormalWS = PackGBufferNormal(decalSurfaceData.normalWS.xyz); + fragmentOutput = (GBufferFragOutput)0; fragmentOutput.gBuffer0 = half4(decalSurfaceData.baseColor.rgb, decalSurfaceData.baseColor.a); fragmentOutput.gBuffer1 = 0; fragmentOutput.gBuffer2 = half4(packedNormalWS, decalSurfaceData.normalWS.a); @@ -125,20 +126,27 @@ Pass #else fragmentOutput.color = 0; #endif - #if defined(GBUFFER_FEATURE_DEPTH) - fragmentOutput.depth = inputData.positionCS.z; - #endif - #if defined(GBUFFER_FEATURE_SHADOWMASK) fragmentOutput.shadowMask = inputData.shadowMask; // will have unity_ProbesOcclusion value if subtractive lighting is used (baked) #endif + } #pragma fragment frag void frag(VFX_VARYING_PS_INPUTS i, out GBufferFragOutput fragmentOutput) { + #pragma warning (disable : 3578) // The output value isn't completely initialized. + GBufferFragOutput tempFragmentOutput = (GBufferFragOutput)0; UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i) - VFXComputePixelOutputToGBuffer(i, fragmentOutput); + VFXComputePixelOutputToGBuffer(i, tempFragmentOutput); + fragmentOutput.gBuffer0 = tempFragmentOutput.gBuffer0; + fragmentOutput.gBuffer1 = tempFragmentOutput.gBuffer1; + fragmentOutput.gBuffer2 = tempFragmentOutput.gBuffer2; + fragmentOutput.color = tempFragmentOutput.color; + #if defined(GBUFFER_FEATURE_SHADOWMASK) + fragmentOutput.shadowMask = tempFragmentOutput.shadowMask; // will have unity_ProbesOcclusion value if subtractive lighting is used (baked) + #endif + #pragma warning (default : 3578) // Restore output value isn't completely initialized. } ENDHLSL } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Render2DLightingPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Render2DLightingPass.cs index 336c8278a57..35015ed8f4a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Render2DLightingPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Render2DLightingPass.cs @@ -333,7 +333,7 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData var isLitView = true; #if UNITY_EDITOR - if (renderingData.cameraData.isSceneViewCamera) + if (renderingData.cameraData.isSceneViewCamera && UnityEditor.SceneView.currentDrawingSceneView != null) isLitView = UnityEditor.SceneView.currentDrawingSceneView.sceneLighting; if (renderingData.cameraData.camera.cameraType == CameraType.Preview) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs index ef3abcb064b..3f065db0c4b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs @@ -177,12 +177,11 @@ private RenderPassInputSummary GetRenderPassInputs(UniversalCameraData cameraDat || !cameraData.isDefaultViewport || cameraData.requireSrgbConversion || !cameraData.resolveFinalTarget + || cameraData.cameraTargetDescriptor.msaaSamples > 1 && UniversalRenderer.PlatformRequiresExplicitMsaaResolve() || m_Renderer2DData.useCameraSortingLayerTexture || !Mathf.Approximately(cameraData.renderScale, 1.0f) || (DebugHandler != null && DebugHandler.WriteToDebugScreenTexture(cameraData.resolveFinalTarget)); - inputSummary.requiresDepthTexture |= (!cameraData.resolveFinalTarget && m_UseDepthStencilBuffer); - return inputSummary; } @@ -227,7 +226,7 @@ void CreateRenderTextures( { var depthDescriptor = cameraTargetDescriptor; depthDescriptor.colorFormat = RenderTextureFormat.Depth; - depthDescriptor.depthStencilFormat = CoreUtils.GetDefaultDepthStencilFormat(); + depthDescriptor.depthStencilFormat = CoreUtils.GetDefaultDepthStencilFormat(); if (!cameraData.resolveFinalTarget && m_UseDepthStencilBuffer) depthDescriptor.bindMS = depthDescriptor.msaaSamples > 1 && !SystemInfo.supportsMultisampleAutoResolve && (SystemInfo.supportsMultisampledTextures != 0); RenderingUtils.ReAllocateHandleIfNeeded(ref m_DepthTextureHandle, depthDescriptor, FilterMode.Point, wrapMode: TextureWrapMode.Clamp, name: "_CameraDepthAttachment"); @@ -466,7 +465,7 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re // We can explicitely render the overlay UI from URP when HDR output is not enabled. // SupportedRenderingFeatures.active.rendersUIOverlay should also be set to true. - if (shouldRenderUI && !outputToHDR) + if (shouldRenderUI && cameraData.isLastBaseCamera && !outputToHDR) { EnqueuePass(m_DrawOverlayUIPass); } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs index 49a99b14a19..a0f2a550f28 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawNormal2DPass.cs @@ -51,7 +51,6 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData builder.AllowPassCulling(false); builder.SetRenderAttachment(universal2DResourceData.normalsTexture[batchIndex], 0); - builder.SetRenderAttachmentDepth(commonResourceData.activeDepthTexture, AccessFlags.Write); var param = new RendererListParams(renderingData.cullResults, drawSettings, filterSettings); passData.rendererList = graph.CreateRendererList(param); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs index 1cac87e6610..7b5c3817a99 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/DrawRenderer2DPass.cs @@ -89,6 +89,17 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData CommonResourceData commonResourceData = frameData.Get(); var layerBatch = layerBatches[batchIndex]; + bool isLitView = true; + +#if UNITY_EDITOR + // Early out for prefabs + if (cameraData.isSceneViewCamera && UnityEditor.SceneView.currentDrawingSceneView != null) + isLitView = UnityEditor.SceneView.currentDrawingSceneView.sceneLighting; + + // Early out for preview camera + if (cameraData.cameraType == CameraType.Preview) + isLitView = false; +#endif // Preset global light textures for first batch if (batchIndex == 0) @@ -102,7 +113,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData builder.UseTexture(passData.lightTextures[i]); } - SetGlobalLightTextures(graph, builder, passData.lightTextures, cameraData, ref layerBatch, rendererData); + SetGlobalLightTextures(graph, builder, passData.lightTextures, ref layerBatch, rendererData, isLitView); builder.AllowPassCulling(false); builder.AllowGlobalStateModification(true); @@ -121,17 +132,8 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData passData.hdrEmulationScale = rendererData.hdrEmulationScale; passData.isSceneLit = rendererData.lightCullResult.IsSceneLit(); passData.layerUseLights = layerBatch.lightStats.useLights; - #if UNITY_EDITOR - passData.isLitView = true; - - // Early out for prefabs - if (cameraData.isSceneViewCamera && !UnityEditor.SceneView.currentDrawingSceneView.sceneLighting) - passData.isLitView = false; - - // Early out for preview camera - if (cameraData.cameraType == CameraType.Preview) - passData.isLitView = false; + passData.isLitView = isLitView; #endif var drawSettings = CreateDrawingSettings(k_ShaderTags, renderingData, cameraData, lightData, SortingCriteria.CommonTransparent); @@ -159,7 +161,7 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData // Post set global light textures for next renderer pass var nextBatch = batchIndex + 1; if (nextBatch < universal2DResourceData.lightTextures.Length) - SetGlobalLightTextures(graph, builder, universal2DResourceData.lightTextures[nextBatch], cameraData, ref layerBatches[nextBatch], rendererData); + SetGlobalLightTextures(graph, builder, universal2DResourceData.lightTextures[nextBatch], ref layerBatches[nextBatch], rendererData, isLitView); builder.SetRenderFunc((PassData data, RasterGraphContext context) => { @@ -168,21 +170,9 @@ public void Render(RenderGraph graph, ContextContainer frameData, Renderer2DData } } - void SetGlobalLightTextures(RenderGraph graph, IRasterRenderGraphBuilder builder, TextureHandle[] lightTextures, UniversalCameraData cameraData, ref LayerBatch layerBatch, Renderer2DData rendererData) + void SetGlobalLightTextures(RenderGraph graph, IRasterRenderGraphBuilder builder, TextureHandle[] lightTextures, ref LayerBatch layerBatch, Renderer2DData rendererData, bool isLitView) { -#if UNITY_EDITOR - bool isLitView = true; - - // Early out for prefabs - if (cameraData.isSceneViewCamera && !UnityEditor.SceneView.currentDrawingSceneView.sceneLighting) - isLitView = false; - - // Early out for preview camera - if (cameraData.cameraType == CameraType.Preview) - isLitView = false; - if (isLitView) -#endif { if (layerBatch.lightStats.useLights) { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs index cf3e82f558e..30dc9cd5d27 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Rendergraph/Renderer2DRendergraph.cs @@ -61,7 +61,12 @@ private RTHandle nextRenderGraphCameraColorHandle private bool IsPixelPerfectCameraEnabled(UniversalCameraData cameraData) { - cameraData.camera.TryGetComponent(out var ppc); + PixelPerfectCamera ppc = null; + + // Pixel Perfect Camera doesn't support camera stacking. + if (cameraData.renderType == CameraRenderType.Base && cameraData.resolveFinalTarget) + cameraData.camera.TryGetComponent(out ppc); + return ppc != null && ppc.enabled && ppc.cropFrame != PixelPerfectCamera.CropFrame.None; } @@ -226,7 +231,7 @@ void CreateResources(RenderGraph renderGraph) var upscaleDescriptor = cameraTargetDescriptor; upscaleDescriptor.width = ppc.refResolutionX * ppc.pixelRatio; upscaleDescriptor.height = ppc.refResolutionY * ppc.pixelRatio; - upscaleDescriptor.depthStencilFormat = GraphicsFormat.None; + upscaleDescriptor.depthStencilFormat = GraphicsFormat.None; universal2DResourceData.upscaleTexture = UniversalRenderer.CreateRenderGraphTexture(renderGraph, upscaleDescriptor, "_UpscaleTexture", true, ppc.finalBlitFilterMode); } @@ -237,7 +242,8 @@ void CreateResources(RenderGraph renderGraph) var width = (int)Mathf.Max(1, cameraData.cameraTargetDescriptor.width * renderTextureScale); var height = (int)Mathf.Max(1, cameraData.cameraTargetDescriptor.height * renderTextureScale); - CreateCameraNormalsTextures(renderGraph, cameraTargetDescriptor); + // Normals and Light textures have to be of the same renderTextureScale, to prevent any sampling artifacts during lighting calculations + CreateCameraNormalsTextures(renderGraph, cameraTargetDescriptor, width, height); CreateLightTextures(renderGraph, width, height); @@ -359,11 +365,11 @@ void CreateResources(RenderGraph renderGraph) CreateCameraDepthCopyTexture(renderGraph, cameraTargetDescriptor); } - void CreateCameraNormalsTextures(RenderGraph renderGraph, RenderTextureDescriptor descriptor) + void CreateCameraNormalsTextures(RenderGraph renderGraph, RenderTextureDescriptor descriptor, int width, int height) { Universal2DResourceData resourceData = frameData.Get(); - var desc = new RenderTextureDescriptor(descriptor.width, descriptor.height); + var desc = new RenderTextureDescriptor(width, height); desc.graphicsFormat = RendererLighting.GetRenderTextureFormat(); desc.autoGenerateMips = false; desc.msaaSamples = descriptor.msaaSamples; @@ -703,7 +709,7 @@ private void OnAfterRendering(RenderGraph renderGraph) // We can explicitly render the overlay UI from URP when HDR output is not enabled. // SupportedRenderingFeatures.active.rendersUIOverlay should also be set to true. - bool shouldRenderUI = cameraData.rendersOverlayUI; + bool shouldRenderUI = cameraData.rendersOverlayUI && cameraData.isLastBaseCamera; bool outputToHDR = cameraData.isHDROutputActive; if (shouldRenderUI && !outputToHDR) m_DrawOverlayUIPass.RenderOverlay(renderGraph, frameData, in finalColorHandle, in finalDepthHandle); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowProvider/ShadowMesh2D.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowProvider/ShadowMesh2D.cs index 3d5899d5b44..a0c9a165228 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowProvider/ShadowMesh2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Shadows/ShadowProvider/ShadowMesh2D.cs @@ -318,8 +318,11 @@ bool AreDegenerateVertices(NativeArray vertices) public override void SetShape(NativeArray vertices, NativeArray indices, ShadowShape2D.OutlineTopology outlineTopology, ShadowShape2D.WindingOrder windingOrder = ShadowShape2D.WindingOrder.Clockwise, bool allowTrimming = true, bool createInteriorGeometry = false) { - if (AreDegenerateVertices(vertices)) + if (AreDegenerateVertices(vertices) || indices == null || indices.Length == 0) + { + m_Mesh.Clear(); return; + } if (m_TrimEdge == k_TrimEdgeUninitialized) m_TrimEdge = m_InitialTrim; @@ -333,12 +336,6 @@ public override void SetShape(NativeArray vertices, NativeArray in if (m_Mesh == null) m_Mesh = new Mesh(); - if (indices.Length == 0) - { - m_Mesh.Clear(); - return; - } - if (outlineTopology == ShadowShape2D.OutlineTopology.Triangles) { NativeArray newVertices; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugHandler.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugHandler.cs index 8ac8e1c019f..eddfe0e1c20 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugHandler.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Debug/DebugHandler.cs @@ -231,6 +231,7 @@ internal static void ConfigureDepthDescriptorForDebugScreen(ref RenderTextureDes descriptor.autoGenerateMips = false; descriptor.useDynamicScale = true; descriptor.depthStencilFormat = depthStencilFormat; + descriptor.graphicsFormat = GraphicsFormat.None; } [Conditional("DEVELOPMENT_BUILD"), Conditional("UNITY_EDITOR")] diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs b/Packages/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs index c5cb7d4edd5..d2b1c1367ca 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/DeferredLights.cs @@ -219,10 +219,6 @@ internal GraphicsFormat GetGBufferFormat(int index) internal GraphicsFormat[] GbufferFormats { get; set; } internal RTHandle DepthAttachmentHandle { get; set; } - // Render Graph only. - // True if GBuffer pass has previously been recorded this frame. If false, GBuffers might not contain valid data. - internal bool IsGBufferValid { get; set; } - // Visible lights indices rendered using stencil volumes. NativeArray m_stencilVisLights; // Offset of each type of lights in m_stencilVisLights. @@ -429,10 +425,6 @@ internal void ResolveMixedLightingMode(UniversalLightData lightData) } } } - // Once the mixed lighting mode has been discovered, we know how many MRTs we need for the gbuffer. - // Subtractive mixed lighting requires shadowMask output, which is actually used to store unity_ProbesOcclusion values. - - CreateGbufferResources(); } // In cases when custom pass is injected between GBuffer and Deferred passes we need to fallback @@ -494,6 +486,39 @@ internal void CreateGbufferResources() } } + internal void CreateGbufferResourcesRenderGraph(RenderGraph renderGraph, UniversalResourceData resourceData) + { + int gbufferSliceCount = GBufferSliceCount; + if (GbufferTextureHandles == null || GbufferTextureHandles.Length != gbufferSliceCount) + { + GbufferFormats = new GraphicsFormat[gbufferSliceCount]; + GbufferTextureHandles = new TextureHandle[gbufferSliceCount]; + } + + bool useCameraRenderingLayersTexture = UseRenderingLayers && !UseLightLayers; + Debug.Assert(resourceData.cameraColor.IsValid(), "Deferred Renderer assumes that the intermediate (color) texture is available."); + + for (int i = 0; i < gbufferSliceCount; ++i) + { + GbufferFormats[i] = GetGBufferFormat(i); + + if (i == GBufferNormalSmoothnessIndex && HasNormalPrepass) + GbufferTextureHandles[i] = resourceData.cameraNormalsTexture; + else if (i == GBufferRenderingLayers && useCameraRenderingLayersTexture) + GbufferTextureHandles[i] = resourceData.renderingLayersTexture; + else if (i != GBufferLightingIndex) + { + var gbufferSlice = resourceData.cameraColor.GetDescriptor(renderGraph); + gbufferSlice.format = GetGBufferFormat(i); + gbufferSlice.name = k_GBufferNames[i]; + gbufferSlice.clearBuffer = true; + GbufferTextureHandles[i] = renderGraph.CreateTexture(gbufferSlice); + } + else + GbufferTextureHandles[i] = resourceData.cameraColor; + } + } + internal void UpdateDeferredInputAttachments() { this.DeferredInputAttachments[0] = this.GbufferAttachments[0]; @@ -565,7 +590,6 @@ public void Setup( internal void Setup(AdditionalLightsShadowCasterPass additionalLightsShadowCasterPass) { m_AdditionalLightsShadowCasterPass = additionalLightsShadowCasterPass; - IsGBufferValid = false; } public void OnCameraCleanup(CommandBuffer cmd) @@ -665,10 +689,10 @@ internal void ExecuteDeferredPass(RasterCommandBuffer cmd, UniversalCameraData c if (!UseFramebufferFetch) { Material deferredMaterial = m_UseDeferredPlus ? m_ClusterDeferredMaterial : m_StencilDeferredMaterial; - for (int i = 0; i < GbufferTextureHandles.Length; i++) + for (int i = 0; i < GbufferRTHandles.Length; i++) { if (i != GBufferLightingIndex) - deferredMaterial.SetTexture(k_GBufferShaderPropertyIDs[i], GbufferTextureHandles[i]); + deferredMaterial.SetTexture(k_GBufferShaderPropertyIDs[i], GbufferRTHandles[i]); } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalCameraData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalCameraData.cs index 036b59f5777..30266a552fa 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalCameraData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/FrameData/UniversalCameraData.cs @@ -634,10 +634,16 @@ internal bool resetHistory } /// - /// Camera at the top of the overlay camera stack + /// Camera at the top of the overlay camera stack. If no stack, it equals the camera field present above. /// public Camera baseCamera; + /// + /// Returns true if the baseCamera field is the last base camera being rendered to the frame. + /// While the last camera in a camera stack implies a last overlay camera, this indicates the last of all input base cameras. + /// + internal bool isLastBaseCamera; + /// public override void Reset() { @@ -695,6 +701,7 @@ public override void Reset() stpHistory = null; taaSettings = default; baseCamera = null; + isLastBaseCamera = false; stackAnyPostProcessingEnabled = false; stackLastCameraOutputToHDR = false; } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/.buginfo b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/.buginfo +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Overrides/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file 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 f6d65fff5ed..326bc83f126 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/AdditionalLightsShadowCasterPass.cs @@ -17,6 +17,7 @@ public partial class AdditionalLightsShadowCasterPass : ScriptableRenderPass private int renderTargetWidth; private int renderTargetHeight; private bool m_CreateEmptyShadowmap; + private bool m_SetKeywordForEmptyShadowmap; private bool m_EmptyShadowmapNeedsClear; private bool m_IssuedMessageAboutShadowSlicesTooMany; private bool m_IssuedMessageAboutShadowMapsRescale; @@ -74,6 +75,7 @@ private class PassData { internal int shadowmapID; internal bool emptyShadowmap; + internal bool setKeywordForEmptyShadowmap; internal bool useStructuredBuffer; internal bool stripShadowsOffVariants; internal Matrix4x4 viewMatrix; @@ -338,11 +340,19 @@ public bool Setup(UniversalRenderingData renderingData, UniversalCameraData came { using var profScope = new ProfilingScope(m_ProfilingSetupSampler); - if (!shadowData.additionalLightShadowsEnabled) + bool shadowsEnabled = shadowData.additionalLightShadowsEnabled; + if (!shadowsEnabled) + { + // If (realtime) shadows are disabled, but any additional light casts baked shadows, we need to do empty rendering to setup the _MainLightShadowParams uniform, + // which is also used when sampling baked shadows. This allows for using baked shadows even when realtime shadows are completely disabled. + if (AnyAdditionalLightHasMixedShadows(lightData)) + return SetupForEmptyRendering(cameraData.renderer.stripShadowsOffVariants, shadowsEnabled, lightData, shadowData); + return false; + } if (!shadowData.supportsAdditionalLightShadows) - return SetupForEmptyRendering(cameraData.renderer.stripShadowsOffVariants, lightData, shadowData); + return SetupForEmptyRendering(cameraData.renderer.stripShadowsOffVariants, shadowsEnabled, lightData, shadowData); Clear(); @@ -564,7 +574,7 @@ public bool Setup(UniversalRenderingData renderingData, UniversalCameraData came // Lights that need to be rendered in the shadow map atlas if (validShadowCastingLightsCount == 0) - return SetupForEmptyRendering(cameraData.renderer.stripShadowsOffVariants, lightData, shadowData); + return SetupForEmptyRendering(cameraData.renderer.stripShadowsOffVariants, shadowsEnabled, lightData, shadowData); int shadowCastingLightsBufferCount = m_ShadowSliceToAdditionalLightIndex.Count; @@ -635,7 +645,29 @@ private void UpdateTextureDescriptorIfNeeded() } } - bool SetupForEmptyRendering(bool stripShadowsOffVariants, UniversalLightData lightData, UniversalShadowData shadowData) + bool AnyAdditionalLightHasMixedShadows(UniversalLightData lightData) + { + for (int visibleLightIndex = 0; visibleLightIndex < lightData.visibleLights.Length; ++visibleLightIndex) + { + if (visibleLightIndex == lightData.mainLightIndex) + { + continue; + } + + Light light = lightData.visibleLights[visibleLightIndex].light; + if (light.shadows != LightShadows.None && + light.bakingOutput.isBaked && + light.bakingOutput.mixedLightingMode != MixedLightingMode.IndirectOnly && + light.bakingOutput.lightmapBakeType == LightmapBakeType.Mixed) + { + return true; + } + } + + return false; + } + + bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, UniversalLightData lightData, UniversalShadowData shadowData) { if (!stripShadowsOffVariants) return false; @@ -644,6 +676,8 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, UniversalLightData lig m_CreateEmptyShadowmap = true; useNativeRenderPass = false; + m_SetKeywordForEmptyShadowmap = shadowsEnabled; + // Even though there are not real-time shadows, the lights might be using shadowmasks, // which is why we need to update the shadow parameters, for example so shadow strength can be used. @@ -740,7 +774,8 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData RasterCommandBuffer rasterCommandBuffer = CommandBufferHelpers.GetRasterCommandBuffer(renderingData.commandBuffer); if (m_CreateEmptyShadowmap) { - rasterCommandBuffer.EnableKeyword(ShaderGlobalKeywords.AdditionalLightShadows); + if (m_SetKeywordForEmptyShadowmap) + rasterCommandBuffer.EnableKeyword(ShaderGlobalKeywords.AdditionalLightShadows); SetShadowParamsForEmptyShadowmap(rasterCommandBuffer); universalRenderingData.commandBuffer.SetGlobalTexture(AdditionalShadowsConstantBuffer._AdditionalLightsShadowmapID, m_EmptyAdditionalLightShadowmapTexture); return; @@ -922,6 +957,7 @@ private void InitPassData(ref PassData passData, UniversalCameraData cameraData, passData.stripShadowsOffVariants = cameraData.renderer.stripShadowsOffVariants; passData.emptyShadowmap = m_CreateEmptyShadowmap; + passData.setKeywordForEmptyShadowmap = m_SetKeywordForEmptyShadowmap; passData.useStructuredBuffer = m_UseStructuredBuffer; } @@ -993,7 +1029,8 @@ internal TextureHandle Render(RenderGraph graph, ContextContainer frameData) } else { - rasterCommandBuffer.EnableKeyword(ShaderGlobalKeywords.AdditionalLightShadows); + if (data.setKeywordForEmptyShadowmap) + rasterCommandBuffer.EnableKeyword(ShaderGlobalKeywords.AdditionalLightShadows); SetShadowParamsForEmptyShadowmap(rasterCommandBuffer); } }); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs index 137e37c7891..e77e82540c4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/CopyDepthPass.cs @@ -289,7 +289,27 @@ public void Render(RenderGraph renderGraph, TextureHandle destination, TextureHa // binding a dummy color target as a workaround to NRP depth only rendering limitation: // "Attempting to render to a depth only surface with no dummy color attachment" if (cameraData.xr.enabled && cameraData.xr.copyDepth) - builder.SetRenderAttachment(resourceData.backBufferColor, 0); + { + RenderTargetInfo backBufferDesc = renderGraph.GetRenderTargetInfo(resourceData.backBufferColor); + // In the case where MSAA is enabled, we have to bind a different dummy texture + // This is to ensure that we don't render black in the resolve result of the color backbuffer + // This also makes this pass unmergeable in this case, potentially impacting performance + if (backBufferDesc.msaaSamples > 1) + { + TextureHandle dummyXRRenderTarget = renderGraph.CreateTexture(new TextureDesc(backBufferDesc.width, backBufferDesc.height, false, true) + { + name = "XR Copy Depth Dummy Render Target", + slices = backBufferDesc.volumeDepth, + format = backBufferDesc.format, + msaaSamples = (MSAASamples)backBufferDesc.msaaSamples, + clearBuffer = false, + bindTextureMS = backBufferDesc.bindMS + }); + builder.SetRenderAttachment(dummyXRRenderTarget, 0); + } + else + builder.SetRenderAttachment(resourceData.backBufferColor, 0); + } #endif } else diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs index 6594c1a6efd..0b1a845ece8 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/GBufferPass.cs @@ -234,43 +234,13 @@ internal void Render(RenderGraph renderGraph, ContextContainer frameData, Textur passData.gbuffer = m_DeferredLights.GbufferTextureHandles; - // If the gbuffer targets are already set up, then assume we are setting up for the second gbuffer pass when doing two-pass occlusion culling. - // We want to continue to render to the same targets as the first pass in this case, so just attach them for this pass. - if (m_DeferredLights.IsGBufferValid) + for (int i = 0; i < m_DeferredLights.GBufferSliceCount; i++) { - for (int i = 0; i < m_DeferredLights.GBufferSliceCount; i++) - { - builder.SetRenderAttachment(passData.gbuffer[i], i, AccessFlags.Write); - } + Debug.Assert(passData.gbuffer[i].IsValid()); + builder.SetRenderAttachment(passData.gbuffer[i], i, AccessFlags.Write); } - else - { - for (int i = 0; i < m_DeferredLights.GBufferSliceCount; i++) - { - var gbufferSlice = cameraData.cameraTargetDescriptor; - gbufferSlice.depthStencilFormat = GraphicsFormat.None; // make sure no depth surface is actually created - gbufferSlice.stencilFormat = GraphicsFormat.None; - if (i == m_DeferredLights.GBufferNormalSmoothnessIndex && m_DeferredLights.HasNormalPrepass) - passData.gbuffer[i] = resourceData.cameraNormalsTexture; - else if (i == m_DeferredLights.GBufferRenderingLayers && useCameraRenderingLayersTexture) - passData.gbuffer[i] = resourceData.renderingLayersTexture; - else if (i != m_DeferredLights.GBufferLightingIndex) - { - gbufferSlice.graphicsFormat = m_DeferredLights.GetGBufferFormat(i); - passData.gbuffer[i] = UniversalRenderer.CreateRenderGraphTexture(renderGraph, gbufferSlice, DeferredLights.k_GBufferNames[i], true); - } - else - passData.gbuffer[i] = cameraColor; - - builder.SetRenderAttachment(passData.gbuffer[i], i, AccessFlags.Write); - } - - m_DeferredLights.IsGBufferValid = true; - } - - RenderGraphUtils.UseDBufferIfValid(builder, resourceData); - resourceData.gBuffer = passData.gbuffer; + RenderGraphUtils.UseDBufferIfValid(builder, resourceData); passData.depth = cameraDepth; builder.SetRenderAttachmentDepth(cameraDepth, AccessFlags.Write); @@ -279,8 +249,8 @@ internal void Render(RenderGraph renderGraph, ContextContainer frameData, Textur InitRendererLists(ref passData, default(ScriptableRenderContext), renderGraph, renderingData, cameraData, lightData, true); builder.UseRendererList(passData.rendererListHdl); builder.UseRendererList(passData.objectsWithErrorRendererListHdl); - - if (setGlobalTextures) + + if (setGlobalTextures) { builder.SetGlobalTextureAfterPass(resourceData.cameraNormalsTexture, s_CameraNormalsTextureID); @@ -293,7 +263,7 @@ internal void Render(RenderGraph renderGraph, ContextContainer frameData, Textur builder.SetRenderFunc((PassData data, RasterGraphContext context) => { - ExecutePass(context.cmd, data, data.rendererListHdl, data.objectsWithErrorRendererListHdl); + ExecutePass(context.cmd, data, data.rendererListHdl, data.objectsWithErrorRendererListHdl); }); } } diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs index 94dbc15c07a..b36b03e32e7 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/MainLightShadowCasterPass.cs @@ -16,6 +16,7 @@ public class MainLightShadowCasterPass : ScriptableRenderPass private int renderTargetHeight; private int m_ShadowCasterCascadesCount; private bool m_CreateEmptyShadowmap; + private bool m_SetKeywordForEmptyShadowmap; private bool m_EmptyShadowmapNeedsClear; private float m_CascadeBorder; private float m_MaxShadowDistanceSq; @@ -55,6 +56,7 @@ private static class MainLightShadowConstantBuffer private class PassData { internal bool emptyShadowmap; + internal bool setKeywordForEmptyShadowmap; internal UniversalRenderingData renderingData; internal UniversalCameraData cameraData; internal UniversalLightData lightData; @@ -119,8 +121,8 @@ public bool Setup(ref RenderingData renderingData) /// public bool Setup(UniversalRenderingData renderingData, UniversalCameraData cameraData, UniversalLightData lightData, UniversalShadowData shadowData) { - if (!shadowData.mainLightShadowsEnabled) - return false; + bool shadowsEnabled = shadowData.mainLightShadowsEnabled; + bool shadowsSupported = shadowData.supportsMainLightShadows; #if UNITY_EDITOR if (CoreUtils.IsSceneLightingDisabled(cameraData.camera)) @@ -130,18 +132,39 @@ public bool Setup(UniversalRenderingData renderingData, UniversalCameraData came using var profScope = new ProfilingScope(m_ProfilingSetupSampler); bool stripShadowsOffVariants = cameraData.renderer.stripShadowsOffVariants; - if (!shadowData.supportsMainLightShadows) - return SetupForEmptyRendering(stripShadowsOffVariants, null, cameraData, shadowData); Clear(); int shadowLightIndex = lightData.mainLightIndex; if (shadowLightIndex == -1) - return SetupForEmptyRendering(stripShadowsOffVariants, null, cameraData, shadowData); + { + if (shadowsEnabled) + return SetupForEmptyRendering(stripShadowsOffVariants, shadowsEnabled, null, cameraData, shadowData); + else + return false; + } VisibleLight shadowLight = lightData.visibleLights[shadowLightIndex]; Light light = shadowLight.light; - if (light.shadows == LightShadows.None) - return SetupForEmptyRendering(stripShadowsOffVariants, light, cameraData, shadowData); + if (shadowsSupported && light.shadows == LightShadows.None) + return SetupForEmptyRendering(stripShadowsOffVariants, shadowsEnabled, light, cameraData, shadowData); + + if (!shadowsEnabled) + { + // If (realtime) shadows are disabled, but the light casts baked shadows, we need to do empty rendering to setup the _MainLightShadowParams uniform, + // which is also used when sampling baked shadows. This allows for using baked shadows even when realtime shadows are completely disabled. + if (light.shadows != LightShadows.None && + light.bakingOutput.isBaked && + light.bakingOutput.mixedLightingMode != MixedLightingMode.IndirectOnly && + light.bakingOutput.lightmapBakeType == LightmapBakeType.Mixed) + { + return SetupForEmptyRendering(stripShadowsOffVariants, shadowsEnabled, light, cameraData, shadowData); + } + + return false; + } + + if (!shadowsSupported) + return SetupForEmptyRendering(stripShadowsOffVariants, shadowsEnabled, null, cameraData, shadowData); if (shadowLight.lightType != LightType.Directional) { @@ -149,7 +172,7 @@ public bool Setup(UniversalRenderingData renderingData, UniversalCameraData came } if (!renderingData.cullResults.GetShadowCasterBounds(shadowLightIndex, out Bounds _)) - return SetupForEmptyRendering(stripShadowsOffVariants, light, cameraData, shadowData); + return SetupForEmptyRendering(stripShadowsOffVariants, shadowsEnabled, light, cameraData, shadowData); m_ShadowCasterCascadesCount = shadowData.mainLightShadowCascadesCount; renderTargetWidth = shadowData.mainLightRenderTargetWidth; @@ -164,7 +187,7 @@ public bool Setup(UniversalRenderingData renderingData, UniversalCameraData came m_CascadeSlices[cascadeIndex] = sliceData; if (!shadowCullingInfos.IsSliceValid(cascadeIndex)) - return SetupForEmptyRendering(stripShadowsOffVariants, light, cameraData, shadowData); + return SetupForEmptyRendering(stripShadowsOffVariants, shadowsEnabled, light, cameraData, shadowData); } UpdateTextureDescriptorIfNeeded(); @@ -188,7 +211,7 @@ private void UpdateTextureDescriptorIfNeeded() } } - bool SetupForEmptyRendering(bool stripShadowsOffVariants, Light light, UniversalCameraData cameraData, UniversalShadowData shadowData) + bool SetupForEmptyRendering(bool stripShadowsOffVariants, bool shadowsEnabled, Light light, UniversalCameraData cameraData, UniversalShadowData shadowData) { if (!stripShadowsOffVariants) return false; @@ -196,6 +219,8 @@ bool SetupForEmptyRendering(bool stripShadowsOffVariants, Light light, Universal m_CreateEmptyShadowmap = true; useNativeRenderPass = false; + m_SetKeywordForEmptyShadowmap = shadowsEnabled; + // Even though there are not real-time shadows, the light might be using shadowmasks, // which is why we need to update the shadow parameters, for example so shadow strength can be used. @@ -261,7 +286,8 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData RasterCommandBuffer rasterCommandBuffer = CommandBufferHelpers.GetRasterCommandBuffer(renderingData.commandBuffer); if (m_CreateEmptyShadowmap) { - rasterCommandBuffer.EnableKeyword(ShaderGlobalKeywords.MainLightShadows); + if (m_SetKeywordForEmptyShadowmap) + rasterCommandBuffer.EnableKeyword(ShaderGlobalKeywords.MainLightShadows); SetShadowParamsForEmptyShadowmap(rasterCommandBuffer); universalRenderingData.commandBuffer.SetGlobalTexture(MainLightShadowConstantBuffer._MainLightShadowmapID, m_EmptyMainLightShadowmapTexture.nameID); return; @@ -404,6 +430,7 @@ private void InitPassData( { passData.pass = this; passData.emptyShadowmap = m_CreateEmptyShadowmap; + passData.setKeywordForEmptyShadowmap = m_SetKeywordForEmptyShadowmap; passData.renderingData = renderingData; passData.cameraData = cameraData; passData.lightData = lightData; @@ -474,7 +501,8 @@ internal TextureHandle Render(RenderGraph graph, ContextContainer frameData) } else { - rasterCommandBuffer.EnableKeyword(ShaderGlobalKeywords.MainLightShadows); + if (data.setKeywordForEmptyShadowmap) + rasterCommandBuffer.EnableKeyword(ShaderGlobalKeywords.MainLightShadows); SetShadowParamsForEmptyShadowmap(rasterCommandBuffer); } }); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs index fa777df95cf..72fff7b2ce6 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Passes/PostProcessPassRenderGraph.cs @@ -1413,6 +1413,7 @@ public void RenderFinalSetup(RenderGraph renderGraph, UniversalCameraData camera using (var builder = renderGraph.AddRasterRenderPass("Postprocessing Final Setup Pass", out var passData, ProfilingSampler.Get(URPProfileId.RG_FinalSetup))) { Material material = m_Materials.scalingSetup; + material.shaderKeywords = null; if (settings.isFxaaEnabled) material.EnableKeyword(ShaderKeywordStrings.Fxaa); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ReflectionProbeManager.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ReflectionProbeManager.cs index 1d0c47749c1..c1cca4d9f6b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ReflectionProbeManager.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ReflectionProbeManager.cs @@ -329,6 +329,7 @@ public void Dispose() m_AtlasTexture0.Release(); m_AtlasTexture0Handle.Release(); } + m_AtlasAllocator.Dispose(); Object.DestroyImmediate(m_AtlasTexture0); Object.DestroyImmediate(m_AtlasTexture1); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/RenderPipelineResources/.buginfo b/Packages/com.unity.render-pipelines.universal/Runtime/RenderPipelineResources/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/RenderPipelineResources/.buginfo +++ b/Packages/com.unity.render-pipelines.universal/Runtime/RenderPipelineResources/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs index cc175be64a7..555b2e11be0 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ScriptableRenderer.cs @@ -727,7 +727,16 @@ public void Dispose() if (rendererFeatures[i] == null) continue; - rendererFeatures[i].Dispose(); + try + { + // Guard the renderer feature Dispose() call so if it raises any exception, + // it doesn't leave the renderer in a partially destructed state. + rendererFeatures[i].Dispose(); + } + catch (Exception e) + { + Debug.LogException(e); + } } Dispose(true); @@ -975,6 +984,8 @@ internal void SetupRenderGraphCameraProperties(RenderGraph renderGraph, bool isT private class DrawGizmosPassData { public RendererListHandle gizmoRenderList; + public TextureHandle color; + public TextureHandle depth; }; /// @@ -992,20 +1003,25 @@ internal void DrawRenderGraphGizmos(RenderGraph renderGraph, ContextContainer fr if (!Handles.ShouldRenderGizmos() || cameraData.camera.sceneViewFilterMode == Camera.SceneViewFilterMode.ShowFiltered) return; - using (var builder = renderGraph.AddRasterRenderPass("Draw Gizmos Pass", out var passData, + // We cannot draw gizmo rendererlists from an raster pass as the gizmo rendering triggers the MonoBehaviour.OnDrawGizmos or MonoBehaviour.OnDrawGizmosSelected callbacks that could run arbitrary graphics code + // like SetRenderTarget, texture and resource loading, ... + using (var builder = renderGraph.AddUnsafePass("Draw Gizmos Pass", out var passData, Profiling.drawGizmos)) { - builder.SetRenderAttachment(color, 0, AccessFlags.Write); - builder.SetRenderAttachmentDepth(depth, AccessFlags.ReadWrite); + builder.UseTexture(color, AccessFlags.Write); + builder.UseTexture(depth, AccessFlags.ReadWrite); passData.gizmoRenderList = renderGraph.CreateGizmoRendererList(cameraData.camera, gizmoSubset); + passData.color = color; + passData.depth = depth; builder.UseRendererList(passData.gizmoRenderList); builder.AllowPassCulling(false); - builder.SetRenderFunc((DrawGizmosPassData data, RasterGraphContext rgContext) => + builder.SetRenderFunc((DrawGizmosPassData data, UnsafeGraphContext rgContext) => { using (new ProfilingScope(rgContext.cmd, Profiling.drawGizmos)) { + rgContext.cmd.SetRenderTarget(data.color, data.depth); rgContext.cmd.DrawRendererList(data.gizmoRenderList); } }); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Settings/.buginfo b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Settings/.buginfo +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPDefaultVolumeProfileSetting.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPDefaultVolumeProfileSetting.cs index 2ad51c6f066..ca1a4e826da 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPDefaultVolumeProfileSetting.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Settings/URPDefaultVolumeProfileSetting.cs @@ -92,9 +92,9 @@ public VolumeProfile volumeProfile #if UNITY_EDITOR //Overriding "Reset" in menu that is not called at URPDefaultVolumeProfileSettings creation such Reset() - struct ResetImplementation : IRenderPipelineGraphicsSettingsContextMenu + struct ResetImplementation : IRenderPipelineGraphicsSettingsContextMenu2 { - public void PopulateContextMenu(URPDefaultVolumeProfileSettings setting, PropertyDrawer drawer, ref GenericMenu menu) + public void PopulateContextMenu(URPDefaultVolumeProfileSettings setting, SerializedProperty _, ref GenericMenu menu) { void Reset() { diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/TilingJob.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/TilingJob.cs index e23240fc532..a6b422468fa 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/TilingJob.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Tiling/TilingJob.cs @@ -112,8 +112,6 @@ bool SpherePointIsValid(float3 p) => light.lightType == LightType.Point || if (SpherePointIsValid(sphereBoundX0)) ExpandY(sphereBoundX0); if (SpherePointIsValid(sphereBoundX1)) ExpandY(sphereBoundX1); - m_TileYRange.Clamp(0, (short)(tileCount.y - 1)); - if (light.lightType == LightType.Spot) { // Cone base @@ -191,22 +189,12 @@ bool ConicPointIsValid(float3 p) => // from the light position. GetConeSideTangentPoints(lightPositionVS, lightDirectionVS, cosHalfAngle, baseRadius, coneHeight, range, coneU, coneV, out var l1, out var l2); - // Inside the above function there is a check: - // if (math.dot(math.normalize(-vertex), axis) >= cosHalfAngle) - // return; - // So l1 and l2 can be zero vectors. - - // Check for division by 0 - if ((l1.x != 0.0f) && (l1.y != 0.0f) && (l1.z != 0.0f)) { var planeNormal = math.float3(0, 1, viewPlaneBottoms[m_ViewIndex]); var l1t = math.dot(-lightPositionVS, planeNormal) / math.dot(l1, planeNormal); var l1x = lightPositionVS + l1 * l1t; if (l1t >= 0 && l1t <= 1 && l1x.z >= near) ExpandY(l1x); } - - // Check for division by 0 - if ((l2.x != 0.0f) && (l2.y != 0.0f) && (l2.z != 0.0f)) { var planeNormal = math.float3(0, 1, viewPlaneTops[m_ViewIndex]); var l1t = math.dot(-lightPositionVS, planeNormal) / math.dot(l1, planeNormal); @@ -214,6 +202,8 @@ bool ConicPointIsValid(float3 p) => if (l1t >= 0 && l1t <= 1 && l1x.z >= near) ExpandY(l1x); } + m_TileYRange.Clamp(0, (short)(tileCount.y - 1)); + // Calculate tile plane ranges for cone. for (var planeIndex = m_TileYRange.start + 1; planeIndex <= m_TileYRange.end; planeIndex++) { @@ -225,25 +215,18 @@ bool ConicPointIsValid(float3 p) => var planeNormal = math.float3(0, 1, -planeY); // Intersect lines with y-plane and clip if needed. - // Check for division by 0 - if ((l1.x != 0.0f) && (l1.y != 0.0f) && (l1.z != 0.0f)) - { - var l1t = math.dot(-lightPositionVS, planeNormal) / math.dot(l1, planeNormal); - var l1x = lightPositionVS + l1 * l1t; - if (l1t >= 0 && l1t <= 1 && l1x.z >= near) planeRange.Expand((short)ViewToTileSpace(l1x).x); - } - // Check for division by 0 - if ((l2.x != 0.0f) && (l2.y != 0.0f) && (l2.z != 0.0f)) - { - var l2t = math.dot(-lightPositionVS, planeNormal) / math.dot(l2, planeNormal); - var l2x = lightPositionVS + l2 * l2t; - if (l2t >= 0 && l2t <= 1 && l2x.z >= near) planeRange.Expand((short)ViewToTileSpace(l2x).x); - } + var l1t = math.dot(-lightPositionVS, planeNormal) / math.dot(l1, planeNormal); + var l1x = lightPositionVS + l1 * l1t; + if (l1t >= 0 && l1t <= 1 && l1x.z >= near) planeRange.Expand((short)math.clamp(ViewToTileSpace(l1x).x, 0, tileCount.x - 1)); + + var l2t = math.dot(-lightPositionVS, planeNormal) / math.dot(l2, planeNormal); + var l2x = lightPositionVS + l2 * l2t; + if (l2t >= 0 && l2t <= 1 && l2x.z >= near) planeRange.Expand((short)math.clamp(ViewToTileSpace(l2x).x, 0, tileCount.x - 1)); if (IntersectCircleYPlane(planeY, baseCenter, lightDirectionVS, baseUY, baseVY, baseRadius, out var circleTile0, out var circleTile1)) { - if (circleTile0.z >= near) planeRange.Expand((short)ViewToTileSpace(circleTile0).x); - if (circleTile1.z >= near) planeRange.Expand((short)ViewToTileSpace(circleTile1).x); + if (circleTile0.z >= near) planeRange.Expand((short)math.clamp(ViewToTileSpace(circleTile0).x, 0, tileCount.x - 1)); + if (circleTile1.z >= near) planeRange.Expand((short)math.clamp(ViewToTileSpace(circleTile1).x, 0, tileCount.x - 1)); } if (coneIsClipping) @@ -253,53 +236,34 @@ bool ConicPointIsValid(float3 p) => var theta = FindNearConicYTheta(near, lightPositionVS, lightDirectionVS, r, coneU, coneV, y); var p0 = math.float3(EvaluateNearConic(near, lightPositionVS, lightDirectionVS, r, coneU, coneV, theta.x).x, y, near); var p1 = math.float3(EvaluateNearConic(near, lightPositionVS, lightDirectionVS, r, coneU, coneV, theta.y).x, y, near); - if (ConicPointIsValid(p0)) planeRange.Expand((short)ViewToTileSpace(p0).x); - if (ConicPointIsValid(p1)) planeRange.Expand((short)ViewToTileSpace(p1).x); + if (ConicPointIsValid(p0)) planeRange.Expand((short)math.clamp(ViewToTileSpace(p0).x, 0, tileCount.x - 1)); + if (ConicPointIsValid(p1)) planeRange.Expand((short)math.clamp(ViewToTileSpace(p1).x, 0, tileCount.x - 1)); } - // Do the sphere part of the spotlight - planeY = math.lerp(viewPlaneBottoms[m_ViewIndex], viewPlaneTops[m_ViewIndex], planeIndex * tileScaleInv.y); - GetSphereYPlaneHorizon(lightPositionVS, range, near, sphereClipRadius, planeY, out var sphereTile0, out var sphereTile1); - if (SpherePointIsValid(sphereTile0)) planeRange.Expand((short)ViewToTileSpace(sphereTile0).x); - if (SpherePointIsValid(sphereTile1)) planeRange.Expand((short)ViewToTileSpace(sphereTile1).x); - - // Only consider ranges that intersect the tiling extents. - // The logic in the below 'if' statement is a simplification of: - // !((planeRange.start < 0) && (planeRange.end < 0)) && !((planeRange.start > tileCount.x - 1) && (planeRange.end > tileCount.x - 1)) - if (((planeRange.start >= 0) || (planeRange.end >= 0)) && ((planeRange.start <= tileCount.x - 1) || (planeRange.end <= tileCount.x - 1))) - { - // Write to tile ranges above and below the plane. Note that at `m_Offset` we store Y-range. - var tileIndex = m_Offset + 1 + planeIndex; - planeRange.Clamp(0, (short)(tileCount.x - 1)); - tileRanges[tileIndex] = InclusiveRange.Merge(tileRanges[tileIndex], planeRange); - tileRanges[tileIndex - 1] = InclusiveRange.Merge(tileRanges[tileIndex - 1], planeRange); - } + // Write to tile ranges above and below the plane. Note that at `m_Offset` we store Y-range. + var tileIndex = m_Offset + 1 + planeIndex; + tileRanges[tileIndex] = InclusiveRange.Merge(tileRanges[tileIndex], planeRange); + tileRanges[tileIndex - 1] = InclusiveRange.Merge(tileRanges[tileIndex - 1], planeRange); } } - else // Sphere + + m_TileYRange.Clamp(0, (short)(tileCount.y - 1)); + + // Calculate tile plane ranges for sphere. + for (var planeIndex = m_TileYRange.start + 1; planeIndex <= m_TileYRange.end; planeIndex++) { - // Calculate tile plane ranges for sphere. - for (var planeIndex = m_TileYRange.start + 1; planeIndex <= m_TileYRange.end; planeIndex++) - { - var planeRange = InclusiveRange.empty; + var planeRange = InclusiveRange.empty; - var planeY = math.lerp(viewPlaneBottoms[m_ViewIndex], viewPlaneTops[m_ViewIndex], planeIndex * tileScaleInv.y); - GetSphereYPlaneHorizon(lightPositionVS, range, near, sphereClipRadius, planeY, out var sphereTile0, out var sphereTile1); - if (SpherePointIsValid(sphereTile0)) planeRange.Expand((short)ViewToTileSpace(sphereTile0).x); - if (SpherePointIsValid(sphereTile1)) planeRange.Expand((short)ViewToTileSpace(sphereTile1).x); - - // Only consider ranges that intersect the tiling extents. - // The logic in the below 'if' statement is a simplification of: - // !((planeRange.start < 0) && (planeRange.end < 0)) && !((planeRange.start > tileCount.x - 1) && (planeRange.end > tileCount.x - 1)) - if (((planeRange.start >= 0) || (planeRange.end >= 0)) && ((planeRange.start <= tileCount.x - 1) || (planeRange.end <= tileCount.x - 1))) - { - var tileIndex = m_Offset + 1 + planeIndex; - planeRange.Clamp(0, (short)(tileCount.x - 1)); - tileRanges[tileIndex] = InclusiveRange.Merge(tileRanges[tileIndex], planeRange); - tileRanges[tileIndex - 1] = InclusiveRange.Merge(tileRanges[tileIndex - 1], planeRange); - } - } + var planeY = math.lerp(viewPlaneBottoms[m_ViewIndex], viewPlaneTops[m_ViewIndex], planeIndex * tileScaleInv.y); + GetSphereYPlaneHorizon(lightPositionVS, range, near, sphereClipRadius, planeY, out var sphereTile0, out var sphereTile1); + if (SpherePointIsValid(sphereTile0)) planeRange.Expand((short)math.clamp(ViewToTileSpace(sphereTile0).x, 0, tileCount.x - 1)); + if (SpherePointIsValid(sphereTile1)) planeRange.Expand((short)math.clamp(ViewToTileSpace(sphereTile1).x, 0, tileCount.x - 1)); + + var tileIndex = m_Offset + 1 + planeIndex; + tileRanges[tileIndex] = InclusiveRange.Merge(tileRanges[tileIndex], planeRange); + tileRanges[tileIndex - 1] = InclusiveRange.Merge(tileRanges[tileIndex - 1], planeRange); } + tileRanges[m_Offset] = m_TileYRange; } @@ -559,19 +523,12 @@ void TileReflectionProbe(int index) var p = math.float3(x, planeY, 1); var pTS = isOrthographic ? ViewToTileSpaceOrthographic(p) : ViewToTileSpace(p); - planeRange.Expand((short)pTS.x); + planeRange.Expand((short)math.clamp(pTS.x, 0, tileCount.x - 1)); } - // Only consider ranges that intersect the tiling extents. - // The logic in the below 'if' statement is a simplification of: - // !((planeRange.start < 0) && (planeRange.end < 0)) && !((planeRange.start > tileCount.x - 1) && (planeRange.end > tileCount.x - 1)) - if (((planeRange.start >= 0) || (planeRange.end >= 0)) && ((planeRange.start <= tileCount.x - 1) || (planeRange.end <= tileCount.x - 1))) - { - var tileIndex = m_Offset + 1 + planeIndex; - planeRange.Clamp(0, (short)(tileCount.x - 1)); - tileRanges[tileIndex] = InclusiveRange.Merge(tileRanges[tileIndex], planeRange); - tileRanges[tileIndex - 1] = InclusiveRange.Merge(tileRanges[tileIndex - 1], planeRange); - } + var tileIndex = m_Offset + 1 + planeIndex; + tileRanges[tileIndex] = InclusiveRange.Merge(tileRanges[tileIndex], planeRange); + tileRanges[tileIndex - 1] = InclusiveRange.Merge(tileRanges[tileIndex - 1], planeRange); } tileRanges[m_Offset] = m_TileYRange; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs index 88051430d5f..6b5fced6132 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipeline.cs @@ -458,12 +458,14 @@ protected override void Render(ScriptableRenderContext renderContext, List /// Render context used to record commands during execution. - /// Camera to render. - static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera) + /// Camera to render. + /// True if this is the last base camera. + static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera, bool isLastBaseCamera) { using var profScope = new ProfilingScope(ProfilingSampler.Get(URPProfileId.RenderCameraStack)); @@ -1049,8 +1052,7 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera #endif // InitializeAdditionalCameraData needs to be initialized after the cameraTargetDescriptor is set because it needs to know the // msaa level of cameraTargetDescriptor and XR modifications. - InitializeAdditionalCameraData(baseCamera, baseCameraAdditionalData, !isStackedRendering, - baseCameraData); + InitializeAdditionalCameraData(baseCamera, baseCameraAdditionalData, !isStackedRendering, isLastBaseCamera, baseCameraData); #if VISUAL_EFFECT_GRAPH_0_0_1_OR_NEWER //It should be called before culling to prepare material. When there isn't any VisualEffect component, this method has no effect. @@ -1115,7 +1117,7 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera } #endif - InitializeAdditionalCameraData(overlayCamera, overlayAdditionalCameraData, false, overlayCameraData); + InitializeAdditionalCameraData(overlayCamera, overlayAdditionalCameraData, false, isLastBaseCamera, overlayCameraData); overlayCameraData.camera = overlayCamera; overlayCameraData.baseCamera = baseCamera; @@ -1129,8 +1131,8 @@ static void RenderCameraStack(ScriptableRenderContext context, Camera baseCamera #endif UpdateVolumeFramework(overlayCamera, overlayAdditionalCameraData); - bool lastCamera = i == lastActiveOverlayCameraIndex; - InitializeAdditionalCameraData(overlayCamera, overlayAdditionalCameraData, lastCamera, overlayCameraData); + bool isLastOverlayCamera = i == lastActiveOverlayCameraIndex; + InitializeAdditionalCameraData(overlayCamera, overlayAdditionalCameraData, isLastOverlayCamera, isLastBaseCamera, overlayCameraData); overlayCameraData.stackAnyPostProcessingEnabled = anyPostProcessingEnabled; overlayCameraData.stackLastCameraOutputToHDR = finalOutputHDR; @@ -1470,8 +1472,9 @@ static void InitializeStackedCameraData(Camera baseCamera, UniversalAdditionalCa /// Camera to initialize settings from. /// Additional camera data component to initialize settings from. /// True if this is the last camera in the stack and rendering should resolve to camera target. + /// True if the base camera is the last base camera. /// Settings to be initilized. - static void InitializeAdditionalCameraData(Camera camera, UniversalAdditionalCameraData additionalCameraData, bool resolveFinalTarget, UniversalCameraData cameraData) + static void InitializeAdditionalCameraData(Camera camera, UniversalAdditionalCameraData additionalCameraData, bool resolveFinalTarget, bool isLastBaseCamera, UniversalCameraData cameraData) { using var profScope = new ProfilingScope(Profiling.Pipeline.initializeAdditionalCameraData); @@ -1521,6 +1524,7 @@ static void InitializeAdditionalCameraData(Camera camera, UniversalAdditionalCam cameraData.renderer = renderer; cameraData.postProcessingRequiresDepthTexture = CheckPostProcessForDepth(cameraData); cameraData.resolveFinalTarget = resolveFinalTarget; + cameraData.isLastBaseCamera = isLastBaseCamera; // enable GPU occlusion culling in game and scene views only cameraData.useGPUOcclusionCulling = GPUResidentDrawer.IsInstanceOcclusionCullingEnabled() @@ -2428,8 +2432,8 @@ private static void SetupScreenMSAASamplesState(int cameraCount) #if UNITY_EDITOR protected override bool IsPreviewSupported(Camera camera, out string reason) { - if (camera != null - && camera.TryGetComponent(out var additionalData) + if (camera != null + && camera.TryGetComponent(out var additionalData) && additionalData.renderType == CameraRenderType.Overlay) { reason = "Overlay camera cannot be previewed directly.\nYou need to use a base camera instead."; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs index 358e993717c..b46cac64c71 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderPipelineCore.cs @@ -1516,6 +1516,21 @@ void SortCameras(Camera[] cameras) #endif + /// + /// Returns the index of the last base camera to draw ScreenSpace Overlay UI at the last base camera. + /// + private int GetLastBaseCameraIndex(List cameras) + { + int lastBaseCameraIndex = 0; + for (int i = 0; i < cameras.Count; i++) + { + cameras[i].TryGetComponent(out var baseCameraAdditionalData); + if (baseCameraAdditionalData?.renderType == CameraRenderType.Base) + lastBaseCameraIndex = i; + } + return lastBaseCameraIndex; + } + internal static GraphicsFormat MakeRenderTextureGraphicsFormat(bool isHdrEnabled, HDRColorBufferPrecision requestHDRColorBufferPrecision, bool needsAlpha) { if (isHdrEnabled) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs index 299382cae26..8f72501493a 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRenderer.cs @@ -814,6 +814,10 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re m_DeferredLights.HasNormalPrepass = renderPassInputs.requiresNormalsTexture; m_DeferredLights.ResolveMixedLightingMode(lightData); + + // Once the mixed lighting mode has been discovered, we know how many MRTs we need for the gbuffer. + // Subtractive mixed lighting requires shadowMask output, which is actually used to store unity_ProbesOcclusion values. + m_DeferredLights.CreateGbufferResources(); if (m_DeferredLights.UseFramebufferFetch) { @@ -1517,7 +1521,7 @@ public override void Setup(ScriptableRenderContext context, ref RenderingData re // We can explicitely render the overlay UI from URP when HDR output is not enabled. // SupportedRenderingFeatures.active.rendersUIOverlay should also be set to true. - if (shouldRenderUI && !outputToHDR) + if (shouldRenderUI && cameraData.isLastBaseCamera && !outputToHDR) { EnqueuePass(m_DrawOverlayUIPass); } @@ -1901,7 +1905,7 @@ void CreateCameraRenderTarget(ScriptableRenderContext context, ref RenderTexture cmd.Clear(); } - bool PlatformRequiresExplicitMsaaResolve() + internal static bool PlatformRequiresExplicitMsaaResolve() { #if UNITY_EDITOR // In the editor play-mode we use a Game View Render Texture, with diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs index a5f3f32157e..4a5812406b4 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererRenderGraph.cs @@ -1281,7 +1281,13 @@ private void OnMainRendering(RenderGraph renderGraph, ScriptableRenderContext co m_DeferredLights.UseFramebufferFetch = renderGraph.nativeRenderPassesEnabled; m_DeferredLights.HasNormalPrepass = isDepthNormalPrepass; m_DeferredLights.HasDepthPrepass = requiresDepthPrepass; + m_DeferredLights.ResolveMixedLightingMode(lightData); + // Once the mixed lighting mode has been discovered, we know how many MRTs we need for the gbuffer. + // Subtractive mixed lighting requires shadowMask output, which is actually used to store unity_ProbesOcclusion values. + m_DeferredLights.CreateGbufferResourcesRenderGraph(renderGraph, resourceData); + resourceData.gBuffer = m_DeferredLights.GbufferTextureHandles; + RecordCustomRenderGraphPasses(renderGraph, RenderPassEvent.BeforeRenderingGbuffer); @@ -1644,7 +1650,7 @@ private void OnAfterRendering(RenderGraph renderGraph) // We can explicitely render the overlay UI from URP when HDR output is not enabled. // SupportedRenderingFeatures.active.rendersUIOverlay should also be set to true. - bool shouldRenderUI = cameraData.rendersOverlayUI; + bool shouldRenderUI = cameraData.rendersOverlayUI && cameraData.isLastBaseCamera; bool outputToHDR = cameraData.isHDROutputActive; if (shouldRenderUI && !outputToHDR) { diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl index bf8dc36fc51..228b642a04a 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Clustering.hlsl @@ -6,6 +6,7 @@ #if USE_CLUSTER_LIGHT_LOOP #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl" +#define CLUSTER_HAS_REFLECTION_PROBES !(defined(_ENVIRONMENTREFLECTIONS_OFF) || (defined(_REFLECTION_PROBE_ATLAS_KEYWORD_DECLARED) && !defined(_REFLECTION_PROBE_ATLAS))) // Debug switches for disabling parts of the algorithm. Not implemented for mobile. #define URP_FP_DISABLE_ZBINNING 0 @@ -74,7 +75,7 @@ ClusterIterator ClusterInit(float2 normalizedScreenSpaceUV, float3 positionWS, i #else uint header = headerIndex == 0 ? ((URP_FP_PROBES_BEGIN - 1) << 16) : (((URP_FP_WORDS_PER_TILE * 32 - 1) << 16) | URP_FP_PROBES_BEGIN); #endif -#if MAX_LIGHTS_PER_TILE > 32 || (!defined(_ENVIRONMENTREFLECTIONS_OFF) && defined(_REFLECTION_PROBE_ATLAS)) +#if MAX_LIGHTS_PER_TILE > 32 || CLUSTER_HAS_REFLECTION_PROBES state.entityIndexNextMax = header; #else uint tileIndex = state.tileOffset; @@ -94,7 +95,7 @@ ClusterIterator ClusterInit(float2 normalizedScreenSpaceUV, float3 positionWS, i // internal bool ClusterNext(inout ClusterIterator it, out uint entityIndex) { -#if MAX_LIGHTS_PER_TILE > 32 || (!defined(_ENVIRONMENTREFLECTIONS_OFF) && defined(_REFLECTION_PROBE_ATLAS)) +#if MAX_LIGHTS_PER_TILE > 32 || CLUSTER_HAS_REFLECTION_PROBES uint maxIndex = it.entityIndexNextMax >> 16; [loop] while (it.tileMask == 0 && (it.entityIndexNextMax & 0xFFFF) <= maxIndex) { @@ -119,7 +120,7 @@ bool ClusterNext(inout ClusterIterator it, out uint entityIndex) bool hasNext = it.tileMask != 0; uint bitIndex = FIRST_BIT_LOW(it.tileMask); it.tileMask ^= (1 << bitIndex); -#if MAX_LIGHTS_PER_TILE > 32 || (!defined(_ENVIRONMENTREFLECTIONS_OFF) && defined(_REFLECTION_PROBE_ATLAS)) +#if MAX_LIGHTS_PER_TILE > 32 || CLUSTER_HAS_REFLECTION_PROBES // Subtract 32 because it stores the index of the _next_ word to fetch, but we want the current. // The upper 16 bits and bits representing values < 32 are masked out. The latter is due to the fact that it will be // included in what FIRST_BIT_LOW returns. diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl index 1e5f197911c..e647cbfd9e2 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/GlobalIllumination.hlsl @@ -249,7 +249,7 @@ half3 CalculateIrradianceFromReflectionProbes(half3 reflectVector, float3 positi { half3 irradiance = half3(0.0h, 0.0h, 0.0h); half mip = PerceptualRoughnessToMipmapLevel(perceptualRoughness); -#if USE_CLUSTER_LIGHT_LOOP && defined(_REFLECTION_PROBE_ATLAS) +#if USE_CLUSTER_LIGHT_LOOP && CLUSTER_HAS_REFLECTION_PROBES float totalWeight = 0.0f; uint probeIndex; ClusterIterator it = ClusterInit(normalizedScreenSpaceUV, positionWS, 1); diff --git a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl index 26b6e7feda8..81a0f97afa4 100644 --- a/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl +++ b/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl @@ -406,8 +406,8 @@ half AdditionalLightRealtimeShadow(int lightIndex, float3 positionWS, half3 ligh if (isPointLight) { // This is a point light, we have to find out which shadow slice to sample from - float cubemapFaceId = CubeMapFaceID(-lightDirection); - shadowSliceIndex += cubemapFaceId; + const int cubeFaceOffset = CubeMapFaceID(-lightDirection); + shadowSliceIndex += cubeFaceOffset; } #if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader index ba03b8fac6f..706bf061e95 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Lit-Default.shader @@ -5,7 +5,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" _MainTex("Diffuse", 2D) = "white" {} _MaskTex("Mask", 2D) = "white" {} _NormalMap("Normal Map", 2D) = "bump" {} - _ZWrite("ZWrite", Float) = 0 + [MaterialToggle] _ZWrite("ZWrite", Float) = 0 // Legacy properties. They're here so that materials using this shader can gracefully fallback to the legacy sprite shader. [HideInInspector] _Color("Tint", Color) = (1,1,1,1) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader index 6b296c439a2..57d613fe218 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLit.shader @@ -162,8 +162,8 @@ Shader "Universal Render Pipeline/Terrain/Lit" //#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS #pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH - #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE #pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3 + #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED #pragma multi_compile _ _CLUSTER_LIGHT_LOOP #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" @@ -175,10 +175,8 @@ Shader "Universal Render Pipeline/Terrain/Lit" #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING #pragma multi_compile _ DYNAMICLIGHTMAP_ON - #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Fog.hlsl" #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ProbeVolumeVariants.hlsl" #pragma multi_compile_fragment _ _GBUFFER_NORMALS_OCT - #pragma multi_compile_fragment _ _RENDER_PASS_ENABLED #pragma multi_compile_instancing #pragma instancing_options assumeuniformscaling nomatrices nolightprobe nolightmap diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader index cc7ddb8ad76..598142eafbb 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitAdd.shader @@ -48,8 +48,9 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Add Pass)" Pass { - Name "TerrainAddLit" + Name "ForwardLit" Tags { "LightMode" = "UniversalForward" } + ZWrite Off Blend One One HLSLPROGRAM #pragma target 3.0 @@ -104,7 +105,19 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Add Pass)" Name "GBuffer" Tags{"LightMode" = "UniversalGBuffer"} - Blend One One + ZWrite Off + Blend 0 One One + Blend 1 One One + Blend 2 One One + Blend 3 One One + // disable the features that aren't needed for add pass deferred rendering + Blend 4 Off + Blend 5 Off + Blend 6 Off + ColorMask RGB 0 // Don't write .a to RT0. + ColorMask 0 4 // Don't write to RT4~6 (depth as color, shadow mask, rendering layer) + ColorMask 0 5 + ColorMask 0 6 HLSLPROGRAM #pragma target 4.5 @@ -116,19 +129,20 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Add Pass)" #pragma vertex SplatmapVert #pragma fragment SplatmapFragment + //Note that the GBuffer pass in TerrainLitAdd disables all of the lighting related features + //as any deferred lighting is calculated in the base pass or later in the lighting shaders // ------------------------------------- // Universal Pipeline keywords #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN - //#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS - //#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS #pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH - #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE #pragma multi_compile _ _CLUSTER_LIGHT_LOOP #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" // ------------------------------------- // Unity defined keywords + #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING + #pragma multi_compile _ SHADOWS_SHADOWMASK #pragma multi_compile _ DIRLIGHTMAP_COMBINED #pragma multi_compile _ LIGHTMAP_ON #pragma multi_compile_fragment _ LIGHTMAP_BICUBIC_SAMPLING diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader index f053f0988f5..ce1846ca79e 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitBase.shader @@ -41,7 +41,7 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Base Pass)" #pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN #pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS #pragma multi_compile _ LIGHTMAP_SHADOW_MIXING - #pragma multi_compile _ SHADOWS_SHADOWMASKs + #pragma multi_compile _ SHADOWS_SHADOWMASK #pragma multi_compile _ _LIGHT_LAYERS #pragma multi_compile _ _CLUSTER_LIGHT_LOOP #pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS @@ -128,7 +128,6 @@ Shader "Hidden/Universal Render Pipeline/Terrain/Lit (Base Pass)" //#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS #pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING #pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH - #pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE #pragma multi_compile _ _CLUSTER_LIGHT_LOOP #include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl" diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl index 8228e7413f1..f64343f5c0d 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Terrain/TerrainLitPasses.hlsl @@ -485,7 +485,6 @@ void SplatmapFragment( smoothness *= alpha; return PackGBuffersBRDFData(brdfData, inputData, smoothness, color.rgb, occlusion); - #else half4 color = UniversalFragmentPBR(inputData, albedo, metallic, /* specular */ half3(0.0h, 0.0h, 0.0h), smoothness, occlusion, /* emission */ half3(0, 0, 0), alpha); diff --git a/Packages/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/.buginfo b/Packages/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/.buginfo index 716a23b6629..f9acb0adfcd 100644 --- a/Packages/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/.buginfo +++ b/Packages/com.unity.render-pipelines.universal/Tests/Editor/URPGlobalSettingsMigrationTests/.buginfo @@ -1 +1 @@ -area: SRP Workflow \ No newline at end of file +area: SRP Settings \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.universal/package.json b/Packages/com.unity.render-pipelines.universal/package.json index 35007ce4097..da9e5dda655 100644 --- a/Packages/com.unity.render-pipelines.universal/package.json +++ b/Packages/com.unity.render-pipelines.universal/package.json @@ -3,7 +3,7 @@ "description": "The Universal Render Pipeline (URP) is a prebuilt Scriptable Render Pipeline, made by Unity. URP provides artist-friendly workflows that let you quickly and easily create optimized graphics across a range of platforms, from mobile to high-end consoles and PCs.", "version": "17.1.0", "unity": "6000.1", - "displayName": "Universal RP", + "displayName": "Universal Render Pipeline", "dependencies": { "com.unity.render-pipelines.core": "17.1.0", "com.unity.shadergraph": "17.1.0", diff --git a/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md b/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md index 4148d50251c..c3307371138 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Normal-Unpack-Node.md @@ -28,7 +28,7 @@ The following example code represents one possible outcome of this node per **Sp ``` void Unity_NormalUnpack_float(float4 In, out float3 Out) { - Out = UnpackNormalmapRGorAG(In); + Out = UnpackNormalMapRGorAG(In); } ``` diff --git a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md index c76a9394b45..aade64504b2 100644 --- a/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md +++ b/Packages/com.unity.shadergraph/Documentation~/Sample-Texture-2D-Node.md @@ -116,7 +116,7 @@ float _SampleTexture2D_A = _SampleTexture2D_RGBA.a; ``` float4 _SampleTexture2D_RGBA = SAMPLE_TEXTURE2D(Texture, Sampler, UV); -_SampleTexture2D_RGBA.rgb = UnpackNormalmapRGorAG(_SampleTexture2D_RGBA); +_SampleTexture2D_RGBA.rgb = UnpackNormalMapRGorAG(_SampleTexture2D_RGBA); float _SampleTexture2D_R = _SampleTexture2D_RGBA.r; float _SampleTexture2D_G = _SampleTexture2D_RGBA.g; float _SampleTexture2D_B = _SampleTexture2D_RGBA.b; diff --git a/Packages/com.unity.shadergraph/Editor/AssetCallbacks/CreateShaderSubGraph.cs b/Packages/com.unity.shadergraph/Editor/AssetCallbacks/CreateShaderSubGraph.cs index eda117d75b1..3f1091a67ef 100644 --- a/Packages/com.unity.shadergraph/Editor/AssetCallbacks/CreateShaderSubGraph.cs +++ b/Packages/com.unity.shadergraph/Editor/AssetCallbacks/CreateShaderSubGraph.cs @@ -10,7 +10,7 @@ class CreateShaderSubGraph : EndNameEditAction public static void CreateMaterialSubGraph() { ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, CreateInstance(), - string.Format("New Shader Sub Graph.{0}", ShaderSubGraphImporter.Extension), null, null); + string.Format("New Shader Sub Graph.{0}", ShaderSubGraphImporter.Extension), ShaderSubGraphImporter.GetIcon(), null); } public override void Action(int instanceId, string pathName, string resourceFile) diff --git a/Packages/com.unity.shadergraph/Editor/Data/Graphs/GraphData.cs b/Packages/com.unity.shadergraph/Editor/Data/Graphs/GraphData.cs index e5e6f21fb4c..120d2c8d611 100644 --- a/Packages/com.unity.shadergraph/Editor/Data/Graphs/GraphData.cs +++ b/Packages/com.unity.shadergraph/Editor/Data/Graphs/GraphData.cs @@ -1371,12 +1371,33 @@ public void CollectShaderProperties(PropertyCollector collector, GenerationMode } } + private static void CollectSubgraphKeywordsR(KeywordCollector collector, SubGraphAsset asset) + { + if (asset is null || !asset.isValid || asset.isNull) + return; + + foreach(var keyword in asset.keywords) + { + collector.AddShaderKeyword(keyword); + } + foreach(var guid in asset.children) + { + var path = AssetDatabase.GUIDToAssetPath(guid); + var child = AssetDatabase.LoadAssetAtPath(path); + CollectSubgraphKeywordsR(collector, child); + } + } + public void CollectShaderKeywords(KeywordCollector collector, GenerationMode generationMode) { foreach (var keyword in keywords) { collector.AddShaderKeyword(keyword); } + foreach(var node in GetNodes()) + { + CollectSubgraphKeywordsR(collector, node.asset); + } // Alwways calculate permutations when collecting collector.CalculateKeywordPermutations(); @@ -2854,6 +2875,8 @@ public void OnEnable() node.OnEnable(); } + // OnEnable may be called multiple times. Ensure the callback only exists once. + ShaderGraphPreferences.onVariantLimitChanged -= OnKeywordChanged; ShaderGraphPreferences.onVariantLimitChanged += OnKeywordChanged; } diff --git a/Packages/com.unity.shadergraph/Editor/Data/SubGraph/SubGraphAsset.cs b/Packages/com.unity.shadergraph/Editor/Data/SubGraph/SubGraphAsset.cs index 023bdeb5d3f..797e52a61f5 100644 --- a/Packages/com.unity.shadergraph/Editor/Data/SubGraph/SubGraphAsset.cs +++ b/Packages/com.unity.shadergraph/Editor/Data/SubGraph/SubGraphAsset.cs @@ -83,6 +83,8 @@ class SubGraphAsset : ScriptableObject, ISerializationCallbackReceiver public string assetGuid; + public bool isNull => m_SubGraphData == null; + public ShaderGraphRequirements requirements; public string path; diff --git a/Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs b/Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs index b72980df4e5..93815cac066 100644 --- a/Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs +++ b/Packages/com.unity.shadergraph/Editor/Data/Util/GraphUtil.cs @@ -188,7 +188,7 @@ public static void CreateNewGraph() var graphItem = ScriptableObject.CreateInstance(); graphItem.targets = null; ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, graphItem, - string.Format("New Shader Graph.{0}", ShaderGraphImporter.Extension), null, null); + string.Format("New Shader Graph.{0}", ShaderGraphImporter.Extension), ShaderGraphImporter.GetIcon(), null); } public static void CreateNewGraphWithOutputs(Target[] targets, BlockFieldDescriptor[] blockDescriptors) @@ -197,7 +197,7 @@ public static void CreateNewGraphWithOutputs(Target[] targets, BlockFieldDescrip graphItem.targets = targets; graphItem.blocks = blockDescriptors; ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, graphItem, - string.Format("New Shader Graph.{0}", ShaderGraphImporter.Extension), null, null); + string.Format("New Shader Graph.{0}", ShaderGraphImporter.Extension), ShaderGraphImporter.GetIcon(), null); } public static bool TryGetMetadataOfType(this Shader shader, out T obj) where T : ScriptableObject diff --git a/Packages/com.unity.shadergraph/Editor/Drawing/MaterialGraphEditWindow.cs b/Packages/com.unity.shadergraph/Editor/Drawing/MaterialGraphEditWindow.cs index 9e60d1c425f..cfbdd073ee0 100644 --- a/Packages/com.unity.shadergraph/Editor/Drawing/MaterialGraphEditWindow.cs +++ b/Packages/com.unity.shadergraph/Editor/Drawing/MaterialGraphEditWindow.cs @@ -486,7 +486,7 @@ public void AssetWasDeleted() UpdateTitle(); } - public void UpdateTitle() + public void UpdateTitle(bool ignoreUnsavedChanges = false) { string assetPath = AssetDatabase.GUIDToAssetPath(selectedGuid); string shaderName = Path.GetFileNameWithoutExtension(assetPath); @@ -501,7 +501,7 @@ public void UpdateTitle() title = title + " (nothing loaded)"; else { - if (GraphHasChangedSinceLastSerialization()) + if (!ignoreUnsavedChanges && GraphHasChangedSinceLastSerialization()) { hasUnsavedChanges = true; // This is the message EditorWindow will show when prompting to close while dirty @@ -1260,6 +1260,7 @@ public void Initialize(string assetGuid) using (GraphLoadMarker.Auto()) { m_LastSerializedFileContents = File.ReadAllText(path, Encoding.UTF8); + graphObject = CreateInstance(); graphObject.hideFlags = HideFlags.HideAndDontSave; graphObject.graph = new GraphData @@ -1268,6 +1269,7 @@ public void Initialize(string assetGuid) isSubGraph = isSubGraph, messageManager = messageManager }; + MultiJson.Deserialize(graphObject.graph, m_LastSerializedFileContents); graphObject.graph.OnEnable(); graphObject.graph.ValidateGraph(); @@ -1281,8 +1283,7 @@ public void Initialize(string assetGuid) }; } - UpdateTitle(); - + UpdateTitle(ignoreUnsavedChanges: true); Repaint(); } catch (Exception) diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Processors/Generator.cs b/Packages/com.unity.shadergraph/Editor/Generation/Processors/Generator.cs index 926f78cab85..76787bd929e 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Processors/Generator.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Processors/Generator.cs @@ -395,9 +395,6 @@ void GenerateSubShader(int targetIndex, SubShaderDescriptor descriptor, Property if (m_Mode == GenerationMode.Preview) activeFields.baseInstance.Add(Fields.IsPreview); - if (m_OutputNode == null && m_Mode == GenerationMode.Preview) - activeFields.baseInstance.Add(Fields.IsMainPreview); - // Check masternode fields for valid passes if (pass.TestActive(activeFields)) GenerateShaderPass(targetIndex, pass.descriptor, activeFields, activeBlockDescriptors.Select(x => x.descriptor).ToList(), subShaderProperties); @@ -1070,6 +1067,9 @@ void ProcessStackForPass(ContextData contextData, BlockFieldDescriptor[] passBlo { graphDefines.AppendLine("#define SHADERPASS {0}", pass.referenceName); + if (m_OutputNode == null && m_Mode == GenerationMode.Preview) + graphDefines.AppendLine("#define SHADERGRAPH_PREVIEW_MAIN"); + if (pass.defines != null) { foreach (DefineCollection.Item define in pass.defines) diff --git a/Packages/com.unity.shadergraph/Editor/Generation/TargetResources/Fields.cs b/Packages/com.unity.shadergraph/Editor/Generation/TargetResources/Fields.cs index ebc1b330e6b..153a9ddd457 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/TargetResources/Fields.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/TargetResources/Fields.cs @@ -19,7 +19,6 @@ internal static class Fields public static FieldDescriptor BlendAlpha = new FieldDescriptor(kBlendMode, "Alpha", "_BLENDMODE_ALPHA 1"); // URP: only sprite targets, vfx: HDRP? public static FieldDescriptor DoubleSided = new FieldDescriptor(string.Empty, "DoubleSided", "_DOUBLE_SIDED 1"); // URP: only sprite targets, duplicated in HD public static FieldDescriptor IsPreview = new FieldDescriptor(string.Empty, "isPreview", "SHADERGRAPH_PREVIEW"); - public static FieldDescriptor IsMainPreview = new FieldDescriptor(string.Empty, "isMainPreview", "SHADERGRAPH_PREVIEW_MAIN"); public static FieldDescriptor LodCrossFade = new FieldDescriptor(string.Empty, "LodCrossFade", "_LODCROSSFADE 1"); // HD only public static FieldDescriptor AlphaToMask = new FieldDescriptor(string.Empty, "AlphaToMask", "_ALPHATOMASK_ON 1"); // HD only diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shadows.hlsl b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shadows.hlsl index fd146904f3c..016c7e75d2c 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shadows.hlsl +++ b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/ShaderLibrary/Shadows.hlsl @@ -326,8 +326,8 @@ half AdditionalLightRealtimeShadow(int lightIndex, float3 positionWS, half3 ligh if (isPointLight) { // This is a point light, we have to find out which shadow slice to sample from - float cubemapFaceId = CubeMapFaceID(-lightDirection); - shadowSliceIndex += cubemapFaceId; + const int cubeFaceOffset = CubeMapFaceID(-lightDirection); + shadowSliceIndex += cubeFaceOffset; } #if USE_STRUCTURED_BUFFER_FOR_LIGHT_DATA diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomTextureGraph.hlsl b/Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomTextureGraph.hlsl index 64a005287e7..02a40f66e23 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomTextureGraph.hlsl +++ b/Packages/com.unity.shadergraph/Editor/Generation/Targets/CustomRenderTexture/CustomTextureGraph.hlsl @@ -8,7 +8,7 @@ float3 LinearToSRGB( float3 c ) { return c; } // Unpack normal as DXT5nm (1, y, 1, x) or BC5 (x, y, 0, 1) // Note neutral texture like "bump" is (0, 0, 1, 1) to work with both plain RGB normal and DXT5nm/BC5 -float3 UnpackNormalmapRGorAG(float4 packednormal) +float3 UnpackNormalMapRGAG(float4 packednormal) { // This do the trick packednormal.x *= packednormal.w; @@ -24,7 +24,7 @@ inline float3 UnpackNormal(float4 packednormal) #if defined(UNITY_NO_DXT5nm) return packednormal.xyz * 2 - 1; #else - return UnpackNormalmapRGorAG(packednormal); + return UnpackNormalMapRGAG(packednormal); #endif } diff --git a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs index aae75129fcc..2eaa4ae3129 100644 --- a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs +++ b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs @@ -64,6 +64,8 @@ fixed4 frag (v2f i) : SV_Target Fallback Off }"; + public static Texture2D GetIcon() => EditorGUIUtility.IconContent(IconBasePath)?.image as Texture2D; + [SuppressMessage("ReSharper", "UnusedMember.Local")] static string[] GatherDependenciesFromSourceFile(string assetPath) { @@ -237,11 +239,7 @@ public override void OnImportAsset(AssetImportContext ctx) mainObject = ShaderUtil.CreateShaderAsset(ctx, k_ErrorShader, false); } - if (EditorGUIUtility.IconContent(IconBasePath)?.image is Texture2D icon) - { - ctx.AddObjectToAsset("MainAsset", mainObject, icon); - } - + ctx.AddObjectToAsset("MainAsset", mainObject, GetIcon()); ctx.SetMainObject(mainObject); var graphDataReadOnly = new GraphDataReadOnly(graph); diff --git a/Packages/com.unity.shadergraph/Editor/Importers/ShaderSubGraphImporter.cs b/Packages/com.unity.shadergraph/Editor/Importers/ShaderSubGraphImporter.cs index 04001304d70..46b3d9205cc 100644 --- a/Packages/com.unity.shadergraph/Editor/Importers/ShaderSubGraphImporter.cs +++ b/Packages/com.unity.shadergraph/Editor/Importers/ShaderSubGraphImporter.cs @@ -25,6 +25,8 @@ class ShaderSubGraphImporter : ScriptedImporter public const string Extension = "shadersubgraph"; const string IconBasePath = "Packages/com.unity.shadergraph/Editor/Resources/Icons/sg_subgraph_icon.png"; + public static Texture2D GetIcon() => EditorGUIUtility.IconContent(IconBasePath)?.image as Texture2D; + [SuppressMessage("ReSharper", "UnusedMember.Local")] static string[] GatherDependenciesFromSourceFile(string assetPath) { @@ -113,11 +115,7 @@ public override void OnImportAsset(AssetImportContext ctx) messageManager.ClearAll(); } - if (EditorGUIUtility.IconContent(IconBasePath)?.image is Texture2D icon) - { - ctx.AddObjectToAsset("MainAsset", graphAsset, icon); - } - + ctx.AddObjectToAsset("MainAsset", graphAsset, GetIcon()); ctx.SetMainObject(graphAsset); var metadata = ScriptableObject.CreateInstance(); diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Artistic/Blend.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/Artistic/Blend.shadergraph index 6bb2383091d..80b5df95128 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Artistic/Blend.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/Artistic/Blend.shadergraph @@ -1213,7 +1213,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -1310,7 +1310,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -2032,7 +2032,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -2605,7 +2605,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -2832,7 +2832,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -3202,7 +3202,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -6190,7 +6190,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -7093,7 +7093,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/SplitTextureTransform.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/SplitTextureTransform.shadergraph index c67511b81f7..a6b5972b209 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/SplitTextureTransform.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/SplitTextureTransform.shadergraph @@ -2013,7 +2013,7 @@ "m_SerializableColors": [] }, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" } } diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/Time.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/Time.shadergraph index 822eb01a976..d83d347db20 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/Time.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/Time.shadergraph @@ -1637,7 +1637,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -5662,7 +5662,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -6747,7 +6747,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/UV.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/UV.shadergraph index c8fc67d06a8..6e185e2486b 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/UV.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/Input/UV.shadergraph @@ -3654,7 +3654,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Add.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Add.shadergraph index 34ac2de28d0..77f1a92c6da 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Add.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Add.shadergraph @@ -317,7 +317,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Lerp.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Lerp.shadergraph index 56f7bb54f0b..20b3c482e95 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Lerp.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Lerp.shadergraph @@ -2808,7 +2808,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Subtract.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Subtract.shadergraph index f77b9b4e2a9..f0f3b19312b 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Subtract.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/Math/Subtract.shadergraph @@ -293,7 +293,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/FlipbookTest.png.meta b/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/FlipbookTest.png.meta index c4fae1489b2..8e65613209a 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/FlipbookTest.png.meta +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/FlipbookTest.png.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: a7ff24a0f3bd4dd4aaf9265ba8da09ba +guid: b8aa35b1f4ce5ee5bbf0376cb9eb10cb TextureImporter: internalIDToNameTable: [] externalObjects: {} diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/SmallNoiseMask.tga b/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/SmallNoiseMask.tga deleted file mode 100644 index 3b309c51fcb..00000000000 Binary files a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/SmallNoiseMask.tga and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/flowmap.png b/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/flowmap.png deleted file mode 100644 index d3abf5bc620..00000000000 Binary files a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/flowmap.png and /dev/null differ diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Flipbook.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Flipbook.shadergraph index 7f3471ea1cb..a3c93edd0c0 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Flipbook.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Flipbook.shadergraph @@ -1099,7 +1099,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -2527,7 +2527,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -3236,7 +3236,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -4055,7 +4055,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/PolarCoordinates.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/PolarCoordinates.shadergraph index 17c7cbf8ca6..5b297623e42 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/PolarCoordinates.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/PolarCoordinates.shadergraph @@ -2730,7 +2730,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 @@ -3130,7 +3130,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/RadialShear.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/RadialShear.shadergraph index 57963a28a81..91d838751dd 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/RadialShear.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/RadialShear.shadergraph @@ -1238,7 +1238,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Rotate.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Rotate.shadergraph index 5d191c99c20..6e825adc6bd 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Rotate.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Rotate.shadergraph @@ -1972,7 +1972,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Spherize.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Spherize.shadergraph index 98d0765d0fa..ad4576ac23b 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Spherize.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Spherize.shadergraph @@ -1585,7 +1585,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Triplanar.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Triplanar.shadergraph index 34817c3c40e..0b79f39716b 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Triplanar.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Triplanar.shadergraph @@ -1709,7 +1709,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Twirl.shadergraph b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Twirl.shadergraph index 274eac097fa..ba1622c4ec2 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Twirl.shadergraph +++ b/Packages/com.unity.shadergraph/Samples~/NodeReference/UV/Twirl.shadergraph @@ -2479,7 +2479,7 @@ "m_StageCapability": 3, "m_BareResource": false, "m_Texture": { - "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"a7ff24a0f3bd4dd4aaf9265ba8da09ba\",\"type\":3}}", + "m_SerializedTexture": "{\"texture\":{\"fileID\":2800000,\"guid\":\"b8aa35b1f4ce5ee5bbf0376cb9eb10cb\",\"type\":3}}", "m_Guid": "" }, "m_DefaultType": 0 diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Blackboard.md b/Packages/com.unity.visualeffectgraph/Documentation~/Blackboard.md index d459a5eaf42..cd110c9bc8d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Blackboard.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Blackboard.md @@ -23,8 +23,6 @@ For each property the following options are available: To use a property in the graph you can either drag and drop it in the graph, or find it by name in the node search. You can use the same property as many times as you want in the graph (even in different systems) -![Blackboard-Properties](Images/blackboard-properties.png) - ### Add a property To add a property, click the plus `+` button in the top-left corner of the Blackboard. A menu will open offering two options: **Property** and [**Attribute**](#attributes). Choose the **Property** option and then select the desired type. @@ -57,17 +55,10 @@ The value is either the default value set in the blackboard or the overriden val You can expand them to use a sub-member of the property value. -![PropertyNode](Images/PropertyNode.png) -
On the left are unexposed properties, on the right exposed properties (notice the green dot)
- -
- ### Exposed Properties in the Inspector When you enable the **Exposed** setting for a property, the property becomes visible in the **Properties** section of the Inspector for a [Visual Effect](VisualEffectComponent.md) component. Properties appear in the same order and categories that you set in the Blackboard. -![Properties-Inspector](Images/blackboard-properties-inspector.png) - #### Overriding property values per GameObject For each VFX component in the scene, you can override any exposed property value. @@ -81,7 +72,7 @@ The blackboard now lets you manage both built-in attributes and custom attribute The icon on the left represents the type of the attribute. In the screenshot below, we can see that the attribute is a `Vector3` -![Attribute](Images/blackboard-attribute.png) +![An attribute in the Custom Attributes list with a yellow three-axes icon that represents a Vector3.](Images/blackboard-attribute.png) To use an attribute in the graph you can drag&drop it in the graph. * If you drop it in a context, it will create a `Set Attribute` block. @@ -89,8 +80,6 @@ To use an attribute in the graph you can drag&drop it in the graph. You can also find the attribute in the node search window. -![](Images/blackboard-dragdrop-attribute.gif) - ### Custom Attributes For each custom attribute you can: - **Rename**: all usage of the custom attribute will be updated automatically @@ -105,8 +94,6 @@ For each built-in attribute you have the follwing information: - Access (is it read-only or not) - Description -![Built-in Attributes](Images/blackboard-builtin-attributes.png) - ### Custom HLSL To avoid typo when writing [custom HLSL](CustomHLSL-Common.md) code, you can drag&drop an attribute inside the HLSL code editor (in Unity). @@ -123,8 +110,6 @@ This applies for both custom and built-in attributes. - **Select unused**: when right clicking on categories (or at the top of the blackboard) a context menu offers options to select unused properties or unused custom attributes. This can be helpful when you want to cleanup your VFX. -- ![Select Unused](Images/blackboard-unused.png) - > [!TIP] > A handy workflow for custom attribute is to duplicate a built-in attribute with `Ctrl + D` (macOS: `Cmd + D`). This will create a new custom attribute with a name like `orignalname_1` and with same type. @@ -135,12 +120,8 @@ Near the top of the blackboard, there are three tabs which let you filter which - **Properties**: Only properties are displayed - **Attributes**: Only attributes are displayed -![Filter](Images/blackboard-filter.png) - ## Subgraph Category When dealing with a subgraph, the blackboard lets you specify a category that will be used in the node search. To change the category, double-click the sub-title of the blackboard and enter the desired category name, then validate using the `Return` key To create multiple category levels, use the `/` character. For example, `MySubgraphs/Math`. - -![Blackboard-Category](Images/blackboard-subgraph.png) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CameraFade.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CameraFade.md index c25554b8f14..2b5ad64e6c9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CameraFade.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CameraFade.md @@ -4,8 +4,6 @@ Menu Path : **Output > Camera Fade** The **Camera Fade** Block fades out particles when they are too close to the near plane of the camera. It calculates an interpolation of the current depth between provided its **Faded Distance** and the **Visible Distance** properties to determine the amount of fade to apply. To fade particles, this Block modifies their color and/or alpha attributes. -![](Images/Block-CameraFadeExample.gif) - If you input a **Faded Distance** that is greater than the **Visible Distance**, the result is that particles fade in as they come close to the camera, rather than fade out as they come close. ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithAABox.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithAABox.md deleted file mode 100644 index ab0f0a0d462..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithAABox.md +++ /dev/null @@ -1,32 +0,0 @@ -# Collide with AABox - -Menu Path : **Collision > Collide with AABox** - -The **Collide with AABox** Block defines an axis-aligned box volume that particles collide with. - -![](Images/Block-CollideWithAABoxMain.png) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Update](Context-Update.md) - -## Block settings - -| **Setting** | **Type** | **Description** | -| ----------------- | -------- | ------------------------------------------------------------ | -| **Mode** | Enum | The collision shape mode. The options are:
• **Solid**: Particles cannot enter the collider.
• **Inverted**: Particles cannot leave the collider. The collider becomes a volume that the particles cannot exit. | -| **Radius Mode** | Enum | The mode that determines the collision radius of each particle. The options are:
• **None**: Particles have a radius of zero.
• **From Size**: Particles inherit their radius from their individual sizes.
• **Custom**: Allows you to set the radius of the particles to a specific value. | -| **Rough Surface** | Bool | Toggles whether or not the collider simulates a rough surface. When enabled, Unity adds randomness to the direction in which particles bounce back to simulate collision with a rough surface. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ----------------- | ---------------------- | ------------------------------------------------------------ | -| **Box** | [AABox](Type-AABox.md) | The axis-aligned box that specifies the center position and size of the collision volume. | -| **Bounce** | Float | The amount of bounce to apply to particles after a collision. A value of 0 means the particles do not bounce. A value of 1 means particles bounce away with the same speed they impacted with. | -| **Friction** | Float | The speed that particles lose during collision. The minimum value is 0. | -| **Lifetime Loss** | Float | The proportion of life a particle loses after collision. | -| **Roughness** | Float | The amount to randomly adjust the direction of a particle after it collides with the surface.
This property only appears when you enable **Rough Surface**. | -| **Radius** | Float | The radius of the particle this Block uses for collision detection.
This property only appears when **Radius Mode** is set to **Custom**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithCone.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithCone.md deleted file mode 100644 index 649ab3e1130..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithCone.md +++ /dev/null @@ -1,30 +0,0 @@ -# Collide with Cone - -Menu Path : **Collision > Collide with Cone** - -The **Collide with Cone** Block defines a truncated cone volume for particles to collide with. - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Update](Context-Update.md) - -## Block settings - -| **Setting** | **Type** | **Description** | -| ----------------- | -------- | ------------------------------------------------------------ | -| **Mode** | Enum | The collision shape mode. The options are:
• **Solid**: Particles cannot enter the collider.
• **Inverted**: Particles cannot leave the collider. The collider becomes a volume that the particles cannot exit. | -| **Radius Mode** | Enum | The mode that determines the collision radius of each particle. The options are:
• **None**: Particles have a radius of zero.
• **From Size**: Particles inherit their radius from their individual sizes.
• **Custom**: Allows you to set the radius of the particles to a specific value. | -| **Rough Surface** | Bool | Toggles whether or not the collider simulates a rough surface. When you enable this property, Unity adds randomness to the direction in which particles bounce back to simulate collision with a rough surface. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ----------------- | -------------------- | ------------------------------------------------------------ | -| **Cone** | [Cone](Type-Cone.md) | The cone that specifies the transform position, radiuses, and height of the collision volume. | -| **Bounce** | Float | The amount of bounce to apply to particles after a collision. A value of 0 means the particles do not bounce. A value of 1 means particles bounce away with the same speed they impacted with. | -| **Friction** | Float | The speed that particles lose during collision. The minimum value is 0. | -| **Lifetime Loss** | Float | The proportion of life a particle loses after collision. | -| **Roughness** | Float | The amount to randomly adjust the direction of a particle after it collides with the surface.
This property only appears when you enable **Rough Surface**. | -| **Radius** | Float | The radius of the particle this Block uses for collision detection.
This property only appears when **Radius Mode** is set to **Custom**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithPlane.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithPlane.md deleted file mode 100644 index 727de1e3361..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithPlane.md +++ /dev/null @@ -1,32 +0,0 @@ -# Collide with Plane - -Menu Path : **Collision > Collide with Plane** - -The **Collide with Plane** Block defines a flat plane with infinite extends for particles to collide with. - -![](Images/Block-CollideWithPlaneMain.png) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Update](Context-Update.md) - -## Block settings - -| **Setting** | **Type** | **Description** | -| ----------------- | -------- | ------------------------------------------------------------ | -| **Mode** | Enum | The collision shape mode. The options are:
• **Solid**: Particles collide with the plane when travelling in an opposing direction to the plane's normal.
• **Inverted**: Inverts the normal direction of the plane for the purpose of collisions. This means particles collide with the plane when travelling in a direction not opposing the plane's normal. | -| **Radius Mode** | Enum | The mode that determines the collision radius of each particle. The options are:
• **None**: Particles have a radius of zero.
• **From Size**: Particles inherit their radius from their individual sizes.
• **Custom**: Allows you to set the radius of the particles to a specific value. | -| **Rough Surface** | Bool | Toggles whether or not the collider simulates a rough surface. When enabled, Unity adds randomness to the direction in which particles bounce back to simulate collision with a rough surface. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ----------------- | ---------------------- | ------------------------------------------------------------ | -| **Plane** | [Plane](Type-Plane.md) | The plane that specifies the center position and normal of the collision plane. | -| **Bounce** | Float | The amount of bounce to apply to particles after a collision. A value of 0 means the particles do not bounce. A value of 1 means particles bounce away with the same speed they impacted with. | -| **Friction** | Float | The speed that particles lose during collision. The minimum value is 0. | -| **Lifetime Loss** | Float | The proportion of life a particle loses after collision. | -| **Roughness** | Float | The amount to randomly adjust the direction of a particle after it collides with the surface.
This property only appears when you enable **Rough Surface**. | -| **Radius** | Float | The radius of the particle this Block uses for collision detection.
This property only appears when **Radius Mode** is set to **Custom**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithSignedDistanceField.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithSignedDistanceField.md deleted file mode 100644 index 0ad536c940b..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithSignedDistanceField.md +++ /dev/null @@ -1,44 +0,0 @@ -# Collide with Signed Distance Field - -Menu Path : **Collision > Collide with Signed Distance Field** - -The **Collide with Signed Distance Field** Block allows you to create more complex collisions by using an SDF (signed distance field) Asset to represent the shape of the object. This is useful for precise complex collision with predetermined Assets. - -![](Images/Block-CollideWithSDFMain.png) - -To generate a signed distance field Asset, use an external DCC tool. - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Update](Context-Update.md) - -## Block settings - -| **Setting** | **Type** | **Description** | -| ----------------- | -------- | ------------------------------------------------------------ | -| **Mode** | Enum | The collision shape mode. The options are:
• **Solid**: Particles cannot enter the collider.
• **Inverted**: Particles cannot leave the collider. The collider becomes a volume that the particles cannot exit. | -| **Radius Mode** | Enum | The mode that determines the collision radius of each particle. The options are:
• **None**: Particles have a radius of zero.
• **From Size**: Particles inherit their radius from their individual sizes.
• **Custom**: Allows you to set the radius of the particles to a specific value. | -| **Rough Surface** | Bool | Toggles whether or not the collider simulates a rough surface. When enabled, Unity adds randomness to the direction in which particles bounce back to simulate collision with a rough surface. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ------------------- | ------------------------------ | ------------------------------------------------------------ | -| **Distance Field** | SDF | The signed distance field Asset that specifies the shape of the collision volume. | -| **Field Transform** | [Transform](Type-Transform.md) | The Transform which determines the position, size, and rotation of the **Distance Field**. | -| **Bounce** | Float | The amount of bounce to apply to particles after a collision. A value of 0 means the particles do not bounce. A value of 1 means particles bounce away with the same speed they impacted with. | -| **Friction** | Float | The speed that particles lose during collision. The minimum value is 0. | -| **Lifetime Loss** | Float | The proportion of life a particle loses after collision. | -| **Roughness** | Float | The amount to randomly adjust the direction of a particle after it collides with the surface.
This property only appears when you enable **Rough Surface**. | -| **Radius** | Float | The radius of the particle this Block uses for collision detection.
This property only appears when **Radius Mode** is set to **Custom**. | - -| | | | -| ---- | ---- | ---- | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithSphere.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithSphere.md deleted file mode 100644 index a65dc8363dd..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollideWithSphere.md +++ /dev/null @@ -1,41 +0,0 @@ -# Collide with Sphere - -Menu Path : **Collision > Collide with Sphere** - -The **Collide with Sphere** Block is used to define a spherical volume for particles to collide with. - -![](Images/Block-CollideWithSphereMain.png) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Update](Context-Update.md) - -## Block settings - -| **Setting** | **Type** | **Description** | -| ----------------- | -------- | ------------------------------------------------------------ | -| **Mode** | Enum | The collision shape mode. The options are:
• **Solid**: Particles cannot enter the collider.
• **Inverted**: Particles cannot leave the collider. The collider becomes a volume that the particles cannot exit. | -| **Radius Mode** | Enum | The mode that determines the collision radius of each particle. The options are:
• **None**: Particles have a radius of zero.
• **From Size**: Particles inherit their radius from their individual sizes.
• **Custom**: Allows you to set the radius of the particles to a specific value. | -| **Rough Surface** | Bool | Toggles whether or not the collider simulates a rough surface. When enabled, Unity adds randomness to the direction in which particles bounce back to simulate collision with a rough surface. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ----------------- | ------------------------ | ------------------------------------------------------------ | -| **Sphere** | [Sphere](Type-Sphere.md) | The sphere that specifies the center position and radius of the collision volume. | -| **Bounce** | Float | The amount of bounce to apply to particles after a collision. A value of 0 means the particles do not bounce. A value of 1 means particles bounce away with the same speed they impacted with. | -| **Friction** | Float | The speed that particles lose during collision. The minimum value is 0. | -| **Lifetime Loss** | Float | The proportion of life a particle loses after collision. | -| **Roughness** | Float | The amount to randomly adjust the direction of a particle after it collides with the surface.
This property only appears when you enable **Rough Surface**. | -| **Radius** | Float | The radius of the particle this Block uses for collision detection.
This property only appears when **Radius Mode** is set to **Custom**. | - -| | | | -| ---- | ---- | ---- | -| | | | -| | | | -| | | | -| | | | -| | | | -| | | | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md new file mode 100644 index 00000000000..a412b49a17d --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Collision-LandingPage.md @@ -0,0 +1,13 @@ +# Collision Blocks reference + +Explore the properties of Collision Blocks to configure how particles collide with shapes or the depth buffer. + +| **Page** | **Description** | +|-|-| +| [Collision Shape](Block-CollisionShape.md) | Explore the properties of the Collision Shape Block. | +| [Collision Depth Buffer](Block-CollideWithDepthBuffer.md) | Explore the properties of the Collision Depth Buffer Block. | + +## Additional resources + +- [Signed Distance Fields in the Visual Effect Graph](sdf-in-vfx-graph.md) +- [VFX Graph Learning Templates](https://www.youtube.com/watch?v=DKVdg8DsIVY) on the Unity YouTube channel diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md new file mode 100644 index 00000000000..8bc2cf06bf2 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-CollisionShape.md @@ -0,0 +1,63 @@ + +# Collision Shape Block reference + +The Collision Shape Block defines a shape that particles collide with. + +![A cascade of particles falls onto the upper surface of a cube and cascades down the side.](Images/Block-CollideWithAABoxMain.png) + +![A car-shaped signed distance field made up of particles.](Images/Block-CollideWithSDFMain.png) + +## Block compatibility + +You can add the Collision Shape Block to the following Contexts: + +- [Initialize](Context-Initialize.md) +- [Update](Context-Update.md) + +To add a Collision Shape Block to your graph, [open the menu for adding a graph element](VisualEffectGraphWindow.md#adding-graph-elements) then select **Collision** > **Collision Shape**. + +## Block settings + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Shape** | Enum | Sets the shape for particles to collide with. For more information, refer to the [**Shape dropdown**](#shape-dropdown) section. | +| **Mode** | Enum | Specifies how particles interact with the collider. The options are:
  • Solid: Stops particles entering the collider. If you set Shape to Plane, particles collide with the plane when they travel away from the normal of the plane.
  • Inverted: Stops particles leaving the shape volume. If you set Shape to Plane, particles collide with the plane when they travel in the same direction as the normal of the plane.
| +| **Radius Mode** | Enum | Sets the collision radius of the particles. The options are:
  • None: Sets the collision radius to zero.
  • From Size: Sets the collision radius for each particle to its individual size.
  • Custom: Sets the collision radius to the value of **Radius** in the [Block properties](#block-properties).
| +| **Collision Attributes** | Enum | Specifies whether Unity stores data in the collision attributes of particles. The options are:
  • No Write: Doesn't write or store collision attributes.
  • Write Punctual Contact only: Updates the collision attribute only when a specific, single-point collision occurs. This prevents Unity updating the collision attributes repeatedly when a particle slides along a collision shape. To increase or decrease how much a particle needs to bounce off a shape to cause a collision response, enable **Override Bounce Threshold** in the Inspector window.
  • Write Always: Updates the collision attribute every time a collision occurs.
| +| **Rough Surface** | Boolean | Adds randomness to the direction in which particles bounce back, to simulate collision with a rough surface. To set the roughness of the surface, use the **Roughness** property. | + + +### Shape dropdown + +| **Shape** | **Description** | +|-|-| +| **Sphere**| Sets the collision shape as a spherical volume. | +| **Oriented Box** | Sets the collision shape as an axis-aligned box volume. | +| **Cone**| Sets the collision shape as truncated cone volume.| +| **Plane** | Sets the collision shape as a flat plane with infinite length and width. | +| **Signed Distance Field** | Sets the collision shape as a signed distance field (SDF), so you can create precise complex collision with an existing asset. To generate a signed distance field asset, use the [SDF Bake Tool](sdf-bake-tool.md) or an external digital content creation (DCC) tool. | + +## Block properties + +| **Input** | **Type** | **Description**| +|-|-|-| +| **Sphere**| [Sphere](Type-Sphere.md) | Sets the sphere that particles collide with. This property is available only if you set **Shape** to **Sphere**. | +| **Box** | [AABox](Type-AABox.md) | Sets the axis-aligned box that particles collide with. This property is available only if you set **Shape** to **Box**. | +| **Cone**| [Cone](Type-Cone.md) | Sets the cone that particles collide with. This property is available only if you set **Shape** to **Cone**. | +| **Plane** | [Plane](Type-Plane.md) | Sets the plane that particles collide with. This property is available only if you set **Shape** to **Plane**. | +| **Distance Field**| Signed distance field | Sets the signed distance field (SDF) that particles collide with. This property is available only if you set **Shape** to **Signed Distance Field**. | +| **Field Transform** | [Transform](Type-Transform.md) | Sets the position, size, and rotation of the **Distance Field**. This property is available only if you set **Shape** to **Signed Distance Field**. | +| **Bounce**| Float | Sets how strongly particles bounce away from a collision. A value of 0 means the particles don't bounce. A value of 1 means particles bounce away at the same speed they collided at. | +| **Friction**| Float | Sets how much speed particles lose during a collision. The minimum value is 0. | +| **Bounce Speed Threshold** | Float | Sets the minimum speed for a bounce that causes Unity to update the collision attribute for a particle, if you set **Collision Attributes** to **Write Punctual Contact Only**. The default value is 1. This property is available only if you enable **Override Bounce Threshold** in the Inspector window. | +| **Lifetime Loss** | Float | Sets how much life particles lose after a collision. | +| **Radius**| Float | Sets the collision radius of the particles. This property is available only if you set **Radius Mode** to **Custom**. | +| **Roughness** | Float | Sets the roughness of the surface, by adjusting how randomly particles change direction after they collide with the surface. This property is available only if you enable **Rough Surface**. | + +## Inspector window properties + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Behavior** | Enum | Specifies how particles behave when they collide with the shape. The options are:
  • None: Doesn't create a collision response. To detect when particles enter or leave the shape, use a Trigger Event On Collide Block.
  • Collision: Causes particles to bounce off the shape.
  • Kill: Destroys a particle when it collides with the shape.
| +| **Write Rough Normal** | Boolean | When enabled, Unity writes the version of the normal with roughness applied to the Collision Event Normal attribute. | +| **Override Bounce Threshold** | Boolean | Makes the **Bounce Speed Threshold** setting available in the Block properties. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSignedDistanceField.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSignedDistanceField.md index 4b513ccbe7b..bde589962a5 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSignedDistanceField.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSignedDistanceField.md @@ -1,10 +1,10 @@ -# Conform to Signed Distance Field +# Attractor Shape Signed Distance Field -Menu Path : **Force > Conform to Signed Distance Field** +Menu Path : **Force > Attractor Shape Signed Distance Field** -The **Conform to Signed Distance Field** Block attracts particles towards a defined distance field. This is useful for pulling particles towards a specific shape which cannot be easily defined via other force Blocks, and it works best when you use it alongside other forces. +The **Attractor Shape Signed Distance Field** Block attracts particles towards a defined distance field. This is useful for pulling particles towards a specific shape which cannot be easily defined via other force Blocks, and it works best when you use it alongside other forces. -![](Images/Block-ConformToSDFExample.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSphere.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSphere.md index 89613644c8d..08618da3648 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSphere.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConformToSphere.md @@ -1,12 +1,12 @@ -# Conform to Sphere +# Attractor Shape Sphere -Menu Path : **Force > Conform to Sphere** +Menu Path : **Force > Attractor Shape Sphere** -The **Conform to Sphere** Block attracts particles towards a defined sphere. This is useful for a range of cases, such as simulating a “charging†energy effect, and works best when you use it alongside other forces. +The **Attractor Shape Sphere** Block attracts particles towards a defined sphere. This is useful for a range of cases, such as simulating a “charging†energy effect, and works best when you use it alongside other forces. This Operator doesn't support spheres that have scale axis of different lengths (ellipsoids). If you use an ellipsoid as an input, this Operator uses its longest axis to define the sphere. -![](Images/Block-ConformToSphereExample.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConnectTarget.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConnectTarget.md index 018a2d41fee..3437e37cccd 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConnectTarget.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-ConnectTarget.md @@ -4,11 +4,11 @@ Menu Path : **Orientation > Connect Target** The **Connect Target** Block scales and orients particles so they connect to a specified target position. -![](Images/Block-ConnectTargetExample.gif) + The Block also allows you to specify the particle pivot in relation to its position and target position. This is useful for example to specify a custom point of rotation along the particle: -![](Images/Block-ConnectTargetPivotShift.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-IncrementStripIndexOnStart.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-IncrementStripIndexOnStart.md index 251755b829e..be25f156579 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-IncrementStripIndexOnStart.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-IncrementStripIndexOnStart.md @@ -6,7 +6,7 @@ The **Increment Strip Index On Start** Block helps to manage the initialization The stripIndex attribute returns to zero when a stop event triggers or if stripIndex reaches the **Strip Max Count**. This goes back to the first strip group index. -![](Images/Block-IncrementStripIndexOnStartExample.gif) +
A VFX Graph with an Increment Strip Index On Start Block, resulting in colorful particles spawning. ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttribute.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttribute.md index 1df4a60e233..30fdcef5cbd 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttribute.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetAttribute.md @@ -10,8 +10,7 @@ You can either set the value of the attribute directly, or use two different ran - **Per-Component** calculates a random number in range 0 to 1 for each component in the attribute type then, to produce the final value, uses each random value to interpolate between each component of the two range values (**A** and **B**). -![](Images/Block-SetAttributeExample.gif) - + You can also use this Block to inherit a source attribute and set it directly to the current attribute. For instance, you can inherit the position of a parent particle, and set it to particles generated from a GPU Event. If you set the **Source** setting to **Source**, the Block does not display any input properties for the attribute and instead uses the [source attribute](Attributes.md#attribute-locations) value (or the default source attribute value if the attribute is not present). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(AABox).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(AABox).md deleted file mode 100644 index 04870a38d45..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(AABox).md +++ /dev/null @@ -1,39 +0,0 @@ -# Set Position (Shape : AABox) - -Menu Path : **Position > Set Position (Shape : AABox)** - -The **Set Position (Shape : AABox)** Block calculates a position based on an input [Axis-Aligned Box](Type-AABox.md) and stores the result in the [position attribute](Reference-Attributes.md), based on composition. - -This Block can calculate the position either from the AABox's **Surface**, **Volume**, or **Thick Surface** where thickness can be relative to the size of the shape, or an absolute value. - - -This Block also calculates a direction vector based on the calculated position on the shape, and stores it to the [direction attribute](Reference-Attributes.md), based on composition. This direction is equal to the normal of the face the calculated particle position is on. Selection of the face is made based on six pyramids whose base is each face and whose tip is the box center. - -Note: [Velocity from Direction and Speed](Block-VelocityFromDirectionAndSpeed.md) Blocks can then process the direction attribute. - -![](Images/Block-SetPosition(AABox)Main.gif) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) -- Any output Context - -## Block settings - -| **Setting** | **Type** | **Description** | -| ------------------------- | -------- | ------------------------------------------------------------ | -| **Position Mode** | Enum | Specifies how this Block uses the shape to calculate a position. The options are:
• **Surface**: Calculates positions only on the shape’s surface.
• **Volume**: Calculates positions inside the entire shape’s volume.
• **Thickness Absolute**: Calculates positions on a thick surface of given absolute thickness.
• **Thickness Relative** will compute a position on a thick surface of a given percentage of the Shape’s size. | -| **Composition Position** | Enum | **(Inspector)** Specifies how this Block composes the position attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | -| **Composition Direction** | Enum | **(Inspector)** Specifies how this Block composes the direction attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ------------------- | ---------------------- | ------------------------------------------------------------ | -| **Box** | [AABox](Type-AABox.md) | The Axis-Aligned Box that determines the shape to calculate the position from. | -| **Thickness** | Float | The thickness of the shape’s surface for position calculation.
This property only appears if you set **Position Mode** to **Thickness Relative** or **Thickness Absolute**. | -| **Blend Position** | Float | The blend percentage between the current position attribute value and the newly calculated position value.
This property only appears if you set **Composition Position** to **Blend**. | -| **Blend Direction** | Float | The blend percentage between the current direction attribute value and the newly calculated direction value.
This property only appears if you set **Composition Direction** to **Blend**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Circle).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Circle).md deleted file mode 100644 index 428e2b4e923..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Circle).md +++ /dev/null @@ -1,43 +0,0 @@ -# Set Position (Shape : Circle) - -Menu Path : **Position > Set Position (Shape : Circle)** - -The **Set Position (Shape : Circle)** Block calculates a position based on an input [ArcCircle](Type-ArcCircle.md) and stores the result in the [position attribute](Reference-Attributes.md), based on composition. - -The Arc-Circle shape adds an arc property to the circle to determine its arc angle, in radians. setting an arc value of pi creates a half-circle. - -This Block can calculate the position either from the ArcCirlce's **Surface**, **Volume**, or **Thick Surface** where thickness can be relative to the size of the shape, or an absolute value. - - -This Block also calculates a direction vector based on the calculated position on the shape, and stores it to the [direction attribute](Reference-Attributes.md), based on composition. This direction is equal to the normalized vector from the center of the circle to the calculated position. - -**Note**: [Velocity from Direction and Speed](Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md) Blocks can then process the direction attribute. - -![](Images/Block-SetPosition(Circle)Main.gif) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) -- Any output Context - -## Block settings - -| **Setting** | **Type** | **Description** | -| ------------------------- | -------- | ------------------------------------------------------------ | -| **Position Mode** | Enum | Specifies how this Block uses the shape to calculate a position. The options are:
• **Surface**: Calculates positions only on the shape’s surface.
• **Volume**: Calculates positions inside the entire shape’s volume.
• **Thickness Absolute**: Calculates positions on a thick surface of given absolute thickness.
• **Thickness Relative** will compute a position on a thick surface of a given percentage of the Shape’s size. | -| **Spawn Mode** | Enum | The method this Block uses to distribute particles along the shape’s arc.
• **Random**: Calculates a per-particle random progress (0..1) on the arc.
• **Custom**: Allows you to specify the progress in the **Arc Sequencer** property. | -| **Composition Position** | Enum | **(Inspector)** Specifies how this Block composes the position attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | -| **Composition Direction** | Enum | **(Inspector)** Specifies how this Block composes the direction attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ------------------- | ------------------------------ | ------------------------------------------------------------ | -| **ArcCircle** | [ArcCircle](Type-ArcCircle.md) | The ArcCircle that determines the shape to calculate the position from. Arc Circles are determined on the XY plane. | -| **Thickness** | Float | The thickness of the shape’s surface for position calculation.
This property only appears if you set **Position Mode** to **Thickness Relative** or **Thickness Absolute**. | -| **Arc Sequencer** | Float | The position in the arc to spawn particles.
This property only appears if you set **Spawn Mode** to **Custom**. | -| **Blend Position** | Float | The blend percentage between the current position attribute value and the newly calculated position value.
This property only appears if you set **Composition Position** to **Blend**. | -| **Blend Direction** | Float | The blend percentage between the current direction attribute value and the newly calculated direction value.
This property only appears if you set **Composition Direction** to **Blend**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Cone).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Cone).md deleted file mode 100644 index e04c383a8fe..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Cone).md +++ /dev/null @@ -1,44 +0,0 @@ -# Set Position (Shape : Cone) - -Menu Path : **Position > Set Position (Shape : Cone)** - -The **Set Position (Shape : Cone)** Block calculatesa position based on an input [ArcCone ](Type-ArcCone .md) and stores the result in the [position attribute](Reference-Attributes.md), based on composition. - -The ArcCone shape adds an arc property to the cone to determine its arc angle, in radians. setting an arc value of pi creates a half-cone. - -This Block can calculate the position either from the ArcCone 's **Surface**, **Volume**, or **Thick Surface** where thickness can be relative to the size of the shape, or an absolute value. - - -This Block also calculates a direction vector based on the calculated position on the shape, and stores it to the [direction attribute](Reference-Attributes.md), based on composition. This direction is equal to the normalized vector from the calculated position to the top of the cone. - -Note: [Velocity from Direction and Speed](Block-VelocityFromDirectionAndSpeed.md) Blocks can then process the direction attribute. - -![](Images/Block-SetPosition(Cone)Main.gif) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) -- Any output Context - -## Block settings - -| **Setting** | **Type** | **Description** | -| ------------------------- | -------- | ------------------------------------------------------------ | -| **Height Mode** | Enum | Specifies how this Block handles the ArcCone's volume. The options are:
• **Volume**: Uses the entire cone to calculate a position.
• **Base**: Only uses the circle at the base of the cone to calculate a position. | -| **Position Mode** | Enum | Specifies how this Block uses the shape to calculate a position. The options are:
• **Surface**: Calculates positions only on the shape’s surface.
• **Volume**: Calculates positions inside the entire shape’s volume.
• **Thickness Absolute**: Calculates positions on a thick surface of given absolute thickness.
• **Thickness Relative** will compute a position on a thick surface of a given percentage of the Shape’s size.of a given percentage of the Shape’s size. | -| **Spawn Mode** | Enum | The method this Block uses to distribute particles along the shape’s arc.
• **Random**: Calculates a per-particle random progress (0..1) on the arc.
• **Custom**: Allows you to specify the progress in the **Arc Sequencer** property. | -| **Composition Position** | Enum | **(Inspector)** Specifies how this Block composes the position attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | -| **Composition Direction** | Enum | **(Inspector)** Specifies how this Block composes the direction attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ------------------- | -------------------------- | ------------------------------------------------------------ | -| **ArcCone** | [ArcCone](Type-ArcCone.md) | The ArcCone that determines the shape to calculate the position from. | -| **Thickness** | Float | The thickness of the shape’s surface for position calculation.
This property only appears if you set **Position Mode** to **Thickness Relative** or **Thickness Absolute**. | -| **Arc Sequencer** | Float | The position in the arc to spawn particles.
This property only appears if you set **Spawn Mode** to **Custom**. | -| **Blend Position** | Float | The blend percentage between the current position attribute value and the newly calculated position value.
This property only appears if you set **Composition Position** to **Blend**. | -| **Blend Direction** | Float | The blend percentage between the current direction attribute value and the newly calculated direction value.
This property only appears if you set **Composition Direction** to **Blend**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Depth).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Depth).md index 677c413b93f..3149ded3a64 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Depth).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Depth).md @@ -16,7 +16,7 @@ Culling options allow you to set the alive attribute to true or false depending **Important:** For this Block to calculate positions, the specified Camera must be enabled and the Game view must be visible. -![](Images/Block-SetPosition(Depth)Main.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Line).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Line).md deleted file mode 100644 index 8ec36074599..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Line).md +++ /dev/null @@ -1,37 +0,0 @@ -# Set Position (Shape : Line) - -Menu Path : **Position > Set Position (Shape : Line)** - -The **Set Position (Shape : Line)** Block calculates a position based on an input Line and stores the result in the [position attribute](Reference-Attributes.md), based on composition. - - -This Block also calculates a direction vector based on the calculated position on the shape, and stores it to the [direction attribute](Reference-Attributes.md), based on composition. This direction is equal to the normalized vector that goes from the start point of the line to its end point. - -Note: [Velocity from Direction and Speed](Block-VelocityFromDirectionAndSpeed.md) Blocks can then process the direction attribute. - -![](Images/Block-SetPosition(Line)Main.gif) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) -- Any output Context - -## Block settings - -| **Setting** | **Type** | **Description** | -| ------------------------- | -------- | ------------------------------------------------------------ | -| **Spawn Mode** | Enum | Specifies how to distribute particles along the line: The options are:
• **Random**: Calculates a per-particle random progress (from 0 to 1) along the line.
• **Custom**: Allows you to manually specify the progress on the line in the **Line Sequencer** property. | -| **Composition Position** | Enum | **(Inspector)** Specifies how this Block composes the position attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | -| **Composition Direction** | Enum | **(Inspector)** Specifies how this Block composes the direction attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ------------------- | -------- | ------------------------------------------------------------ | -| **Line** | Line | The Line that determines the shape to calculate the position from.. | -| **Line Sequencer** | Float | Determines the position of a particle on the line (as a percentage of its progress).
This property only appears if you set **Spawn Mode** to **Custom**. | -| **Blend Position** | Float | The blend percentage between the current position attribute value and the newly calculated position value.
This property only appears if you set **Composition Position** to **Blend**. | -| **Blend Direction** | Float | The blend percentage between the current direction attribute value and the newly calculated direction value.
This property only appears if you set **Composition Direction** to **Blend**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sequential).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sequential).md index ce4b0adacf8..c6f18065d05 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sequential).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sequential).md @@ -9,13 +9,13 @@ There are different modes available which determine which index to use for the s This Block also calculates the direction for the sampled **position** and stores it to the [direction attribute](Reference-Attributes.md), based on composition. The way this Block calculates the direction changes depending on the sequence type. The selection types available are: * **Line Sequencer**: The direction equals the direction of the line from start to finish. -![](Images/Block-SetPosition(Sequential)Line.gif) + * **Circle Sequencer**: The direction is the normal of the circle at the calculated position. -![img](Images/Block-SetPosition(Sequential)Circle.gif) + * **Three Dimensional Sequencer**: The direction equals the normalized vector from the origin to the calculated position. -![img](Images/Block-SetPosition(Sequential)3D.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(SignedDistanceField).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(SignedDistanceField).md deleted file mode 100644 index 96fe420b9c4..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(SignedDistanceField).md +++ /dev/null @@ -1,43 +0,0 @@ -# Set Position (Signed Distance Field) - -Menu Path : **Position > Set Position (Signed Distance Field)** - -The **Set Position (Signed Distance Field)** Block calculates a position based on an input Signed Distance Field (SDF) and stores the result in the [position attribute](Reference-Attributes.md), based on composition. - -This Block can calculate the position either from the SDF's **Surface**, **Volume**, or **Thick Surface** where thickness can be relative to the size of the shape, or an absolute value. - - -This Block also calculates a direction vector based on the calculated position on the shape, and stores it to the [direction attribute](Reference-Attributes.md), based on composition. This direction is equal to the normal of the surface at the calculated particle position. - -Note: [Velocity from Direction and Speed](Block-VelocityFromDirectionAndSpeed.md) Blocks can then process the direction attribute. - -![](Images/Block-SetPosition(SDF)Example.gif) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) -- Any output Context - -## Block settings - -| **Setting** | **Type** | **Description** | -| -------------------- | -------- | ------------------------------------------------------------ | -| **Position Mode** | Enum | Specifies how this Block uses the shape to calculate a position. The options are:
• **Surface**: Calculates positions only on the shape’s surface.
• **Volume**: Calculates positions inside the entire shape’s volume.
• **Thickness Absolute**: Calculates positions on a thick surface of given absolute thickness.
• **Thickness Relative** Calculates positions on a thick surface as a given percentage of the largest axis’s size. | -| **Spawn Mode** | Enum | Specifies how this Block distributes the particles among the shape’s arc.
• **Random**: Calculates a per-particle random progress (0..1) on the arc.
• **Custom**: Allows you to specify the progress in the **Arc Sequencer** property port. | -| **Kill Outliers** | Bool | (**Inspector**) Indicates whether to kill particles whose position does not adhere to the surface/volume. | -| **Projection Steps** | uint | (**Inspector**) The number of steps this Block uses to project the particle onto the surface of the SDF. This may impact performance, but can yield less outliers. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ----------------- | ---------------------- | ------------------------------------------------------------ | -| **Box** | [AABox](Type-AABox.md) | The Axis-Aligned Box that determines the shape to calculate the position from. | -| **Thickness** | float | The thickness of the shape’s surface for position calculation.
This property only appears if you set **Position Mode** to **Thickness Relative** or **Thickness Absolute**. | -| **Arc Sequencer** | float | The position in the arc to spawn particles.
This property only appears if you set **Spawn Mode** to **Custom**. | - -## Notes - -This Block calculates the relative thickness based on the largest axis of the SDF, which is not necessarily the size of the object the SDF represents. Therefore, the positions this Block calculates can be inside the entire shape’s volume even with a relative thickness smaller than 1. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sphere).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sphere).md deleted file mode 100644 index a1943143b60..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Sphere).md +++ /dev/null @@ -1,43 +0,0 @@ -# Set Position (Shape : Sphere) - -Menu Path : **Position > Set Position (Shape : Sphere)** - -The **Set Position (Shape : Sphere)** Block calculatesa position based on an input [ArcSphere](Type-ArcSphere.md) and stores the result in the [position attribute](Reference-Attributes.md), based on composition. - -The ArcSphere shape adds an arc property to the sphere to determine its arc angle, in radians. setting an arc value of pi creates a hemisphere. - -This Block can calculate the position either from the ArcSphere's **Surface**, **Volume**, or **Thick Surface** where thickness can be relative to the size of the shape, or an absolute value. - - -This Block also calculates a direction vector based on the calculated position on the shape, and stores it to the [direction attribute](Reference-Attributes.md), based on composition. This direction is equal to the normalized vector from the center of the sphere to the calculated position. - -Note: [Velocity from Direction and Speed](Block-VelocityFromDirectionAndSpeed.md) Blocks can then process the direction attribute. - -![](Images/Block-SetPosition(Sphere)Main.gif) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) -- Any output Context - -## Block settings - -| **Setting** | **Type** | **Description** | -| ------------------------- | -------- | ------------------------------------------------------------ | -| **Position Mode** | Enum | Specifies how this Block uses the shape to calculate a position. The options are:
• **Surface**: Calculates positions only on the shape’s surface.
• **Volume**: Calculates positions inside the entire shape’s volume.
• **Thickness Absolute**: Calculates positions on a thick surface of given absolute thickness.
• **Thickness Relative** will compute a position on a thick surface of a given percentage of the Shape’s size.of a given percentage of the Shape’s size. | -| **Spawn Mode** | Enum | The method this Block uses to distribute particles along the shape’s arc.
• **Random**: Calculates a per-particle random progress (0..1) on the arc.
• **Custom**: Allows you to specify the progress in the **Arc Sequencer** property. | -| **Composition Position** | Enum | **(Inspector)** Specifies how this Block composes the position attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | -| **Composition Direction** | Enum | **(Inspector)** Specifies how this Block composes the direction attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ------------------- | ------------------------------ | ------------------------------------------------------------ | -| **ArcSphere** | [ArcSphere](Type-ArcSphere.md) | The ArcSphere that determines the shape to calculate the position from. | -| **Thickness** | Float | The thickness of the shape’s surface for position calculation.
This property only appears if you set **Position Mode** to **Thickness Relative** or **Thickness Absolute**. | -| **Arc Sequencer** | Float | The position in the arc to spawn particles.
This property only appears if you set **Spawn Mode** to **Custom**. | -| **Blend Position** | Float | The blend percentage between the current position attribute value and the newly calculated position value.
This property only appears if you set **Composition Position** to **Blend**. | -| **Blend Direction** | Float | The blend percentage between the current direction attribute value and the newly calculated direction value.
This property only appears if you set **Composition Direction** to **Blend**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Torus).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Torus).md deleted file mode 100644 index b0781ec9650..00000000000 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPosition(Torus).md +++ /dev/null @@ -1,43 +0,0 @@ -# Set Position (Shape : Torus) - -Menu Path : **Position > Set Position (Shape : Torus)** - -The **Set Position (Shape : Torus)** Block calculates a position based on an input [ArcTorus](Type-ArcTorus.md) and stores the result in the [position attribute](Reference-Attributes.md), based on composition. - -The ArcTorus shape adds an arc property to the torus to determine its arc angle, in radians. setting an arc value of pi creates a half-torus. - -This Block can calculate the position either from the ArcTorus' **Surface**, **Volume**, or **Thick Surface** where thickness can be relative to the size of the shape, or an absolute value. - - -This Block also calculates a direction vector based on the calculated position on the shape, and stores it to the [direction attribute](Reference-Attributes.md), based on composition. This direction is equal to the normalized vector from the center of the torus' circle to the calculated position. - -Note: [Velocity from Direction and Speed](Block-VelocityFromDirectionAndSpeed.md) Blocks can then process the direction attribute. - -![](Images/Block-SetPosition(Torus)Main.gif) - -## Block compatibility - -This Block is compatible with the following Contexts: - -- [Initialize](Context-Initialize.md) -- [Update](Context-Update.md) -- Any output Context - -## Block settings - -| **Setting** | **Type** | **Description** | -| ------------------------- | -------- | ------------------------------------------------------------ | -| **Position Mode** | Enum | Specifies how this Block uses the shape to calculate a position. The options are:
• **Surface**: Calculates positions only on the shape’s surface.
• **Volume**: Calculates positions inside the entire shape’s volume.
• **Thickness Absolute**: Calculates positions on a thick surface of given absolute thickness.
• **Thickness Relative** will compute a position on a thick surface of a given percentage of the Shape’s size.of a given percentage of the Shape’s size. | -| **Spawn Mode** | Enum | The method this Block uses to distribute particles along the shape’s arc.
• **Random**: Calculates a per-particle random progress (0..1) on the arc.
• **Custom**: Allows you to specify the progress in the **Arc Sequencer** property. | -| **Composition Position** | Enum | **(Inspector)** Specifies how this Block composes the position attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | -| **Composition Direction** | Enum | **(Inspector)** Specifies how this Block composes the direction attribute. The options are:
• **Set**: Overwrites the position attribute with the new value.
• **Add**: Adds the new value to the position attribute value.
• **Multiply**: Multiplies the position attribute value by the new value.
• **Blend**: Interpolates between the position attribute value and the new value. You can specify the blend factor between 0 and 1. | - -## Block properties - -| **Input** | **Type** | **Description** | -| ------------------- | ---------------------------- | ------------------------------------------------------------ | -| **ArcTorus** | [ArcTorus](Type-ArcTorus.md) | The ArcTorus that determines the shape to calculate the position from. | -| **Thickness** | Float | The thickness of the shape’s surface for position calculation.
This property only appears if you set **Position Mode** to **Thickness Relative** or **Thickness Absolute**. | -| **Arc Sequencer** | Float | The position in the arc to spawn particles.
This property only appears if you set **Spawn Mode** to **Custom**. | -| **Blend Position** | Float | The blend percentage between the current position attribute value and the newly calculated position value.
This property only appears if you set **Composition Position** to **Blend**. | -| **Blend Direction** | Float | The blend percentage between the current direction attribute value and the newly calculated direction value.
This property only appears if you set **Composition Direction** to **Blend**. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md new file mode 100644 index 00000000000..f121e128091 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape-LandingPage.md @@ -0,0 +1,20 @@ +# Set Position Blocks reference + +Explore the properties of Set Position Blocks to configure how Unity calculates particle positions based on an input shape. + +| **Page** | **Description** | +|-|-| +| [Set Position (Depth)](Block-SetPosition(Depth).md) | Explore the properties of the Set Position (Depth) block. | +| [Set Position (Mesh)](Block-SetPosition(Mesh).md) | Explore the properties of the Set Position (Mesh) block. | +| [Set Position (Skinned Mesh)](Block-SetPosition(SkinnedMesh).md) | Explore the properties of the Set Position (Skinned Mesh) block. | +| [Set Position Shape](Block-SetPositionShape.md) | Explore the properties of the Set Position Shape block. | +| [Set Position (Sequential)](Block-SetPosition(Sequential).md) | Explore the properties of the Set Position (Sequential) block. | +| [Tile/Warp Positions](Block-TileWarpPositions.md) | Explore the properties of the Tile/Warp Positions block. | + +## Additional resources + +- [Signed Distance Fields in the Visual Effect Graph](sdf-in-vfx-graph.md) +- [VFX Graph Learning Templates](https://www.youtube.com/watch?v=DKVdg8DsIVY) on the Unity YouTube channel + + + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape.md new file mode 100644 index 00000000000..840d471e2b9 --- /dev/null +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetPositionShape.md @@ -0,0 +1,80 @@ +# Set Position Shape Block reference + +The Set Position Shape Block calculates particle positions based on an input shape, then stores them in the [position attribute](Reference-Attributes.md) of particles. + + + + + +This Block also stores direction vectors in the [direction attribute](Reference-Attributes.md) of particles. To set the velocity of a particle from its direction attribute, use a [Velocity from Direction and Speed](Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md) Block. + +The direction vector depends on the shape: + +- Sphere: The normalized vector from the center of the sphere to the calculated position. +- Box: The normal of the face the calculated particle position is on. Unity selects the face based on six pyramids, each with a face as its base and the center of the box as its tip. +- Cone: The normalized vector from the calculated position to the top of the cone. +- Torus: The normalized vector from the center of the torus to the calculated position. +- Circle: The normalized vector from the center of the circle to the calculated position. +- Line: The normalized vector from the start of the line to the end of the line. + +## Block compatibility + +You can add the Set Position Shape Block to the following Contexts: + +- [Initialize](Context-Initialize.md) +- [Update](Context-Update.md) +- Any output Context + +To add a Set Position Shape Block to your graph, [open the menu for adding a graph element](VisualEffectGraphWindow.md#adding-graph-elements) then select **Position Shape** > **Set Position Shape**. + +## Block settings + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Shape** | Enum | The shape to use to calculate positions. For more information, refer to the [**Shape dropdown**](#shape-dropdown) section. | +| **Height Mode** | Enum | Specifies which part of the cone Unity uses to calculate positions. This property is available only if you set **Shape** to **Cone**. The options are:
  • Volume: Uses the entire cone to calculate positions.
  • Base: Uses the circle at the base of the cone to calculate positions. | +| **Position Mode** | Enum | Specifies which part of the shape Unity uses to calculate positions. The options are:
    • Surface: Uses positions only on the surface of the shape.
    • Volume: Uses positions inside the entire volume of the shape.
    • Thickness Absolute: Uses positions on the surface of the shape, and within an inner layer defined in meters by **Thickness**.
    • Thickness Relative: Uses positions on the surface of the shape, and within an inner layer defined as a percentage of the size of the shape by **Thickness**.
    | +| **Spawn Mode** | Enum | Specifies where particles spawn along the arc of the shape, or the length of the line. This property isn't available if you set **Shape** to **Oriented Box**. The options are:
    • Random: Spawns particles at random positions.
    • Custom: Spawns particles at the position set in **Arc Sequencer** or **Line Sequencer**.
    | + + +### Shape dropdown + +| **Shape** | **Description** | +|-|-| +| **Sphere**| Sets the shape as a spherical volume. | +| **Oriented Box** | Sets the shape as an axis-aligned box volume. | +| **Cone** | Sets the shape as a truncated cone volume.| +| **Torus** | Sets the shape as a 3D ring volume. | +| **Circle** | Sets the shape as a circle. | +| **Line** | Sets the shape as a flat plane with infinite width and height. | +| **Signed Distance Field** | Sets the shape as a signed distance field (SDF), so you can create positions with existing assets. To generate a signed distance field asset, use the [SDF Bake Tool](sdf-bake-tool.md) or an external digital content creation (DCC) tool. | + +## Block properties + +| **Input** | **Type** | **Description** | +| ------------------- | ---------------------- | ------------------------------------------------------------ | +| **Arc Sphere** | [ArcSphere](Type-ArcSphere.md) | The sphere to use for positions. This property is available only if you set **Shape** to **Sphere**. | +| **Box** | [AABox](Type-AABox.md) | The axis-aligned box to use for positions. This property is available only if you set **Shape** to **Oriented Box**. | +| **Arc Cone** | [ArcCone](Type-ArcCone.md) | The cone to use for positions. This property is available only if you set **Shape** to **Cone**. | +| **Arc Torus** | [ArcTorus](Type-ArcTorus.md) | The torus to use for positions. This property is available only if you set **Shape** to **Torus**. | +| **Arc Circle** | [ArcCircle](Type-ArcCircle.md) | The circle to use for positions. This property is available only if you set **Shape** to **Circle**. | +| **Line** | [Line](Type-Line.md) | The line to use for positions. This property is available only if you set **Shape** to **Line**. | +| **SDF**| Signed distance field | The signed distance field asset to use for positions. This property appears only if you set **Shape** to **Signed Distance Field**. | +| **Height Sequencer** | Float | Sets where particles appear on the shape, as a percentage of its height. This property is available only if you set **Shape** to **Sphere**, **Cone**, or **Torus** and **Spawn Mode** to **Custom**. | +| **Arc Sequencer** | Float | Sets where particles appear on the arc, as a percentage of its length. This property is available only if you set **Shape** to **Sphere**, **Cone**, **Torus**, **Circle**, or **Signed Distance Field**, and **Spawn Mode** to **Custom**. | +| **Line Sequencer** | Float | Sets where particles appear on the line, as a percentage of its length. This property is available only if you set **Shape** to **Line** and **Spawn Mode** to **Custom**. | +| **Field Transform** | [Transform](Type-Transform.md) | The transform that determines the position, size, and rotation of the **Distance Field**. This property appears only if you set **Shape** to **Signed Distance Field**. | +| **Thickness** | Float | Sets the thickness of the inner layer for particle positions. This property is available only if you set **Position Mode** to **Thickness Relative** or **Thickness Absolute**. This property isn't available if you set **Shape** to **Line**.

    If you use a signed distance field, Unity calculates the relative thickness based on the largest axis of the SDF, which might not be the size of the object the SDF represents. As a result, particles might be inside the volume even if you use **Thickness Relative** and a **Thickness** value of less than 1.| +| **Blend Position** | Float | Sets the blend percentage between the current position attribute value and the new position value. This property is available only if you set **Composition Position** to **Blend** in the Inspector window. | +| **Blend Direction** | Float | Sets the blend percentage between the current direction attribute value and the new direction value. This property is available only if you set **Composition Direction** to **Blend** in the Inspector window. | + +## Inspector window properties + +| **Property** | **Type** | **Description** | +|-|-|-| +| **Apply Orientation** | Enum | Aligns particles so they match the orientation of the geometry of the shape. The options are:
    • None: Doesn't use the shape to align particles.
    • Everything: Aligns both the Direction attributes, and the AxisX, AxisY, and AxisZ attributes that set the particle's orientation.
    • Direction: Aligns only the Direction attribute.
    • Axis: Aligns only the AxisX, AxisY, and AxisZ attributes.
    +| **Kill Outliers** | Boolean | Specifies whether to destroy particles if their position is outside the surface or volume. This property is available only if you set **Shape** to **Signed Distance Field**. | +| **Projection Steps** | Uint | Sets the number of steps Unity uses to project the particle onto the surface of the SDF, to reduce the number of outlier particles. This might have a performance impact. This property is available only if you set **Shape** to **Signed Distance Field**. | +| **Composition Position** | Enum | Specifies how Unity updates the position attribute. The options are:
    • Overwrite: Overwrites the position attribute value with the new value.
    • Add: Adds the position attribute value to the new value.
    • Multiply: Multiplies the position attribute value by the new value.
    • Blend: Interpolates between the position attribute value and the new value. To set the blend factor, set **Blend Position** in the Block properties.
    | +| **Composition Direction** | Enum | Specifies how Unity updates the direction attribute. The options are:
    • Overwrite: Overwrites the direction attribute value with the new value.
    • Add: Adds the direction attribute value to the new value.
    • Multiply: Multiplies the direction attribute value by the new value.
    • Blend: Interpolates between the direction attribute value and the new value. To set the blend factor, set **Blend Direction** in the Block properties.
    | + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnEvent.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnEvent.md index 4a8521a396f..fc18d739443 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnEvent.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SetSpawnEvent.md @@ -30,4 +30,4 @@ This Block is compatible with the following Contexts: The system automatically transfers event attributes between spawn events, however, to retrieve the spawn event in an Initialize Context, you have to use **Inherit Source Attribute** or the Get Attribute Operator with **Location** set to **Source**. -![](Images/Block-SetSpawnEventExample.gif) + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SpawnOverDistance.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SpawnOverDistance.md index 48b279cbe52..eb1105b5257 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SpawnOverDistance.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SpawnOverDistance.md @@ -4,7 +4,7 @@ Menu Path: **Spawn > Custom > Spawn Over Distance** The **Spawn Over Distance** Block calculates the displacement of a position relative to the previous frame's value. Depending on this size of the displacement and the **Rate Per Unit** property, the system spawns a particle. -![](Images/Block-SpawnOverDistanceExample.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SubpixelAntiAliasing.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SubpixelAntiAliasing.md index e7c5aaa1fe3..260fd474932 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-SubpixelAntiAliasing.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-SubpixelAntiAliasing.md @@ -4,10 +4,11 @@ Menu Path : **Output > Subpixel Anti-Aliasing** The **Subpixel Anti-Aliasing** Block forces the ScaleX and ScaleY to cover at least one pixel of the screen. If this Block enlarges a particle to make it fit at least one pixel, it reduces the alpha of the particle to compensate for the particle contribution. -![](Images/Block-SubpixelAntiAliasingExample.gif) + ## Block compatibility This Block is compatible with the following Contexts: - Any output Context + diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventRate.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventRate.md index 7bdd4b85227..e37287bf543 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventRate.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-TriggerEventRate.md @@ -4,7 +4,7 @@ Menu Path : **GPU Event > Trigger Event Rate** The **Trigger Event Rate** Block triggers the creation of particles via a GPU Event using a specified rate. You can set the rate to spawn particles over time (per second) or over distance (parent particle distance change). -![](Images/Block-TriggerEventRateExample.gif) + Trigger Blocks always execute at the end of the [Update Context](Context-Update.md), regardless of where the Block is situated within the Context. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Turbulence.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Turbulence.md index 4c903080322..2b71b04d6e0 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-Turbulence.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-Turbulence.md @@ -4,7 +4,7 @@ Menu Path : **Force > Turbulence** The **Turbulence** Block generates a noise field which it applies to the particle’s velocity. This Block is useful for adding natural-looking movement to particles. For more information on the types of noise, see the [Value Curl](Operator-ValueCurlNoise.md), [Perlin Curl](Operator-PerlinCurlNoise.md), and [Cellular Curl](Operator-CellularCurlNoise.md) noise Operators. -![](Images/Block-TurbulenceExample.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md index ba2f0f542a1..15424af3495 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdatePosition.md @@ -4,7 +4,7 @@ Menu Path : **Implicit > Integration : Update Position** The **Integration : Update Position** Block updates particle positions based on their velocity. If the system uses the velocity attribute and you enable **Update Position** in the Update Context's Inspector, Unity implicitly adds this Block to the Context and hides it. -![](Images/Block-UpdatePositionInspector.png) +![Unity adds a Update Position Block when you enable Update Position in the Update Context's Inspector.](Images/Block-UpdatePositionInspector.png) This Block adds the particle velocity multiplied by deltaTime to the current particle position: @@ -14,7 +14,7 @@ If you disable **Update Position** in the Update Context's Inspector, the system You can also add the **Integration : Update Position** Block to the Update Context manually and enable/disable it to specify when the System updates the particle position based on its velocity. -![](Images/Block-UpdatePositionBlockInContext.png) +![Manually adding the Update Position Block lets you manually enable or disable it.](Images/Block-UpdatePositionBlockInContext.png) ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md index daf4a87d427..5e7431de549 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-UpdateRotation.md @@ -4,7 +4,7 @@ Menu Path : **Implicit > Integration : Update Rotation** The **Integration : Update Rotation** Block updates particle orientation based on their angular velocity. If the system uses the angular velocity attribute and you enable **Update Rotation** in the Update Context's Inspector, Unity implicitly adds this Block to the Context and hides it. -![](Images/Block-UpdateRotationInspector.png) +![Unity adds a Update Rotation Block when you enable Update Rotation in the Update Context's Inspector.](Images/Block-UpdateRotationInspector.png) The Block adds the corresponding angular velocity, multiplied by deltaTime, to the current particle angle: @@ -18,7 +18,7 @@ If you disable **Update Rotation** in the Update Context's Inspector, the system You can also add the **Integration : Update Rotation** Block to the Update Context manually and enable/disable it to specify when the System updates the particle orientation based on its angular velocity. -![](Images/Block-UpdateRotationBlockInContext.png) +![Manually adding the Update Rotation Block lets you manually enable or disable it.](Images/Block-UpdateRotationBlockInContext.png) ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VectorForceField.md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VectorForceField.md index 81cb8cd065b..3179608c24c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VectorForceField.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VectorForceField.md @@ -4,9 +4,8 @@ Menu Path : **Force > Vector Field Force** The **Vector Field Force** Block uses [vector fields](VectorFields.md) to apply a force to the particles. This Block is useful for adding specific forces created in advance and stored in vector field assets. -![](Images/Block-VectorForceFieldExample.gif) -![](Images/Block-VectorForceFieldExample2D.gif) -2D view of a Vector Field + + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md index 335b9fb9d2e..002435e2cb9 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(ChangeSpeed).md @@ -8,7 +8,7 @@ The **Velocity from Direction And Speed : Change Speed** Block calculates a velo To do this, it scales the direction vector by a speed, and composes it with the velocity attribute. -![](Images/Block-VelocityFromDirectionAndSpeed(ChangeSpeed)Example.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(NewDirection).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(NewDirection).md index 1b16ce6c763..fc6836a7f59 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(NewDirection).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(NewDirection).md @@ -9,7 +9,7 @@ The **Velocity from Direction And Speed (New Direction)** Block calculates a vel The Block then scales the final direction vector by a speed, and composes it with the velocity attribute. -![](Images/Block-VelocityFromDirectionAndSpeed(NewDirection)Example.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(RandomDirection).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(RandomDirection).md index 69da873c2b1..888adb88050 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(RandomDirection).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(RandomDirection).md @@ -9,7 +9,7 @@ The **Velocity from Direction And Speed (Random Direction)** Block calculates a The Block then scales the final direction vector by a speed, and composes it with the velocity attribute. -![](Images/Block-VelocityFromDirectionAndSpeed(RandomDirection)Example.gif) +![Velocity from Direction And Speed (Random Direction) Block sample.](Images/Block-VelocityFromDirectionAndSpeed(RandomDirection)Example.gif) ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Spherical).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Spherical).md index c9c6e5e2616..bf8cb37945e 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Spherical).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Spherical).md @@ -11,7 +11,7 @@ The spherical vector is a normalized vector that goes from a given position, to The Block then scales the final direction vector by a speed, and composes it with the velocity attribute. -![](Images/Block-VelocityFromDirectionAndSpeed(Spherical)Example.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Tangent).md b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Tangent).md index c9e6e6f332d..75b5cddfc4d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Tangent).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Block-VelocityFromDirectionAndSpeed(Tangent).md @@ -11,7 +11,7 @@ The tangent vector is based on the particle's current direction and a given axis The Block then scales the final direction vector by a speed, and composes it with the velocity attribute. -![](Images/Block-VelocityFromDirectionAndSpeed(Tangent)Example.gif) + ## Block compatibility diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Blocks.md b/Packages/com.unity.visualeffectgraph/Documentation~/Blocks.md index f59af1ad985..1484f6b0e0c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Blocks.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Blocks.md @@ -2,8 +2,6 @@ Blocks are Nodes that define the behavior of a [Context](Contexts.md). You can create and reorder Blocks within a Context and, when Unity plays a visual effect, Blocks execute from top to bottom. -![](Images/Block-Anatomy.png) - You can use Blocks for many purposes, from simple value storage (for example, a random Color) to high-level complex operations such as Noise Turbulence, Forces, or Collisions. ## Adding Blocks @@ -61,4 +59,4 @@ You can connect a graph logic to the activation port to accurately control under Unity is able to determine if a Block is statically inactive. An inactive Block appears greyed out, and Unity removes it during compilation so it has zero runtime cost. -**Note**: Subgraph Blocks don't have activation ports. To emulate an activation port, you can expose a boolean exposed property from the subgraph, and connect the property to the activation ports of the subgraph's internal Blocks. \ No newline at end of file +**Note**: Subgraph Blocks don't have activation ports. To emulate an activation port, you can expose a boolean exposed property from the subgraph, and connect the property to the activation ports of the subgraph's internal Blocks. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputDistortion.md b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputDistortion.md index 7f4cfa21615..da3043839db 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputDistortion.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Context-OutputDistortion.md @@ -6,7 +6,7 @@ Menu Path : **Context > Output [Strip/Particle] Distortion [Quad/Mesh]** **Distortion** outputs are Context nodes specific to the High Definition Render Pipeline (HDRP). They utilize HDRP's Distortion pass to simulate the bending of light. The Distortion output is available for both particles and particle strip data types, and particle distortion Contexts support both quad and mesh distortion. Distortion outputs are useful for simulating effects like heat distortion from fire. -![](F:/Graphics/com.unity.visualeffectgraph/Documentation~/Images/Context-OutputDistortion.png) +![Grid of colored squares labeled with alphanumeric codes (for example, A1, B2, C3) arranged to show increasing blur from bottom to top and increasing distortion from left to right.](Images/Context-OutputDistortion.png)
    Grid of colored squares labeled with alphanumeric codes (for example, A1, B2, C3) arranged to show increasing blur from bottom to top and increasing distortion from left to right. Below is a list of settings and properties specific to the Distortion Context. For information about the generic output settings this Context shares with all other Contexts, see [Global Output Settings and Properties](Context-OutputSharedSettings.md). diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/GettingStarted.md b/Packages/com.unity.visualeffectgraph/Documentation~/GettingStarted.md index 96b67b5cebe..15a676d1793 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/GettingStarted.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/GettingStarted.md @@ -16,9 +16,6 @@ To install the Visual Effect Graph package: 1. Select **Visual Effect Graph** from the list of packages. 1. In the bottom right corner of the Package Manager window, select **Install**. Unity installs Visual Effect Graph into your Project. - -![](Images/InstallVisualEffectGraph.png) - __Note:__ When using [HDRP](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@17.0/manual/index.html), VFX Graph is included with [HDRP Package](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@17.0/manual/install-hdrp.html#install-the-high-definition-rp-package) and doesn't need to be manually installed ### Using the correct version of Visual Effect Graph @@ -88,10 +85,6 @@ To attach a Visual Effect to the opened graph, you can either select the GameObj 1. In the matching graph, open the __Auto Attach Panel__ from the [Toolbar](VisualEffectGraphWindow.md#Toolbar). 1. Click on the **Select a target** field to select a compatible GameObject that exists in the current open scene. -Auto attach panel: - - ![](Images/auto-attach.png) - ## Manipulating graph elements When you open an Asset inside the Visual Effect Graph window, you can see and edit the graph for that specific Asset. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Anatomy.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Anatomy.png deleted file mode 100644 index fc22a80fe54..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Anatomy.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-CollideWithPlaneMain.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-CollideWithPlaneMain.png deleted file mode 100644 index 384267c60ba..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-CollideWithPlaneMain.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-CollideWithSphereMain.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-CollideWithSphereMain.png deleted file mode 100644 index c623581bb5b..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-CollideWithSphereMain.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSDFExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSDFExample.gif deleted file mode 100644 index d2ed5b52bdf..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSDFExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSDFExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSDFExample.mp4 new file mode 100644 index 00000000000..b524580418f Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSDFExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSphereExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSphereExample.gif deleted file mode 100644 index 0b43fa14fa0..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSphereExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSphereExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSphereExample.mp4 new file mode 100644 index 00000000000..a5a02b65351 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConformToSphereExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetExample.gif deleted file mode 100644 index b5d87389996..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetExample.mp4 new file mode 100644 index 00000000000..88f4d3ec0a9 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetPivotShift.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetPivotShift.gif deleted file mode 100644 index edafbd0e51f..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetPivotShift.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetPivotShift.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetPivotShift.mp4 new file mode 100644 index 00000000000..fe4402b3268 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-ConnectTargetPivotShift.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-IncrementStripIndexOnStartExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-IncrementStripIndexOnStartExample.mp4 new file mode 100644 index 00000000000..2e15f9845f6 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-IncrementStripIndexOnStartExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetAttributeExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetAttributeExample.gif deleted file mode 100644 index 342327a1c9d..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetAttributeExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetAttributeExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetAttributeExample.mp4 new file mode 100644 index 00000000000..b0e028d2098 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetAttributeExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(AABox)Main.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(AABox)Main.gif deleted file mode 100644 index f4ed0c3ca81..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(AABox)Main.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Circle)Main.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Circle)Main.gif deleted file mode 100644 index 5f33e2523d0..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Circle)Main.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Cone)Main.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Cone)Main.gif deleted file mode 100644 index eca6b85f6b9..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Cone)Main.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Depth)Main.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Depth)Main.gif deleted file mode 100644 index 5848a347dc4..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Depth)Main.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Depth)Main.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Depth)Main.mp4 new file mode 100644 index 00000000000..176cc1966b4 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Depth)Main.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Line)Main.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Line)Main.gif deleted file mode 100644 index 5b54491ea55..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Line)Main.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(SDF)Example.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(SDF)Example.gif deleted file mode 100644 index d9b6a2fa832..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(SDF)Example.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)3D.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)3D.gif deleted file mode 100644 index 5cd926f57b7..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)3D.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)Circle.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)Circle.gif deleted file mode 100644 index eac496fea7d..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)Circle.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)Line.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)Line.gif deleted file mode 100644 index 758342c5275..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sequential)Line.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sphere)Main.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sphere)Main.gif deleted file mode 100644 index c45948fc696..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sphere)Main.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sphere)Main.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sphere)Main.mp4 new file mode 100644 index 00000000000..c3022634104 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Sphere)Main.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Torus)Main.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Torus)Main.gif deleted file mode 100644 index 6a952beb30d..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetPosition(Torus)Main.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetSpawnEventExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetSpawnEventExample.mp4 new file mode 100644 index 00000000000..207b80b3ee9 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SetSpawnEventExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Cone)Main.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Cone)Main.mp4 new file mode 100644 index 00000000000..ba1e6b1f881 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Cone)Main.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sdf)Example.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sdf)Example.mp4 new file mode 100644 index 00000000000..1c831936670 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sdf)Example.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)3D.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)3D.mp4 new file mode 100644 index 00000000000..010d16505ca Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)3D.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)Circle.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)Circle.mp4 new file mode 100644 index 00000000000..b6209e4bfb7 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)Circle.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)Line.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)Line.mp4 new file mode 100644 index 00000000000..2126e310d07 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Setposition(Sequential)Line.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SpawnOverDistanceExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SpawnOverDistanceExample.gif deleted file mode 100644 index 2bf62cac9ad..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SpawnOverDistanceExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SpawnOverDistanceExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SpawnOverDistanceExample.mp4 new file mode 100644 index 00000000000..69692140b48 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SpawnOverDistanceExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SubpixelAntiAliasingExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SubpixelAntiAliasingExample.gif deleted file mode 100644 index b8391f31fe3..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SubpixelAntiAliasingExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SubpixelAntiAliasingExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SubpixelAntiAliasingExample.mp4 new file mode 100644 index 00000000000..dcc28915120 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-SubpixelAntiAliasingExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.gif deleted file mode 100644 index bba4e1ea04e..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.mp4 new file mode 100644 index 00000000000..9dc6d9cc4ad Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TriggerEventRateExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Turbulence.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Turbulence.mp4 new file mode 100644 index 00000000000..079d2099efb Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Turbulence.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TurbulenceExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TurbulenceExample.gif deleted file mode 100644 index e86ebf0a311..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-TurbulenceExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample.gif deleted file mode 100644 index 4e7d526284f..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample.mp4 new file mode 100644 index 00000000000..0d3cf991272 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample2D.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample2D.gif deleted file mode 100644 index 42cf94ef9f2..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample2D.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample2D.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample2D.mp4 new file mode 100644 index 00000000000..5bc560c1989 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VectorForceFieldExample2D.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(ChangeSpeed)Example.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(ChangeSpeed)Example.gif deleted file mode 100644 index 8f5bc60ce74..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(ChangeSpeed)Example.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(NewDirection)Example.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(NewDirection)Example.gif deleted file mode 100644 index 7707a4b0121..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(NewDirection)Example.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(Spherical)Example.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(Spherical)Example.gif deleted file mode 100644 index f2b89a68f5c..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(Spherical)Example.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(Tangent)Example.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(Tangent)Example.gif deleted file mode 100644 index cb4f8dbcd1d..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-VelocityFromDirectionAndSpeed(Tangent)Example.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Changespeed)Example.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Changespeed)Example.mp4 new file mode 100644 index 00000000000..8bb68867430 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Changespeed)Example.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Newdirection)Example.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Newdirection)Example.mp4 new file mode 100644 index 00000000000..e2416f4383e Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Newdirection)Example.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Spherical)Example.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Spherical)Example.mp4 new file mode 100644 index 00000000000..55604bfa01c Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Spherical)Example.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Tangent)Example.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Tangent)Example.mp4 new file mode 100644 index 00000000000..b3e1f53d06f Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Block-Velocityfromdirectionandspeed(Tangent)Example.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Bounds-Init.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Bounds-Init.png deleted file mode 100644 index b5cedfd869d..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Bounds-Init.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Bounds-Not-Recording.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Bounds-Not-Recording.png deleted file mode 100644 index 940e8f2f0f1..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Bounds-Not-Recording.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/InstallVisualEffectGraph.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/InstallVisualEffectGraph.png deleted file mode 100644 index 2e7cb672b92..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/InstallVisualEffectGraph.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseAmplitude.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseAmplitude.mp4 new file mode 100644 index 00000000000..92c1686c889 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseAmplitude.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseAnimation.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseAnimation.mp4 new file mode 100644 index 00000000000..77cde0def8c Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseAnimation.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseCoordinate.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseCoordinate.mp4 new file mode 100644 index 00000000000..0e57d6a2b1f Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseCoordinate.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseFrequency.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseFrequency.mp4 new file mode 100644 index 00000000000..3d62bb93d1b Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseFrequency.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseLacunarity.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseLacunarity.mp4 new file mode 100644 index 00000000000..c5697bb0f93 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseLacunarity.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseOctaves.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseOctaves.mp4 new file mode 100644 index 00000000000..827ff6b1000 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseOctaves.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseRoughness.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseRoughness.mp4 new file mode 100644 index 00000000000..ccaffb27a83 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularCurlNoiseRoughness.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseAnimation.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseAnimation.mp4 new file mode 100644 index 00000000000..c05d74eddee Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseAnimation.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseCoordinate.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseCoordinate.mp4 new file mode 100644 index 00000000000..121f2bb045e Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseCoordinate.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseFrequency.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseFrequency.mp4 new file mode 100644 index 00000000000..d6f6ce849f7 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseFrequency.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseLacunarity.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseLacunarity.mp4 new file mode 100644 index 00000000000..427c7926fb0 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseLacunarity.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseOctaves.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseOctaves.mp4 new file mode 100644 index 00000000000..b866492179e Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseOctaves.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseRange.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseRange.mp4 new file mode 100644 index 00000000000..7c9de80c128 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseRange.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseRoughness.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseRoughness.mp4 new file mode 100644 index 00000000000..f83fac3b575 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-CellularNoiseRoughness.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ColourHSV.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ColourHSV.gif deleted file mode 100644 index 0a78b6be861..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ColourHSV.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ColourHSV.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ColourHSV.mp4 new file mode 100644 index 00000000000..5018dee8d06 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ColourHSV.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAmplitude.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAmplitude.gif deleted file mode 100644 index 4c881c20187..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAmplitude.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAmplitude.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAmplitude.mp4 new file mode 100644 index 00000000000..cf1c878b0be Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAmplitude.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAnimation.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAnimation.gif deleted file mode 100644 index fd7a51d7c4c..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAnimation.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAnimation.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAnimation.mp4 new file mode 100644 index 00000000000..4e322b44f14 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseAnimation.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseCoordinate.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseCoordinate.gif deleted file mode 100644 index 8a1a2a75249..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseCoordinate.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseCoordinate.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseCoordinate.mp4 new file mode 100644 index 00000000000..c58fcb011a2 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseCoordinate.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseFrequency.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseFrequency.gif deleted file mode 100644 index 92525de428f..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseFrequency.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseFrequency.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseFrequency.mp4 new file mode 100644 index 00000000000..af8d16485ae Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseFrequency.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseLacunarity.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseLacunarity.gif deleted file mode 100644 index 648bac5d3b3..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseLacunarity.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseLacunarity.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseLacunarity.mp4 new file mode 100644 index 00000000000..c09ae88485b Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseLacunarity.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseOctaves.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseOctaves.gif deleted file mode 100644 index 97705bf6e39..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseOctaves.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseOctaves.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseOctaves.mp4 new file mode 100644 index 00000000000..fd49786de2e Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseOctaves.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseRoughness.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseRoughness.gif deleted file mode 100644 index 1af612452e2..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseRoughness.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseRoughness.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseRoughness.mp4 new file mode 100644 index 00000000000..d44fae66b95 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-PerlinCurlNoiseRoughness.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SampleBezierExample.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SampleBezierExample.gif deleted file mode 100644 index bb6ddf1bac4..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SampleBezierExample.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SampleBezierExample.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SampleBezierExample.mp4 new file mode 100644 index 00000000000..48a3573f3c6 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SampleBezierExample.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SawtoothWaveAnimation.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SawtoothWaveAnimation.gif deleted file mode 100644 index 7075335bdad..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SawtoothWaveAnimation.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SawtoothWaveAnimation.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SawtoothWaveAnimation.mp4 new file mode 100644 index 00000000000..be3bb1cf3c0 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SawtoothWaveAnimation.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SineWaveAnimation.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SineWaveAnimation.gif deleted file mode 100644 index a0e14ade139..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SineWaveAnimation.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SineWaveAnimation.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SineWaveAnimation.mp4 new file mode 100644 index 00000000000..c0e556f8443 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-SineWaveAnimation.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAmplitude.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAmplitude.gif deleted file mode 100644 index 432730595b5..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAmplitude.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAmplitude.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAmplitude.mp4 new file mode 100644 index 00000000000..4f49def722b Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAmplitude.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAnimation.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAnimation.gif deleted file mode 100644 index 8542b4c4e42..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAnimation.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAnimation.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAnimation.mp4 new file mode 100644 index 00000000000..24e3985b42f Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseAnimation.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseCoordinate.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseCoordinate.gif deleted file mode 100644 index 1a486736ee0..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseCoordinate.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseCoordinate.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseCoordinate.mp4 new file mode 100644 index 00000000000..b95b6116c8e Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseCoordinate.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseFrequency.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseFrequency.gif deleted file mode 100644 index 901009933de..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseFrequency.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseFrequency.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseFrequency.mp4 new file mode 100644 index 00000000000..531fa63a6f7 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseFrequency.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseLacunarity.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseLacunarity.gif deleted file mode 100644 index 141f06ebe95..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseLacunarity.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseLacunarity.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseLacunarity.mp4 new file mode 100644 index 00000000000..8fa65603770 Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseLacunarity.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseOctaves.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseOctaves.gif deleted file mode 100644 index ea6d871e85e..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseOctaves.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseOctaves.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseOctaves.mp4 new file mode 100644 index 00000000000..e30bef4717c Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseOctaves.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseRoughness.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseRoughness.gif deleted file mode 100644 index 2bcf0950864..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseRoughness.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseRoughness.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseRoughness.mp4 new file mode 100644 index 00000000000..faf8be1baef Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Operator-ValueCurlNoiseRoughness.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsCascaded.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsCascaded.png deleted file mode 100644 index 63600c365e0..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsCascaded.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsCascadedOptions.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsCascadedOptions.png deleted file mode 100644 index 907e8a1e72f..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsCascadedOptions.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUnified.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUnified.png deleted file mode 100644 index 0da9301c0fb..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUnified.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUnifiedOptions.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUnifiedOptions.png deleted file mode 100644 index 7cbd6352884..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUnifiedOptions.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUniform.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUniform.png deleted file mode 100644 index 5253ec02a70..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUniform.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUniformOptions.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUniformOptions.png deleted file mode 100644 index 6c5646505d1..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/OperatorsUniformOptions.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyBinder.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyBinder.png deleted file mode 100644 index 13372d6b3cf..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyBinder.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyCast.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyCast.png deleted file mode 100644 index b88ba0adabd..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyCast.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyCompound.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyCompound.png deleted file mode 100644 index befc7f5873d..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyCompound.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyNode.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyNode.png deleted file mode 100644 index 9f569ffff0a..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/PropertyNode.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/ReadWrite.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/ReadWrite.png deleted file mode 100644 index b2a92d23c5e..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/ReadWrite.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/Skinned-Mesh-Sampling-Example.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Skinned-Mesh-Sampling-Example.mp4 new file mode 100644 index 00000000000..013062ba02b Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/Skinned-Mesh-Sampling-Example.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceIdentifier.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceIdentifier.png deleted file mode 100644 index e0469c582c4..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceIdentifier.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceLocalWorld.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceLocalWorld.png deleted file mode 100644 index 2b4b95b59e4..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceLocalWorld.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceLocalWorldSmall.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceLocalWorldSmall.png deleted file mode 100644 index ba874cef1d4..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/SystemSpaceLocalWorldSmall.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_ControlClip.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_ControlClip.png deleted file mode 100644 index 896ab81e5f6..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_ControlClip.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_ControlTrack.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_ControlTrack.png deleted file mode 100644 index 90104e9461d..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_ControlTrack.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_Window.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_Window.png deleted file mode 100644 index 4a91508a285..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VFX_Timeline_Window.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VectorFieldInspector.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/VectorFieldInspector.png deleted file mode 100644 index c89c320dfbe..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VectorFieldInspector.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VisualEffectProjectSettings.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/VisualEffectProjectSettings.png deleted file mode 100644 index 8cc6a39dd11..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/VisualEffectProjectSettings.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-context-spawn.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-context-spawn.png deleted file mode 100644 index 69c2621b6c2..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-context-spawn.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-context-update.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-context-update.png deleted file mode 100644 index 8aba145545b..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-context-update.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-cpu-output-event.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-cpu-output-event.png deleted file mode 100644 index ff9e476de01..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-cpu-output-event.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-documentation.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-documentation.png deleted file mode 100644 index 0ece9613940..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-documentation.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-package-samples.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-package-samples.png deleted file mode 100644 index 7f11e4b740b..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-package-samples.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-signed-distance-field.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-signed-distance-field.png deleted file mode 100644 index b1c26d2e81b..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-signed-distance-field.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-texture2darray-flipbooks.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-texture2darray-flipbooks.png deleted file mode 100644 index a5fc995f240..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-texture2darray-flipbooks.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-ux-improvements.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-ux-improvements.gif deleted file mode 100644 index 1edaae5eda3..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-ux-improvements.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-ux-improvements.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-ux-improvements.mp4 new file mode 100644 index 00000000000..cd942f3442d Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/banner-ux-improvements.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-builtin-attributes.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-builtin-attributes.png deleted file mode 100644 index bb0e51301b5..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-builtin-attributes.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-dragdrop-attribute.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-dragdrop-attribute.gif deleted file mode 100644 index ec3edcd0779..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-dragdrop-attribute.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-filter.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-filter.png deleted file mode 100644 index c9b7463fb6f..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-filter.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-properties-inspector.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-properties-inspector.png deleted file mode 100644 index 3a8a6c069fa..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-properties-inspector.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-properties.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-properties.png deleted file mode 100644 index 39d8293f957..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-properties.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-subgraph.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-subgraph.png deleted file mode 100644 index 61a5462f184..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-subgraph.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-unused.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-unused.png deleted file mode 100644 index c4efb33381e..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/blackboard-unused.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/pcache-mesh-inspector.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/pcache-mesh-inspector.png deleted file mode 100644 index b94375c3412..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/pcache-mesh-inspector.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/pcache-texture-inspector.png b/Packages/com.unity.visualeffectgraph/Documentation~/Images/pcache-texture-inspector.png deleted file mode 100644 index b4e9d75f4cf..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/pcache-texture-inspector.png and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/point-cache-relax.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/point-cache-relax.gif deleted file mode 100644 index dd098eef6ee..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/point-cache-relax.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/point-cache-relax.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/point-cache-relax.mp4 new file mode 100644 index 00000000000..c39605bbd6b Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/point-cache-relax.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/sdf-size-precision.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/sdf-size-precision.gif deleted file mode 100644 index 1bf89e96ac1..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/sdf-size-precision.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/sdf-size-precision.mp4 b/Packages/com.unity.visualeffectgraph/Documentation~/Images/sdf-size-precision.mp4 new file mode 100644 index 00000000000..faebfc8b79c Binary files /dev/null and b/Packages/com.unity.visualeffectgraph/Documentation~/Images/sdf-size-precision.mp4 differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Images/skinned-mesh-sampling-example.gif b/Packages/com.unity.visualeffectgraph/Documentation~/Images/skinned-mesh-sampling-example.gif deleted file mode 100644 index 725d4444722..00000000000 Binary files a/Packages/com.unity.visualeffectgraph/Documentation~/Images/skinned-mesh-sampling-example.gif and /dev/null differ diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularCurlNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularCurlNoise.md index 197b76ecbc9..9ef33e37d61 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularCurlNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularCurlNoise.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Noise > Cellular Curl Noise** The **Cellular Curl Noise** Operator allows you to sample a noise value within a specified range in two or three dimensions based on provided coordinates. Cellular curl noise uses similar math to the [Cellular Noise](Operator-Cellular-Noise.md) Operator, but with the addition of a curl function which allows it to generate a turbulent noise. This noise is incompressible (divergence-free), which means that particles cannot converge to sink points where they get stuck. -![](Images/Operator-CellularCurlNoiseAnimation.gif) +
    A smoke-like simulation in movement. A good use case for Curl Noise is to simulate fluids or gas, without having to perform complex calculations. @@ -19,12 +19,12 @@ A good use case for Curl Noise is to simulate fluids or gas, without having to p | **Input** | **Type** | **Description** | | -------------- | ----------------------------- | ------------------------------------------------------------ | -| **Coordinate** | Float
    Vector2
    Vector3 | The coordinate in the noise field to sample from.
    ![](Images/Operator-CellularCurlNoiseCoordinate.gif)
    The **Type** changes to match the number of **Dimensions**. | -| **Frequency** | Float | The period in which Unity samples the noise. A higher frequency results in more frequent noise change.
    ![](Images/Operator-CellularCurlNoiseFrequency.gif) | -| **Octaves** | Int | The number of layers of noise. More octaves create a more varied look but are also more resource-intensive to calculate.
    ![](Images/Operator-CellularCurlNoiseOctaves.gif) | -| **Roughness** | Float | The scaling factor Unity applies to each octave. Unity only uses roughness when **Octaves** is set to a value higher than 1.
    ![](Images/Operator-CellularCurlNoiseRoughness.gif) | -| **Lacunarity** | Float | The rate of change of the frequency for each successive octave. A lacunarity value of 1 results in each octave having the same frequency.
    ![](Images/Operator-CellularCurlNoiseLacunarity.gif) | -| **Amplitude** | Float | The magnitude of the noise. A higher value increases the range of values the **Noise** port can return.
    ![](Images/Operator-CellularCurlNoiseAmplitude.gif) | +| **Coordinate** | Float
    Vector2
    Vector3 | The coordinate in the noise field to sample from.

    The **Type** changes to match the number of **Dimensions**. | +| **Frequency** | Float | The period in which Unity samples the noise. A higher frequency results in more frequent noise change.
    | +| **Octaves** | Int | The number of layers of noise. More octaves create a more varied look but are also more resource-intensive to calculate.
    | +| **Roughness** | Float | The scaling factor Unity applies to each octave. Unity only uses roughness when **Octaves** is set to a value higher than 1.
    | +| **Lacunarity** | Float | The rate of change of the frequency for each successive octave. A lacunarity value of 1 results in each octave having the same frequency.
    | +| **Amplitude** | Float | The magnitude of the noise. A higher value increases the range of values the **Noise** port can return.
    | | **Output** | **Type** | **Description** | | ---------- | -------- | ---------------------------------------------- | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularNoise.md index fb8ac276092..c59161dd5b6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-CellularNoise.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Noise > Cellular Noise** The **Cellular Noise** Operator allows you to specify coordinates to sample a noise value within a specified range in one, two, or three dimensions. Cellular noise (also known as “Worley noiseâ€) creates distinct cell-like patterns. To do this, it scatters random points then calculates the distance between the nearest ones. -![](Images/Operator-CellularNoiseAnimation.gif) +
    Three cubes representing one, two, and three dimensional noise with cell-like patterns. You can use this Operator to introduce variety to your particle attributes. A common use case is to use each particle’s position as a coordinate to sample the noise to output a new color, velocity, or position value. @@ -19,12 +19,13 @@ You can use this Operator to introduce variety to your particle attributes. A co | **Input** | **Type** | **Description** | | -------------- | ----------------------------- | ------------------------------------------------------------ | -| **Coordinate** | Float
    Vector2
    Vector3 | The coordinate in the noise field to sample from.
    ![](Images/Operator-CellularNoiseCoordinate.gif)
    The **Type** changes to match the number of **Dimensions**. | -| **Frequency** | Float | The period in which Unity samples the noise. A higher frequency results in more frequent noise change.
    ![](Images/Operator-CellularNoiseFrequency.gif) | -| **Octaves** | Int | The number of layers of noise. More octaves create a more varied look but are also more resource-intensive to calculate.
    ![](Images/Operator-CellularNoiseOctaves.gif) | -| **Roughness** | Float | The scaling factor Unity applies to each octave. Unity only uses roughness when **Octaves** is set to a value higher than 1.
    ![](Images/Operator-CellularNoiseRoughness.gif) | -| **Lacunarity** | Float | The rate of change of the frequency for each successive octave. A lacunarity value of 1 results in each octave having the same frequency.
    ![](Images/Operator-CellularNoiseLacunarity.gif) | -| **Range** | Vector2 | The range within which Unity calculates the noise. The noise stays between the X and Y value you specify here, where X is the minimum and Y is the maximum.
    ![](Images/Operator-CellularNoiseRange.gif) | +| **Coordinate** | Float
    Vector2
    Vector3 | The coordinate in the noise field to sample from. The **Type** changes to match the number of **Dimensions**.

    | +| **Frequency** | Float | The period in which Unity samples the noise. A higher frequency results in more frequent noise change.
    | +| **Octaves** | Int | The number of layers of noise. More octaves create a more varied look but are also more resource-intensive to calculate.
    | +| **Roughness** | Float | The scaling factor Unity applies to each octave. Unity only uses roughness when **Octaves** is set to a value higher than 1.
    | +| **Lacunarity** | Float | The rate of change of the frequency for each successive octave. A lacunarity value of 1 results in each octave having the same frequency.
    | +| **Range** | Vector2 | The range within which Unity calculates the noise. The noise stays between the X and Y value you specify here, where X is the minimum and Y is the maximum.
    | + | **Output** | **Type** | **Description** | | --------------- | ----------------------------- | ------------------------------------------------------------ | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ColorLuma.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ColorLuma.md index 87b4e8dbd8a..fb44b29aa28 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ColorLuma.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ColorLuma.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Color > Color Luma** This **Color Luma** Operator outputs the luma (perceived brightness) of the input color. - ![](Images/Operator-ColorHSVLuma.png) + ![Left: A ring with segments of different colors. Right: The same ring using shades of gray that represent the perceived brightness of each color.](Images/Operator-ColorHSVLuma.png) The luma value of a color is useful in many scenarios, for example: diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-HSVToRGB.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-HSVToRGB.md index 62e78626677..aacdc2c31e6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-HSVToRGB.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-HSVToRGB.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Color > HSV to RGB** The **HSV to RGB** Operator converts HSV (Hue, Saturation, Value) color values to RGB (Red, Green, Blue) color values. -![](Images/Operator-ColourHSV.gif) + This Operator is useful if you want to construct new colors or if you want to selectively change some aspect of an input color. To do that latter for example, you would use the [RGB to HSV](Operator-RGBToHSV.md) Operator to change an RGB color to HSV, change the hue (the pure spectrum color), saturation (the intensity), or value (the brightness of the color), then use this Operator to convert it back to RBG color. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNand.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNand.md index 8001bea6bed..6082fa490ed 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNand.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-LogicNand.md @@ -14,8 +14,3 @@ The **Nand** Operator takes two inputs and outputs the result of a logical *nand | **Output** | **Type** | **Description** | | ---------- | -------- | ------------------------------------------------------------ | | **o** | bool | If **A** and **B** are `false`, this value is `true`. Otherwise, if either **A** or **B** are `true` this value is `false`. | - -## Note - -This Operator provides the same result as the following graph : -![](Images/Operator-NandComparisonGraph.png) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md index 0ef550cd9bc..5d520110a21 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-PerlinCurlNoise.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Noise > Perlin Curl Noise** The **Perlin Curl Noise** Operator allows you to sample a noise value within a specified range in two or three dimensions based on provided coordinates. Perlin curl noise uses similar math to the [Perlin Noise](Operator-Perlin-Noise.md) Operator, but with the addition of a curl function which allows it to generate a turbulent noise. This resulting noise is incompressible (divergence-free), which means that particles cannot converge to sink points where they get stuck. -![img](Images/Operator-PerlinCurlNoiseAnimation.gif) + A good use case for Curl Noise is emulating fluid or gas simulation, without having to perform complex calculations. @@ -19,12 +19,12 @@ A good use case for Curl Noise is emulating fluid or gas simulation, without hav | **Input** | **Type** | **Description** | | -------------- | ------------------- | ------------------------------------------------------------ | -| **Coordinate** | FloatVector2Vector3 | The coordinate in the noise field to sample from.
    ![](Images/Operator-PerlinCurlNoiseCoordinate.gif)
    The **Type** changes to match the number of **Dimensions**. | -| **Frequency** | Float | The period in which Unity samples the noise. A higher frequency results in more frequent noise change.
    ![](Images/Operator-PerlinCurlNoiseFrequency.gif) | -| **Octaves** | Int | The number of layers of noise. More octaves create a more varied look but are also more resource-intensive to calculate.
    ![](Images/Operator-PerlinCurlNoiseOctaves.gif) | -| **Roughness** | Float | The scaling factor Unity applies to each octave. Unity only uses roughness when **Octaves** is set to a value higher than 1.
    ![](Images/Operator-PerlinCurlNoiseRoughness.gif) | -| **Lacunarity** | Float | The rate of change of the frequency for each successive octave. A lacunarity value of 1 results in each octave having the same frequency.
    ![](Images/Operator-PerlinCurlNoiseLacunarity.gif) | -| **Amplitude** | Float | The magnitude of the noise. A higher value increases the range of values the **Noise** port can return.
    ![](Images/Operator-PerlinCurlNoiseAmplitude.gif) | +| **Coordinate** | FloatVector2Vector3 | The coordinate in the noise field to sample from.

    The **Type** changes to match the number of **Dimensions**. | +| **Frequency** | Float | The period in which Unity samples the noise. A higher frequency results in more frequent noise change.
    | +| **Octaves** | Int | The number of layers of noise. More octaves create a more varied look but are also more resource-intensive to calculate.
    | +| **Roughness** | Float | The scaling factor Unity applies to each octave. Unity only uses roughness when **Octaves** is set to a value higher than 1.
    | +| **Lacunarity** | Float | The rate of change of the frequency for each successive octave. A lacunarity value of 1 results in each octave having the same frequency.
    | +| **Amplitude** | Float | The magnitude of the noise. A higher value increases the range of values the **Noise** port can return.
    | | **Output** | **Type** | **Description** | | ---------- | -------- | ---------------------------------------------- | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RGBToHSV.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RGBToHSV.md index da3cd8bde39..fb41b38c9a6 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RGBToHSV.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RGBToHSV.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Color > RGB to HSV** This Operator converts RGB (Red, Green, Blue) color values to HSV (Hue, Saturation, Value) color values. -![](Images/Operator-ColourHSV.gif) + This Operator is useful if you want to construct new colors or if you want to selectively change some aspect of an input color. To do that latter for example, you would use this Operator to change an RGB color to HSV, change the hue (the pure spectrum color), saturation (the intensity), or value (the brightness of the color), then use the [HSV to RGB](Operator-HSVToRGB.md) Operator to convert it back to RBG color. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomSelectorWeighted.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomSelectorWeighted.md index dc210e4ed38..1045b0f1168 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomSelectorWeighted.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-RandomSelectorWeighted.md @@ -6,7 +6,7 @@ Menu Path : **Operator > Logic > Random Selector Weighted** The **Random Selector Weighted** Operator performs a kind of switch/case operation where a weight controls the probability of selecting a case. If all weights are equal, this Operator produces a uniform distribution of the different output values. - + ## Operator settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleAttributeMap.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleAttributeMap.md index 7599862a42e..042732d0458 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleAttributeMap.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleAttributeMap.md @@ -11,7 +11,7 @@ This Operator takes an attribute map and an index and outputs the value of the a Depending on the attribute map, the output attribute value type changes. You must explicitly specify the output type for this Operator or it produces undefined behavior. For information on how to do this, see [Operator configuration](#operator-configuration). -![](Images/Operator-SampleAttributeMapGraph.png) +![In a VFX Graph, the Sample Attribute Map Operator takes an attribute map, an index, and the number of points in the Point Cache. The Sample Attribute Map Operator outputs the value of the attribute at the index.](Images/Operator-SampleAttributeMapGraph.png) ### Operator settings diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBezier.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBezier.md index f66de478abd..97a5a84e3e8 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBezier.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBezier.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Math > Vector** The **Sample Bezier** Operator performs a four-point bezier interpolation based on four positions and a value to represent the progress through the curve. It returns the interpolated position and the position's tangent, which is a vector which points along the bezier curve at the position. -![](Images/Operator-SampleBezierExample.gif) + ## Operator properties diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMeshIndex.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMeshIndex.md index 64f8e620596..534c44d7da2 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMeshIndex.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleMeshIndex.md @@ -32,4 +32,3 @@ The Mesh index sampling feature has the following limitations: - If a Mesh is not [readable](https://docs.unity3d.com/ScriptReference/Mesh-isReadable.html), the **Position (Mesh)** Block and **Sample Mesh Index** Operator return zeros values when they attempt to sample it. For information on how to make a Mesh readable, see [Model import settings](https://docs.unity3d.com/Manual/FBXImporter-Model.html) -![](Images/ReadWrite.png) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SawtoothWave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SawtoothWave.md index 918556cdecb..f7756aa94f5 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SawtoothWave.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SawtoothWave.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Math > Wave > Sawtooth Wave** The **Sawtooth Wave** Operator evaluates an input to generate a value which linearly increases from a minimum to a maximum value. When the output value reaches the maximum, it resets to the minimum value. -![](Images/Operator-SawtoothWaveAnimation.gif) + If you set **Frequency** to **1**, the output value goes from **Min** to **Max** as the **Input** changes from **0** to almost **1**. When **Input** reaches **1**, the output value goes back to **Min** and starts the cycle again. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SineWave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SineWave.md index 02420f9f53c..32f68063afd 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SineWave.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SineWave.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Math > Wave > Sine Wave** The **Sine Wave** Operator evaluates an input to generate a value which smoothly oscillates between a minimum and a maximum value. This Operator also includes a frequency value which changes the rate at which the output value oscillates. -![](Images/Operator-SineWaveAnimation.gif) + If you set **Frequency** to **1**, the output value goes from **Min** to **Max** and back to **Min** as the **Input** changes from **0** to **1**. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Position).md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Position).md index 7cce4d56ee7..da48ffd4d21 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Position).md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-Transform(Position).md @@ -6,7 +6,7 @@ The **Transform (Position)** Operator applies a transformation to a position to For example, this is useful if you want to spawn particles in a circle and then rotate the circle: -![](Images/Operator-Transform(Position)Example.png) +![Two examples of a VFX Graph. In each graph, the System starts with a Position: Circle Block. The graph has a Get Attribute Position (Current) Operator that inputs into a Transform Position Operator, then the Position input of a Set Position Block. In the first graph, the x-axis of Angles is set to 0, and the ring of particles faces the camera. In the second graph, the x-axis is set to 90, and the ring of particles faces up.](Images/Operator-Transform(Position)Example.png) ## Operator properties diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TriangleWave.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TriangleWave.md index 2f86d61f9a8..0c628988526 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TriangleWave.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-TriangleWave.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Math > Wave > Triangle Wave** The **Triangle Wave** Operator allows you to generate a value which linearly oscillates between a minimum and a maximum value based on a provided input and a set frequency. -![](Images/Operator-TriangleWaveAnimation.gif) +![The Triangle Wave Operator allows you to generate a value which linearly oscillates between a minimum and a maximum value based on a provided input and a set frequency.](Images/Operator-TriangleWaveAnimation.gif) If **Frequency** is set to 1, the blue dot gos in a straight line from **Min** to **Max** and back to **Min** in the span on **Input** going from 0 to 1. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueCurlNoise.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueCurlNoise.md index 7787449aef0..680d250a96f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueCurlNoise.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-ValueCurlNoise.md @@ -4,7 +4,7 @@ Menu Path : **Operator > Noise > Value Curl Noise** The **Value Curl Noise** Operator allows you to sample a noise value within a specified range in two or three dimensions based on provided coordinates. Value curl noise uses similar math to the [Value Noise](Operator-Value-Noise.md) Operator, but with the addition of a curl function which allows it to generate a turbulent noise. This resulting noise is incompressible (divergence-free), which means that particles cannot converge to sink points where they get stuck. -![](Images/Operator-ValueCurlNoiseAnimation.gif) + A good use case for Curl Noise is emulating fluid or gas simulation, without having to perform complex calculations. @@ -19,12 +19,12 @@ A good use case for Curl Noise is emulating fluid or gas simulation, without hav | **Input** | **Type** | **Description** | | -------------- | ------------------- | ------------------------------------------------------------ | -| **Coordinate** | FloatVector2Vector3 | The coordinate in the noise field to sample from.
    ![](Images/Operator-ValueCurlNoiseCoordinate.gif)
    The **Type** changes to match the number of **Dimensions**. | -| **Frequency** | Float | The period in which Unity samples the noise. A higher frequency results in more frequent noise change.
    ![](Images/Operator-ValueCurlNoiseFrequency.gif) | -| **Octaves** | Int | The number of layers of noise. More octaves create a more varied look but are also more resource-intensive to calculate.
    ![](Images/Operator-ValueCurlNoiseOctaves.gif) | -| **Roughness** | Float | The scaling factor Unity applies to each octave. Unity only uses roughness when **Octaves** is set to a value higher than 1.
    ![](Images/Operator-ValueCurlNoiseRoughness.gif) | -| **Lacunarity** | Float | The rate of change of the frequency for each successive octave. A lacunarity value of 1 results in each octave having the same frequency.
    ![](Images/Operator-ValueCurlNoiseLacunarity.gif) | -| **Amplitude** | Float | The magnitude of the noise. A higher value increases the range of values the **Noise** port can return.
    ![](Images/Operator-ValueCurlNoiseAmplitude.gif) | +| **Coordinate** | FloatVector2Vector3 | The coordinate in the noise field to sample from.

    The **Type** changes to match the number of **Dimensions**. | +| **Frequency** | Float | The period in which Unity samples the noise. A higher frequency results in more frequent noise change.
    | +| **Octaves** | Int | The number of layers of noise. More octaves create a more varied look but are also more resource-intensive to calculate.
    | +| **Roughness** | Float | The scaling factor Unity applies to each octave. Unity only uses roughness when **Octaves** is set to a value higher than 1.
    | +| **Lacunarity** | Float | The rate of change of the frequency for each successive octave. A lacunarity value of 1 results in each octave having the same frequency.
    | +| **Amplitude** | Float | The magnitude of the noise. A higher value increases the range of values the **Noise** port can return.
    | | **Output** | **Type** | **Description** | | ---------- | -------- | ---------------------------------------------- | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operators.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operators.md index c86df77530d..ed69b536669 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operators.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operators.md @@ -2,7 +2,7 @@ Operators are the atomic elements of the [Property Workflow](GraphLogicAndPhilosophy.md#property-workflow-horizontal-logic). These Nodes allow you to define custom expressions in Visual Effect Graphs that you can use to create custom behaviors. For instance compute values from math operations and use the result of these operations to sample curves, gradients, to use the resulting values into [Block](Blocks.md) or [Context](Contexts.md) input [Properties](Properties.md). -![Operators](Images/Operators.png) +![A graph with a chain of connected Operators. A VFX Time Operator outputs Total Time to the A property of a Multiply (float) Operator. That Operator connects to the Coordinates property of a Value Noise 3D Operator. An Add (Position - Local) Operator then adds the Derivatives output of the Value Noise 3D Operator and the output of a Position Operator. The Add Operator connects to the Position parameter of a Set Position On Circle Context.](Images/Operators.png) ## Adding Operator Nodes @@ -27,14 +27,10 @@ For example, when you change the Cull Mode of a `Position (Depth)` Operator from Uniform Operators are Nodes that you can use with a single input of a Variable Type. For example, you can use absolute values for a float, a Vector3 or an Integer. -![](Images/OperatorsUniform.png) - The output type of any Uniform Operator is always the same as its input Type. Connecting a new input with a different type will change automatically the output type of the operator. If you want to manually set the Node to a specific type, see **Configuring Uniform Operators**. #### Configuring Uniform Operators -![](Images/OperatorsUniformOptions.png) - Press the Options icon in the top-right corner to switch the Node view to Configuration mode. In this mode you can manually change the operator Type. ## Unified Operators @@ -43,14 +39,10 @@ In addition to the Uniform Operators, some operators with many inputs can handle For example, the **Lerp** Operator can interpolate between two Vectors uniformly based on a float or every component using a Vector of the Same Length. -![](Images/OperatorsUnified.png) - Unified Operators have type constraints but allow some flexibility in order to adapt to some variety of types. #### Configuring Unified Operators -![](Images/OperatorsUnifiedOptions.png) - Press the Options icon in the top-right corner to switch the Node view to Configuration mode. In this mode you can manually change the operator Types for every input. In some cases, changing one input type will change another input type in order to maintain compatibility. ## Cascaded Operators @@ -59,16 +51,12 @@ Press the Options icon in the top-right corner to switch the Node view to Config For example, the Add Node allows you to add many inputs of different types using a single Node. -![](Images/OperatorsCascaded.png) - You can connect many inputs to a Cascaded Operator. To add a new item to the list, connect an edge to the last gray input at the bottom of the Node. This creates a new input that uses the property type you connected. When you delete a connection, Unity also removes the input property from the list. However you can also delete an input property manually using the Configuration Mode. #### Configuring Cascaded Operators -![](Images/OperatorsCascadedOptions.png) - Press the Options icon in the top-right corner to switch the Node view to Configuration mode. In this mode you can: * Rename Inputs using their Text Field. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Properties.md b/Packages/com.unity.visualeffectgraph/Documentation~/Properties.md index 1d28bcbb211..a395f410e7b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Properties.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Properties.md @@ -2,6 +2,8 @@ Properties are editable fields that you can connect to graph elements using [Property workflow](GraphLogicAndPhilosophy.md). They can be found on graph elements such as [Contexts](Contexts.md), [Blocks](Blocks.md) and [Operators](Operators.md). +![Two examples of using properties in a VFX Graph. In the first example, a blue line indicates that a Get Attribute: velocity (Current) Operator has its y output property connected to the X input of a Absolute (float) Operator. In the second example, a Total Time Operator outputs into the X parameters of both a Sine (float) Operator and a Cosine (float) Operator, which in turn output into the X and Y input parameters of a Vector3 Operator.](Images/PropertyComponents.png) + ## Using Properties Properties appear on graph elements, and change their value according to their actual value in the graph. When you connect another property to a property port, the graph element displays the computed value of the connected property. @@ -22,16 +24,12 @@ Properties in Visual Effect Graph can be of any Type, including the following: ### Accessing Property Components -![](Images/PropertyComponents.png) - Properties that are made of multiple components (such as Vectors, or Colors) can display every component individually in order to connect these to other properties of compatible type. Use the arrow next to the property to unfold the components. ### Casting Properties Properties can connect between base types to perform a cast. Casts change the data type you are working on in order to inherit its properties. For example, if you cast a float to integer, the float can use integer division. -![](Images/PropertyCast.png) - Casting from one type to another abides with the following rules: * All Casting rules from HLSL apply: @@ -47,10 +45,6 @@ Expand Compound Property Types to access their components. To access components in a script, add an underscore before the component name. For example to access the `radius` component of `MySphere`, use `MySphere_radius`. -![](Images/PropertyCompound.png) - - - ### Spaceable Properties Spaceable Properties are Property Types that carry **Space information** (Local/World) with its value. This information is used by the graph to perform automatic space transformations when required. @@ -68,8 +62,6 @@ Depending on the [System Simulation Space](Systems.md#system-spaces), the value Property Nodes are [Operators](Operators.md) that give access to Graph-Wide Properties defined in the [Blackboard](Blackboard.md). These properties allow you to reuse the same value throughout the graph at different places. -![](Images/PropertyNode.png) - * Property Nodes display a Green dot left to the Property name if the property is exposed. * To create a Property Node: * Drag the Node from the Blackboard Panel into the Workspace. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/PropertyBinders.md b/Packages/com.unity.visualeffectgraph/Documentation~/PropertyBinders.md index 2b022969cb1..f82888edc90 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/PropertyBinders.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/PropertyBinders.md @@ -6,15 +6,12 @@ For example, a Sphere Binder can automatically set the position and the radius o ## Adding Property Binders -![](Images/PropertyBinder.png) - You can add Property Binders through a common MonoBehaviour called **VFX Property Binder**. This behavior allows you to use one or more **Property Bindings**. Each property binding is creates a relationship between an [Exposed Property](Blackboard.md#exposed-properties-in-inspector) and a runtime or scene element. You can also add Property binders through the **Add Component** menu. Unity creates a VFX Property Binder component automatically if one does not already exist. - -![](Images/PropertyBinder_example.png) ->Here is an example of using Property Binder to bind Game Object's **transform** and **position** to VFX graph's exposed properties of similar type. +![A Visual Effect component that uses VFX Property Binder to bind a GameObject's Transform and Position components to VFX Graph's exposed properties of the same type.](Images/PropertyBinder_example.png) +
    A Visual Effect component that uses VFX Property Binder to bind a GameObject's **Transform** and **Position** components to VFX Graph's exposed properties of the same type. ## Built-in Property Binders diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md b/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md index 02b265dae1a..c721287de9b 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Subgraph.md @@ -14,7 +14,7 @@ Subgraphs allow you to factorize commonly used sets of Nodes in a graph into reu System Subgraphs are Visual Effect Graphs that are **nested** inside other Visual Effect Graphs: -![](Images/SystemSubgraph.png) +![Example subgraph of an explosion.](Images/SystemSubgraph.png)
    Example subgraph of an explosion. Visual Effect Graphs used as Subgraphs appear as a [Context](Contexts.md) that presents: @@ -54,7 +54,7 @@ You can send Events to the Workflow inputs of the System Subgraph Node using Eve Block Subgraphs are specific Subgraphs that only contain Operators and Blocks. You can use Block Subgraphs as Blocks inside another Visual Effect Graph or SubGraph. -![](Images/BlockSubgraph.png) +![Example Block subgraph of a superpower.](Images/BlockSubgraph.png)
    Example Block subgraph of a superpower. ### Creating Block Subgraphs @@ -75,7 +75,7 @@ You can edit a Block Subgraph in one of the following ways: * Double click the Subgraph Asset in the Project view. * Right-click the subgraph Block and select **Open Subgraph** in the context menu. -![](Images/BlockSubgraphContext.png) +![Dropdown edit menu of a Block subgraph.](Images/BlockSubgraphContext.png)
    Dropdown edit menu of a Block subgraph. You can add Blocks inside the non-removable Context named Block Subgraph. @@ -102,7 +102,7 @@ You can customize Block Subgraph properties in the same way as regular Block pro Operator Subgraphs are specific Subgraphs Assets that only contain Operators and that can be used as Operators inside another Visual Effect Graph or Sub Graph. -![](Images/OperatorSubgraph.png) +![Example Operator subgraph of a random vector.](Images/OperatorSubgraph.png)
    Example Operator subgraph of a random vector. ### Creating Operator Subgraphs diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Systems.md b/Packages/com.unity.visualeffectgraph/Documentation~/Systems.md index 57b58e6c8ea..8b438bd79fd 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Systems.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Systems.md @@ -2,7 +2,7 @@ A System refers to one or many [Contexts](Contexts.md) that define a standalone part of a visual effect. A System can be a Particle System, a Particle Strip System, a Mesh, or a Spawn machine. In the graph view, a System draws a dashed line box around the Contexts that it consists of. -![](Images/SystemDrawBox.png) +![A Visual Effect Graph featuring a System enclosed within a green dashed box containing three labeled boxes: Initialize Particle (top), Update Particle (middle), and Output Particle Quad (bottom), each labeled Local. Connections flow sequentially between them: Initialize Particle → Update Particle → Output Particle Quad. Additionally, the Initialize Particle box is connected to a Spawn box located outside the green dashed boundary.](Images/SystemDrawBox.png) Multiple Systems can interact with each other within a Visual Effect Graph: @@ -23,16 +23,10 @@ Regardless of the System's simulation space, you can use [Spaceable Properties]( ### Setting a System simulation space -A System displays its simulation space in the top-right corner of each Context it consists of. This is the System's **simulation space identifier**. If a Context does not use process anything that depends on simulation space, it does not display the simulation space identifier. - -![](Images/SystemSpaceIdentifier.png) +A System displays its simulation space in the top-right corner of each Context it consists of. This is the System's **simulation space identifier**. The word "Local" in a rounded box stands for "Local space", and the word "World" in a rounded box stands for "World space". If a Context does not use process anything that depends on simulation space, it does not display the simulation space identifier. To change the simulation space for a System, click the System's simulation space identifier to cycle through the compatible spaces. -![](Images/SystemSpaceLocalWorld.png) - ### Simulation space identifiers in Properties -Some [Spaceable Properties](Properties.md) display a smaller version of the simulation space identifier. This does not change the System's simulation space, but instead allows you to express a value in a space that is different from the System's simulation space. For example, a System could simulate in world space but a Property could be a local position. - -![](Images/SystemSpaceLocalWorldSmall.png) +Some [Spaceable Properties](Properties.md) display a smaller version of the simulation space identifier. An "L" in a rounded box stands for "Local space", and a "W" in a rounded box stands for "World space". This does not change the System's simulation space, but instead allows you to express a value in a space that is different from the System's simulation space. For example, a System could simulate in world space but a Property could be a local position. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md index 065469d6cfb..69fcdca2485 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/TableOfContents.md @@ -84,18 +84,14 @@ * [Calculate Mass from Volume](Block-CalculateMassFromVolume.md) * [Map](Block-SetAttributeFromMap.md) * [Set](Block-SetAttribute.md) - * Collision - * [Collide with AABox](Block-CollideWithAABox.md) - * [Collide with Cone](Block-CollideWithCone.md) - * [Collide with Depth Buffer](Block-CollideWithDepthBuffer.md) - * [Collide with Plane](Block-CollideWithPlane.md) - * [Collide with Signed Distance Field](Block-CollideWithSignedDistanceField.md) - * [Collide with Sphere](Block-CollideWithSphere.md) + * [Collision](Block-Collision-LandingPage.md) + * [Collision Shape](Block-CollisionShape.md) + * [Collision Depth Buffer](Block-CollideWithDepthBuffer.md) * Flipbook * [Flipbook Player](Block-FlipbookPlayer.md) * Force - * [Conform to Signed Distance Field](Block-ConformToSignedDistanceField.md) - * [Conform to Sphere](Block-ConformToSphere.md) + * [Attractor Shape Signed Distance Field](Block-ConformToSignedDistanceField.md) + * [Attractor Shape Sphere](Block-ConformToSphere.md) * [Force](Block-Force.md) * [Gravity](Block-Gravity.md) * [Linear Drag](Block-LinearDrag.md) @@ -119,19 +115,11 @@ * Output * [Camera Fade](Block-CameraFade.md) * [Subpixel Anti-Aliasing](Block-SubpixelAntiAliasing.md) - * Position + * [Position Shape](Block-SetPositionShape-LandingPage.md) * [Set Position (Depth)](Block-SetPosition(Depth).md) - * [Position (Mesh)](Block-SetPosition(Mesh).md) - * [Position (Signed Distance Field)](Block-SetPosition(SignedDistanceField).md) - * [Position (Skinned Mesh)](Block-SetPosition(SkinnedMesh).md) - * [Set Position (Sequential : Circle)](Block-SetPosition(Sequential).md) - * [Set Position (Sequential : Line)](Block-SetPosition(Sequential).md) - * [Set Position (Sequential : ThreeDimensional)](Block-SetPosition(Sequential).md) - * [Set Position (Shape : AABox)](Block-SetPosition(AABox).md) - * [Set Position (Shape : Circle)](Block-SetPosition(Circle).md) - * [Set Position (Shape : Cone)](Block-SetPosition(Cone).md) - * [Set Position (Shape : Line)](Block-SetPosition(Line).md) - * [Set Position (Shape : Sphere)](Block-SetPosition(Sphere).md) + * [Set Position (Mesh)](Block-SetPosition(Mesh).md) + * [Set Position (Skinned Mesh)](Block-SetPosition(SkinnedMesh).md) + * [Set Position Shape](Block-SetPositionShape.md) * [Set Position (Sequential)](Block-SetPosition(Sequential).md) * [Tile/Warp Positions](Block-TileWarpPositions.md) * Size diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Timeline.md b/Packages/com.unity.visualeffectgraph/Documentation~/Timeline.md index ed5f0c806ad..da8dafa725d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Timeline.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Timeline.md @@ -1,7 +1,5 @@ # Visual Effects and Timeline -![](Images/VFX_Timeline_Window.png) - Use Unity’s [Timeline](https://docs.unity3d.com/Packages/com.unity.timeline@latest/index.html?subfolder=/manual/index.html) to control a Visual Effect Graph’s properties and [Events](#Events). To do this, add the following to a [Timeline instance](https://docs.unity3d.com/Packages/com.unity.timeline@latest/index.html?subfolder=/manual/wf_instance.html): - [Visual effect Control Track](#vfx-control-track) @@ -13,8 +11,6 @@ Use Unity’s [Timeline](https://docs.unity3d.com/Packages/com.unity.timeline@la The Visual Effect Control track is a type of Timeline track that determines when Timeline can send [Events](Events.md) and [Event Attribute Payloads](Events.md#event-attribute-payloads). -![](Images/VFX_Timeline_ControlTrack.png) - To control a Visual Effect in a Control track, create a Visual Effect Control Track and add a Visual Effect to it: 1. Open the Timeline Window (menu: **Window** > **Sequencing** > **Timeline**) @@ -23,7 +19,7 @@ To control a Visual Effect in a Control track, create a Visual Effect Control Tr 4. Save your Timeline asset. 5. Click the **+** button at the top-left of the Timeline window. 6. Select **Visual Effect** **Control Track.** -7. Select the ![img](images/vfx-timeline-toggle.png)icon and choose a Visual Effect Asset. +7. Select the **Visual Effect (Visual Effect)** picker (⊙) and choose a Visual Effect Asset. You can also configure the attributes of an Event in an Event Attribute Payload in script with [VFXEventAttribute](https://docs.unity3d.com/ScriptReference/VFX.VisualEffect.SendEvent.html). @@ -41,8 +37,6 @@ When you select a Visual Effect Control track, the following property appears in A control clip is a section of the Timeline track that controls the Visual Effect. You can use a control clip to scrub through a Visual Effect and to add clip events and single events. A Visual Effect Control clip exists inside a Visual Effect Control track. -![](Images/VFX_Timeline_ControlClip.png) - To add a Visual Effect Control Clip: 1. In the Clips view, right-click on an empty area within the Visual Effect Control track. @@ -55,33 +49,33 @@ Each clip in a Visual Effect Control Track controls how that Visual Effect behav When you select a Visual Effect Control clip, the following properties appears in the Inspector window: -| **Property** | | | **Description** | +| **Property** | **Subproperty** | **Option** | **Description** | | -------------- | ------------------ | ---------- | ------------------------------------------------------------ | -| Scrubbing | | | Use **Scrubbing** to synchronize an effect with other animated GameObjects in the Timeline instance.Enable this option to play the Visual Effect backwards and forwards when you drag the Timeline Playhead.
    When you enable **Scrubbing**, **Reinit** defaults to **On Enter And Exit Clip**. This is because scrubbing can only control a Visual Effect that starts at the beginning of the Visual Effect Control clip.
    Enable this property to use the **Prewarm** property.

    Disable Scrubbing to:
    • Expose the Enable PreWarm property when you set **Reinit** to **On Enter or Exit**.
    • Send the Enter Event when the playhead enters the Visual Effect Control clip. | -| Reinit | | | Controls when Timeline initializes the Visual Effect:
    • **None:** Timeline does not initialize the Visual Effect again.
    • **On Exit Clip:** Timeline restarts the Visual Effect at the end of the Visual Effect Control clip.
    • **On Enter Clip:** Timeline reinitializes the Visual Effect at the beginning of the Visual Effect Control clip. When **Scrubbing** is disabled, this mode exposes the Enable PreWarm property.
    • **On Enter or Exit:** Timeline reinitializes the Visual Effect at the beginning and end of the Visual Effect Control clip. Reinit uses this mode by default. When **Scrubbing** is disabled, this mode exposes the **Enable PreWarm** property. | -| Start Seed | | | This property represents the initial seed that Unity uses for its random number generator (see also [`VisualEffect.startSeed`](https://docs.unity3d.com/ScriptReference/VFX.VisualEffect-startSeed.html)).

    When you enable **Scrubbing** or when the **Reinit** mode is set to **On Enter Clip**, the Visual Effect Control clip controls this property. | -| Enable PreWarm | | | Enable this property to start processing the Visual Effect before it appears.
    When you set this property, it doesn’t affect the PreWarm settings in the Visual Effect Asset. This means you can have more than one animation clip that uses the same Visual Effect Asset with different PreWarm settings.

    This property is only available when you enable **Scrubbing** or when you set the **Reinit** mode to **On Enter Clip** or **On Enter or Exit.** | -| | PreWarm Total Time | | Simulates the Visual Effect for a given amount of time before it starts. The value for this property is in seconds. Set this value to recalculate **PreWarm Delta Time**. | -| | PreWarm Step Count | | Sets the number of simulation steps that Unity uses to calculate the PreWarm.
    A higher number of steps makes the PreWarm more precise but it can impact performance.
    When you change this value, Unity calculates a new value for **PreWarm Delta Time**. | -| | PreWarm Delta Time | | Sets the delta time, in seconds, that Unity uses for the PreWarm.
    When you change this value, Unity calculates new values for **PreWarm Total Time** and **PreWarm Step Count**. Adjust this value, instead of **PreWarm Total Time** and **PreWarm Step Count** individually, if you need to use a precise delta time for your simulation. | -| | PreWarm Event Name | | The name of the [Event](Events.md) that Unity sends when the effect starts. You can customize this name, or leave it blank to make it so that every system does not spawn by default.

    The default value is **OnPlay.** | -| Clip Events | | | Select **+** to add a Visual Effect [Event](Events.md) in the VisualEffect Control clip. A Clip Event has a start and an end.
    When you disable scrubbing and the playhead enters the Visual Effect Control clip, it sends the **Enter** Event. | -| | Enter | | Unity starts the Visual Effect when the Timeline Playhead is at the beginning of the Clip Event. | -| | | Time | The value Unity uses to determine when to play the Visual Effect within the clip. The unit changes depending on the **Time Space** mode you select. | -| | | Time Space | • **After Clip Start**: Plays the Event after the beginning of the Visual Effect Control clip, plus the number of seconds you enter in the **Time** field.**
    • Before Clip End**: Plays the Event before the end of the Visual Effect Control clip, minus the number of seconds you enter in the **Time** field.
    • **Percentage**: Plays the Event at a percentage of the total time of the Visual Effect Control clip. For example, a **Time** value of 0 indicates the start of the clip and a value of 100 indicates the end.
    • **Absolute**: Plays the Event at the second you specify in the **Time** property. | -| | | Name | The name of the Clip Event. The default name of the Enter Clip Event is OnPlay. This name appears in the Visual Effect Control track. | -| | | Attributes | Select **+** to add an attribute that Timeline sends with a corresponding Visual Effect Event.. For example, [position](Operator-GetAttributePosition.md), [color](Operator-GetAttributeColor.md) or a [custom attribute](Operator-GetCustomAttribute.md). | -| | Exit | | Unity stops the Visual Effect when the Timeline Playhead reaches the end of the clip. | -| | | Time | The value Unity uses to determine when to play the Visual Effect within the Clip. The unit changes depending on the **Time Space** mode you select. | -| | | Time Space | • **After Clip Start**: Plays the event after the beginning of the Visual Effect Control clip.
    • **Before Clip End**: Plays the event before the end of the Visual Effect Control clip.
    • **Percentage**: Plays the event at a percentage of the total time of the Visual Effect Control clip. For example, a value of 0 indicates the start of the clip and 100 indicates the end.
    • **Absolute**: Plays the event at a specific second in the track. | -| | | Name | The name of the Clip Event. The default name of the Exit Clip Event is OnStop. This name appears in the Visual Effect Control track. | -| | | Attributes | Select **+** to add an attribute that Timeline sends with a corresponding Visual Effect Event. For example, [position](Operator-GetAttributePosition.md), [color](Operator-GetAttributeColor.md) or a [custom attribute](Operator-GetCustomAttribute.md). Unity uses these attributes to create a [VFXEventAttribute](https://docs.unity3d.com/ScriptReference/VFX.VFXEventAttribute.html) which it sends with the single Event. | -| Single Events | | | Select **+** to add a single Visual Effect Event in the Visual Effect Control clip. A Single Event happens once. This is useful for a burst spawn system. When you disable **Scrubbing**, Single Events only play when the timeline is playing forward. | -| | Editor Color | | The color that indicates the Single Event in the Timeline Window. | -| | Time | | The value Unity uses to determine when to send the Single Event within the Visual Effect Control clip. The unit changes depending on the **Time Space** mode you select. | -| | Time Space | | • **After Clip Start**: Plays the Single Event after the beginning of the Visual Effect Control clip.
    • **Before Clip End**: Plays the Single Event before the end of the Visual Effect Control clip.
    • **Percentage**: Plays the Single Event at a percentage of the total time of the Visual Effect Control clip. For example, a value of 0 indicates the start of the clip and 100 indicates the end.
    • **Absolute**: Plays the single Event at a specific second in the track. | -| | Name | | The name of the Single Event. This name appears in the Visual Effect Control track. | -| | Attributes | | Select **+** to add an attribute that Timeline sends with a corresponding Visual Effect Event. For example, [position](Operator-GetAttributePosition.md), [color](Operator-GetAttributeColor.md) or a [custom attribute](Operator-GetCustomAttribute.md).
    Unity uses these attributes to create a [VFXEventAttribute](https://docs.unity3d.com/ScriptReference/VFX.VFXEventAttribute.html) which it sends with the single Event. | +| Scrubbing | N/A | N/A | Use **Scrubbing** to synchronize an effect with other animated GameObjects in the Timeline instance.Enable this option to play the Visual Effect backwards and forwards when you drag the Timeline Playhead.
    When you enable **Scrubbing**, **Reinit** defaults to **On Enter And Exit Clip**. This is because scrubbing can only control a Visual Effect that starts at the beginning of the Visual Effect Control clip.
    Enable this property to use the **Prewarm** property.

    Disable Scrubbing to:
    • Expose the Enable PreWarm property when you set **Reinit** to **On Enter or Exit**.
    • Send the Enter Event when the playhead enters the Visual Effect Control clip. | +| Reinit | N/A | N/A | Controls when Timeline initializes the Visual Effect:
    • **None:** Timeline does not initialize the Visual Effect again.
    • **On Exit Clip:** Timeline restarts the Visual Effect at the end of the Visual Effect Control clip.
    • **On Enter Clip:** Timeline reinitializes the Visual Effect at the beginning of the Visual Effect Control clip. When **Scrubbing** is disabled, this mode exposes the Enable PreWarm property.
    • **On Enter or Exit:** Timeline reinitializes the Visual Effect at the beginning and end of the Visual Effect Control clip. Reinit uses this mode by default. When **Scrubbing** is disabled, this mode exposes the **Enable PreWarm** property. | +| Start Seed | N/A | N/A | This property represents the initial seed that Unity uses for its random number generator (see also [`VisualEffect.startSeed`](https://docs.unity3d.com/ScriptReference/VFX.VisualEffect-startSeed.html)).

    When you enable **Scrubbing** or when the **Reinit** mode is set to **On Enter Clip**, the Visual Effect Control clip controls this property. | +| Enable PreWarm | N/A | N/A | Enable this property to start processing the Visual Effect before it appears.
    When you set this property, it doesn’t affect the PreWarm settings in the Visual Effect Asset. This means you can have more than one animation clip that uses the same Visual Effect Asset with different PreWarm settings.

    This property is only available when you enable **Scrubbing** or when you set the **Reinit** mode to **On Enter Clip** or **On Enter or Exit.** | +| N/A | PreWarm Total Time | N/A | Simulates the Visual Effect for a given amount of time before it starts. The value for this property is in seconds. Set this value to recalculate **PreWarm Delta Time**. | +| N/A | PreWarm Step Count | N/A | Sets the number of simulation steps that Unity uses to calculate the PreWarm.
    A higher number of steps makes the PreWarm more precise but it can impact performance.
    When you change this value, Unity calculates a new value for **PreWarm Delta Time**. | +| N/A | PreWarm Delta Time | N/A | Sets the delta time, in seconds, that Unity uses for the PreWarm.
    When you change this value, Unity calculates new values for **PreWarm Total Time** and **PreWarm Step Count**. Adjust this value, instead of **PreWarm Total Time** and **PreWarm Step Count** individually, if you need to use a precise delta time for your simulation. | +| N/A | PreWarm Event Name | N/A | The name of the [Event](Events.md) that Unity sends when the effect starts. You can customize this name, or leave it blank to make it so that every system does not spawn by default.

    The default value is **OnPlay.** | +| Clip Events | N/A | N/A | Select **+** to add a Visual Effect [Event](Events.md) in the VisualEffect Control clip. A Clip Event has a start and an end.
    When you disable scrubbing and the playhead enters the Visual Effect Control clip, it sends the **Enter** Event. | +| N/A | Enter | N/A | Unity starts the Visual Effect when the Timeline Playhead is at the beginning of the Clip Event. | +| N/A | N/A | Time | The value Unity uses to determine when to play the Visual Effect within the clip. The unit changes depending on the **Time Space** mode you select. | +| N/A | N/A | Time Space | • **After Clip Start**: Plays the Event after the beginning of the Visual Effect Control clip, plus the number of seconds you enter in the **Time** field.**
    • Before Clip End**: Plays the Event before the end of the Visual Effect Control clip, minus the number of seconds you enter in the **Time** field.
    • **Percentage**: Plays the Event at a percentage of the total time of the Visual Effect Control clip. For example, a **Time** value of 0 indicates the start of the clip and a value of 100 indicates the end.
    • **Absolute**: Plays the Event at the second you specify in the **Time** property. | +| N/A | N/A | Name | The name of the Clip Event. The default name of the Enter Clip Event is OnPlay. This name appears in the Visual Effect Control track. | +| N/A | N/A | Attributes | Select **+** to add an attribute that Timeline sends with a corresponding Visual Effect Event.. For example, [position](Operator-GetAttributePosition.md), [color](Operator-GetAttributeColor.md) or a [custom attribute](Operator-GetCustomAttribute.md). | +| N/A | Exit | N/A | Unity stops the Visual Effect when the Timeline Playhead reaches the end of the clip. | +| N/A | N/A | Time | The value Unity uses to determine when to play the Visual Effect within the Clip. The unit changes depending on the **Time Space** mode you select. | +| N/A | N/A | Time Space | • **After Clip Start**: Plays the event after the beginning of the Visual Effect Control clip.
    • **Before Clip End**: Plays the event before the end of the Visual Effect Control clip.
    • **Percentage**: Plays the event at a percentage of the total time of the Visual Effect Control clip. For example, a value of 0 indicates the start of the clip and 100 indicates the end.
    • **Absolute**: Plays the event at a specific second in the track. | +| N/A | N/A | Name | The name of the Clip Event. The default name of the Exit Clip Event is OnStop. This name appears in the Visual Effect Control track. | +| N/A | N/A | Attributes | Select **+** to add an attribute that Timeline sends with a corresponding Visual Effect Event. For example, [position](Operator-GetAttributePosition.md), [color](Operator-GetAttributeColor.md) or a [custom attribute](Operator-GetCustomAttribute.md). Unity uses these attributes to create a [VFXEventAttribute](https://docs.unity3d.com/ScriptReference/VFX.VFXEventAttribute.html) which it sends with the single Event. | +| Single Events | N/A | N/A | Select **+** to add a single Visual Effect Event in the Visual Effect Control clip. A Single Event happens once. This is useful for a burst spawn system. When you disable **Scrubbing**, Single Events only play when the timeline is playing forward. | +| N/A | Editor Color | N/A | The color that indicates the Single Event in the Timeline Window. | +| N/A | Time | N/A | The value Unity uses to determine when to send the Single Event within the Visual Effect Control clip. The unit changes depending on the **Time Space** mode you select. | +| N/A | Time Space | N/A | • **After Clip Start**: Plays the Single Event after the beginning of the Visual Effect Control clip.
    • **Before Clip End**: Plays the Single Event before the end of the Visual Effect Control clip.
    • **Percentage**: Plays the Single Event at a percentage of the total time of the Visual Effect Control clip. For example, a value of 0 indicates the start of the clip and 100 indicates the end.
    • **Absolute**: Plays the single Event at a specific second in the track. | +| N/A | Name | N/A | The name of the Single Event. This name appears in the Visual Effect Control track. | +| N/A | Attributes | N/A | Select **+** to add an attribute that Timeline sends with a corresponding Visual Effect Event. For example, [position](Operator-GetAttributePosition.md), [color](Operator-GetAttributeColor.md) or a [custom attribute](Operator-GetCustomAttribute.md).
    Unity uses these attributes to create a [VFXEventAttribute](https://docs.unity3d.com/ScriptReference/VFX.VFXEventAttribute.html) which it sends with the single Event. | ## Animating Properties @@ -89,7 +83,7 @@ To animate the animatable properties of a Visual Effect graph in the Timeline an 1. Create a [Visual Effect control track](#vfx-control-track). 2. In the Timeline window, open the **+** drop down and select **Animation Track.** -3. Select the Animation Track’s ![img](images/vfx-timeline-toggle.png)icon and choose a Visual Effect Asset that has an [Animator component](https://docs.unity3d.com/Manual/class-Animator.html). +3. Select the **Visual Effect (Animator)** picker (⊙) and choose a Visual Effect Asset that has an [Animator component](https://docs.unity3d.com/Manual/class-Animator.html). This binds the Visual Effect GameObject to an animation track and adds a [Playable Director](https://docs.unity3d.com/Packages/com.unity.timeline@latest/index.html?subfolder=/manual/play_director.html) component in the Inspector window. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/VectorFields.md b/Packages/com.unity.visualeffectgraph/Documentation~/VectorFields.md index 1fb79f0d09f..c1f9e4cb57c 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/VectorFields.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/VectorFields.md @@ -8,8 +8,6 @@ Volume File is an [Open Source specification](https://github.com/peeweek/VectorF ## Vector Field Importer -![](Images/VectorFieldInspector.png) - Unity provides the following settings in the Inspector to import Volume File files: * **Output Format :** Precision of the Output 3D Texture diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectPreferences.md b/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectPreferences.md index a9ffe0d9dcf..470e9c677bd 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectPreferences.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectPreferences.md @@ -8,8 +8,6 @@ Windows: macOS: * Navigate to **Unity > Settings > Visual Effects** -![](Images/VisualEffectPreferences.png) - ## Properties: | Name | Description | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectProjectSettings.md b/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectProjectSettings.md index 6e94b59e1bd..1882a68c6ec 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectProjectSettings.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/VisualEffectProjectSettings.md @@ -2,8 +2,6 @@ Visual Effect Graph Project Settings is a section in Unity Project Settings Window. You can access these settings in **Edit > Project Settings > VFX**. -![](Images/VisualEffectProjectSettings.png) - ## Properties: | Name | Description | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/performance-debug-panel.md b/Packages/com.unity.visualeffectgraph/Documentation~/performance-debug-panel.md index 8e39ea73411..f697681dcb3 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/performance-debug-panel.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/performance-debug-panel.md @@ -2,12 +2,12 @@ The Profiling and Debug panels provide useful information about your running Visual Effects, such as CPU and GPU timings, memory usage, texture usage, and various states. These allow you to keep the performance of your effects under control while you author them. -To enable the Profiling and Debug panels, select the debug icon in the top right of the Visual Effect Graph window. All the information displayed in the Profiling and Debug panels refers to the attached GameObject. +To enable the Profiling and Debug panels, follow these steps: -**Note**: For the Profiling and Debug panels to work, the Visual Effect Graph window needs to be attached to a GameObject that has a Visual Effect component. For details on how to attach a GameObject to the working window, see [Attaching a Visual Effect] (GettingStarted.md#attaching-a-visual-effect-from-the-scene-to-the-current-graph). +1. Attach the **Visual Effect Graph** window to a GameObject that has a **Visual Effect** component. For more information, refer to [Attaching a Visual Effect](GettingStarted.md#attaching-a-visual-effect-from-the-scene-to-the-current-graph). +2. Select the debug icon in the top-right of the **Visual Effect Graph** window. - -![ProfilingPanel-Overview.png](Images%2FProfilingPanel-Overview.png) +All the information displayed in the Profiling and Debug panels refers to the attached GameObject. ## Graph Debug Information diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/point-cache-bake-tool.md b/Packages/com.unity.visualeffectgraph/Documentation~/point-cache-bake-tool.md index c5080293fae..60a0ada0a0f 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/point-cache-bake-tool.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/point-cache-bake-tool.md @@ -31,8 +31,6 @@ These properties appear in the Inspector regardless of the **Bake Mode** you sel This section only appears if you set **Bake Mode** to **Mesh**. -![](Images/pcache-mesh-inspector.png)
    *Point Cache Bake Tool's Mesh Baking section in the Inspector.* - | **Property** | **Description** | | ------------------ | ------------------------------------------------------------ | | **Mesh** | The Mesh to produce a Point Cache representation of. | @@ -59,8 +57,6 @@ This section of the window only appears if you assign a Mesh asset to the **Mesh This section only appears if you set **Bake Mode** to **Texture**. -![](Images/pcache-texture-inspector.png)
    *Point Cache Bake Tool's Texture Baking section in the Inspector.* - | **Property** | **Description** | | -------------------------- | ------------------------------------------------------------ | | **Texture** | The Texture2D to produce a Point Cache representation of. | diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/representing-complex-shapes.md b/Packages/com.unity.visualeffectgraph/Documentation~/representing-complex-shapes.md index caafeb22a06..780d30361cc 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/representing-complex-shapes.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/representing-complex-shapes.md @@ -10,7 +10,7 @@ Very detailed meshes require a high texture resolution to represent them, which For more information, see [Signed Distance Fields](sdf-in-vfx-graph.md). -![](Images/sdf-size-precision.gif)
    *This gif shows how different 3D texture resolutions affect the accuracy of an SDF. It also shows how the SDF representations compare to the original geometry.* +
    *This video shows how different 3D texture resolutions affect the accuracy of an SDF. It also shows how the SDF representations compare to the original geometry.* ## Point Caches @@ -18,4 +18,4 @@ A [Point Cache](point-cache-in-vfx-graph.md) is an asset that stores a fixed lis You can use Point Caches to represent lists of points generated from 3D meshes or 2D textures, but not their actual geometry. Point attributes are baked into the asset, so if you want a wider variety of points, you need to add more during the baking process. For more information, see [Point Caches](point-cache-in-vfx-graph.md). -![](Images/point-cache-relax.gif)
    *This gif shows how relaxing points in a Point Cache results in a more even spacing between* +
    *This video shows how relaxing points in a Point Cache results in a more even spacing between* diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/sdf-bake-tool-api.md b/Packages/com.unity.visualeffectgraph/Documentation~/sdf-bake-tool-api.md index 1538ec84184..930ca2805c1 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/sdf-bake-tool-api.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/sdf-bake-tool-api.md @@ -15,9 +15,10 @@ Within a Visual Effect Graph, create a new exposed Texture3D property. To do thi 3. Double-click on the new Texture3D, enter a meaningful name, and press enter to save it. You use this name to identify the property from the C# API. 4. To the left of the new Texture3D, click the drop-down arrow. 5. Enable **Exposed** if it is not already. -6. Drag the property into the graph and connect it to an input that accepts an SDF. For example, the **Distance Field** property of a [Collide With Signed Distance Field](Block-CollideWithSignedDistanceField.md) Block. +6. Drag the property into the graph and connect it to an input that accepts an SDF. For example, the **Distance Field** property of a [Collision Shape](Block-CollisionShape.md) block where **Shape** is set to **Signed Distance Field**. -![](Images/sdf-bake-tool-api-example.png)
    *Assigning an SDF to the Distance Field input port of the Collide with Signed Distance Field Block* +![Assigning an SDF to the Distance Field input port of the Collision Shape Signed Distance Field Block.](Images/sdf-bake-tool-api-example.png) +Assigning an SDF to the Distance Field input port of the Collision Shape Signed Distance Field Block. ## MonoBehaviour diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/sdf-bake-tool-window.md b/Packages/com.unity.visualeffectgraph/Documentation~/sdf-bake-tool-window.md index 8ef7e669806..0934e4cc676 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/sdf-bake-tool-window.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/sdf-bake-tool-window.md @@ -6,7 +6,7 @@ To open the SDF Bake Tool window, select **Window** > **Visual Effects** > **Uti ## Working with the SDF Bake Tool window -In the Unity Editor, in the [Visual Effect Graph window](VisualEffectGraphWindow.md), blocks and operators, such as [Collide With Signed Distance Field](Block-CollideWithSignedDistanceField.md), take an SDF as an input. +In the Unity Editor, in the [Visual Effect Graph window](VisualEffectGraphWindow.md), blocks and operators, such as [Collision Shape](Block-CollisionShape.md), take an SDF as an input. ![The Update Particle context.](Images/sdf-update-particle-context.png) The **Update Particle** context. @@ -28,7 +28,7 @@ To make it easier to iterate over signed distance fields, the SDF Bake Tool wind * With the SDF Bake Tool window open, select the asset in the Project window. * In the Project window, double-click the asset. If the SDF Bake Tool window isn't open, this opens the window and assigns the asset. -Note: To use the SDF asset with the [Collide With Signed Distance Field](Block-CollideWithSignedDistanceField.md) block. In the block, set the **Size** of the **Field Transform** to match the **Box Size** that you used in the SDF Bake Tool. +Note: To use the SDF asset with the [Collision Shape](Block-CollisionShape.md) block. In the block, set the **Size** of the **Field Transform** to match the **Box Size** that you used in the SDF Bake Tool. ## Properties diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/sdf-in-vfx-graph.md b/Packages/com.unity.visualeffectgraph/Documentation~/sdf-in-vfx-graph.md index ce3579075e7..e74a586864d 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/sdf-in-vfx-graph.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/sdf-in-vfx-graph.md @@ -6,10 +6,10 @@ Signed Distance Fields (SDF) are 3D textures where each texel stores the distanc In the Visual Effect Graph, there are several nodes that use SDFs to create effects: -- [*Position On Signed Distance Field*](Block-SetPosition(SignedDistanceField).md): Positions particles either within the volume of the SDF or on its surface. -- [*Conform To Signed Distance Field*](Block-ConformToSignedDistanceField.md): Attracts particles towards an SDF. This is useful for pulling particles towards a complex shape that would be difficult to replicate using other force blocks. -- [*Collide With Signed Distance Field*](Block-CollideWithSignedDistanceField.md): Simulates collision between particles and an SDF. This is useful when you want particles to collide with complex shapes. -- [*Sample Signed Distance Field*](Operator-SampleSDF.md): Samples an SDF and enables you to create custom behavior with the result. +- [**Position On Signed Distance Field**](Block-SetPositionShape.md): Positions particles either within the volume of the SDF or on its surface. +- [**Attractor Shape Signed Distance Field**](Block-ConformToSignedDistanceField.md): Attracts particles towards an SDF. This is useful for pulling particles towards a complex shape that would be difficult to replicate using other force blocks. +- [**Collision Shape Signed Distance Field**](Block-CollisionShape.md): Simulates collision between particles and an SDF. This is useful when you want particles to collide with complex shapes. +- [**Sample Signed Distance Field**](Operator-SampleSDF.md): Samples an SDF and enables you to create custom behavior with the result. ## Generating SDFs diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/visual-effect-bounds.md b/Packages/com.unity.visualeffectgraph/Documentation~/visual-effect-bounds.md index 1df6074f2a0..38fb1b4c299 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/visual-effect-bounds.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/visual-effect-bounds.md @@ -12,8 +12,6 @@ Each System in a visual effect defines its bounds in the [Initialize Context](Co - **Recorded**: Allows you to record the System from the VFX Control panel. For information on how to do this, see [Bounds Recording](#bounds-recording). In this mode, you can also calculate the bounds using Operators and pass them to the Initialize Context, like in **Manual**. This overrides any recorded bounds. - **Automatic**: Unity calculates the bounds automatically. Note: This will force the culling flags of the VFX asset to "Always recompute bounds and simulate". Automatic bounds calculations can have a negative impact on performances and are not recommended when possible to avoid. -![](Images/Bounds-Init.png) - The Initialize Context also contains a **Bounds Padding** input port. This is a Vector3 that enlarges the per-axis bounds of the System. If a System uses **Automatic** bounds or a recording is in progress in **Recorded** mode, Unity calculates the bounds of the System during the Update Context. This means that any changes to the size, position, scale, or pivot of particles that occur in the Output Context don't affect the bounds during that frame. Adding padding to the bounds helps to mitigate this effect. @@ -23,22 +21,14 @@ The [VFX Control panel](VisualEffectGraphWindow.md#vfx-control) in the Visual Ef You can click on the icon at the top right corner of the [Toolbar](VisualEffectGraphWindow.md#toolbar) to open the VFX Control panel. -![](Images/ControlPanelIcon.png) +![Icon at the top right corner of the Toolbar that opens the VFX Control panel.](Images/ControlPanelIcon.png) Then, you will need to have an [attached VFX from the scene](GettingStarted.md#attaching-a-visual-effect-from-the-scene-to-the-current-graph) to properly use VFX Control panel's functionnalities. Once done, you can click on the red recording button to start recording your bounds to match your particles behavior. -![](Images/Bounds-Not-Recording.png) - -> The Target Visual Effect GameObject panel interface while not recording. - -![](Images/Bounds-Recording.png) +![The VFX Control window. The Bounds Recording section has a red background, and the Bounds Recording label is now replaced with the text Recording in Progress.](Images/Bounds-Recording.png) > The Target Visual Effect GameObject panel interface while recording. You can visualize the bounds that the recorder is saving. When the recorder is active, look at the visual effect in the Scene view. The bounds appear as a red box around the visual effect. If you want to visualize the bounds of specific Systems, select them in the tool window or select their Initialize Context. -![](Images/Bounds-Preview.png) - -> A visual effect and a preview of the bounds Unity is recording. - While recording, you can **Pause**, **Play**, **Restart**, or event change the **Play Rate**. This enables you to speed up the recording or simulate various spawn positions. When you are happy with the calculated bounds, click **Apply Bounds** to apply the recorded bounds to the System. Applying recorded bounds can be done during or after the recording. To end the recording, click a second time on the recording button. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/whats-new-10.md b/Packages/com.unity.visualeffectgraph/Documentation~/whats-new-10.md index 0e5721e004a..8218e022036 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/whats-new-10.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/whats-new-10.md @@ -8,8 +8,6 @@ The following is a list of features Unity added to version 10 of the Visual Effe ### CPU Output Event -![](Images/banner-cpu-output-event.png) - The Output Event sends an event from the graph to C# when triggered. You can use this to synchronize lights, sound, physical reactions, or gameplay to a visual effect. For more information about this feature, see [Output Event](Context-Event.md). @@ -18,7 +16,7 @@ For examples of how to use this feature, see [Output Event Handler](#outputevent ### Per-particle Mesh LOD (Experimental) -![](Images/banner-space-scene-2.png) +![A stylized space scene featuring glowing cosmic elements such as nebula-like clouds, particles, and vibrant lights set against a dark, starry background.](Images/banner-space-scene-2.png) Optimize your mesh particles using [LODs](https://docs.unity3d.com/Manual/LevelOfDetail.html) based on the screen size. @@ -26,7 +24,7 @@ For more information about this feature, see [Particle Mesh Output](Context-Outp ### Multi-Mesh (Experimental) -![](Images/banner-space-scene-1.png) +![A stylized space scene featuring colorful, glowing nebulae, swirling particle effects, and a dense star field.](Images/banner-space-scene-1.png) Use up to four meshes in the same [Particle Mesh Output](Context-OutputParticleMesh.md) to add per-particle variety to your effects. This enables you to add visual variety to individual mesh particles without having to use multiple Outputs. @@ -34,7 +32,7 @@ For more information about this feature, see [Output Particle Mesh](Context-Outp ### Static mesh sampling (Experimental) -![](Images/banner-mesh-sampling.png) +![A dynamic particle effect using mesh sampling where particles are emitted and distributed along the surface of a 3D mesh, forming its visible shape with glowing particles.](Images/banner-mesh-sampling.png) Spawn particles directly from meshes. This enables you to quickly spawn particles in more complex shapes directly from meshes without the need to first bake their positions into a [point cache](point-cache-in-vfx-graph.md). @@ -61,13 +59,11 @@ The following is a list of improvements Unity made to the Visual Effect Graph in ### Documentation -![](Images/banner-documentation.png) - The documentation now includes [reference information](node-library.md) about all the Nodes in the Visual Effect Graph. Also, Attributes, Blocks, Contexts, Operators, and various menus and options now include tooltips. ### UX & Workflows -![](Images/banner-ux-improvements.gif) + This version of the Visual Effect Graph introduces many workflow improvements. The list is as follows: @@ -84,9 +80,9 @@ This version of the Visual Effect Graph introduces many workflow improvements. T * Blocks & Nodes: * Position (shape, sequential, depth) and Velocity from Direction & Speed Blocks now include composition for both the position and direction. Originally, they only included composition for the position. * The built-in Operator now provides new times access. - * There is now a custom Inspector for the Update Context. This displays **Update Position** and **UpdateRotation** instead of **Euler Integration**.
    ![](Images/banner-context-update.png) + * There is now a custom Inspector for the Update Context. This displays **Update Position** and **UpdateRotation** instead of **Euler Integration**. - * There is now a custom Inspector for the Spawn Context to include loop and delay settings which adds another layer of depth when creating customizable spawn behaviors.
    ![](Images/banner-context-spawn.png) + * There is now a custom Inspector for the Spawn Context to include loop and delay settings which adds another layer of depth when creating customizable spawn behaviors. ### Performance optimizations @@ -97,8 +93,6 @@ This version of the Visual Effect Graph introduces multiple performance optimiza ### Signed distance field -![](Images/banner-signed-distance-field.png) - This version of the Visual Effect Graph introduces improvements to working with signed distance fields (SDFs). It added a new Operator to sample SDFs as well as a new Block to set a particle's position based on an SDF. These allow you to create custom behaviors like detecting whether particles have collided with SDFs. @@ -109,7 +103,7 @@ For more information about the new position Block, see [Position (Signed Distanc ### Distortion Output -![](Images/banner-distortion.png) +![Warped particle effects creating a dynamic, rippling appearance.](Images/banner-distortion.png) This version of the Visual Effect Graph introduces octagon and triangle support for the distortion Outputs. It also introduces a new Output Distortion Quad Context for particle strips. @@ -117,7 +111,7 @@ For more information about the distortion Output, see [Output Distortion](Contex ### Particle strips -![](Images/banner-particle-strips.png) +![Yellow caution tape ribbons loosely intertwined on the floor and encircling a cube.](Images/banner-particle-strips.png) This version of the Visual Effect Graph introduces multiple improvements to particle strips: @@ -135,8 +129,6 @@ This version of the Visual Effect Graph introduces multiple improvements to Oper ## Samples -![](Images/banner-package-samples.png) - The following is a list of Visual Effect Graph package samples Unity created or improved upon in version 10. Each entry includes a summary of the change and, if relevant, a link to any documentation. ### Visual Effect Graph Additions diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/whats-new-11.md b/Packages/com.unity.visualeffectgraph/Documentation~/whats-new-11.md index ca377d53ab8..dbf63eb10ca 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/whats-new-11.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/whats-new-11.md @@ -20,7 +20,7 @@ For more information, see the following post on the forum: [SRP v11 beta is avai ### SkinnedMeshRenderer sampling -![](Images/skinned-mesh-sampling-example.gif) + > Examples of particles spawning on the surface of SkinnedMeshRenderers. Models and animations from [Mixamo.com](https://www.mixamo.com/). This version of the Visual Effect Graph adds the ability to sample [SkinnedMeshRenders](https://docs.unity3d.com/ScriptReference/SkinnedMeshRenderer.html). This enables you to retrieve vertex data from skinned geometry and use it for a variety of purposes, such as to spawn particles on animating characters. @@ -29,16 +29,13 @@ For more information about this feature, see [Sample Mesh](Operator-SampleMesh.m ### Texture2DArray flipbooks -![](Images/banner-texture2darray-flipbooks.png) -> The **Flipbook Layout** property with the **Texture2DArray** option. - From this version of the Visual Effect Graph, you can use Texture2DArray assets as flipbooks. Using Texture2DArrays prevent texture bleeding between the flipbook frames. To use Texture2DArrays, set the **Flipbook Layout** of an output Context to **Texture 2D Array**. This enables you to assign Texture2DArray assets to the Context's texture ports. Each slice of the texture corresponds to a frame within the flipbook. To play the flipbook, use the [Flipbook Player](Block-FlipbookPlayer.md) Block. To generally interact with a Texture2DArray flipbook, use the **Tex Index** attribute. This is useful if you want to use the flipbook for non-animation purposes, such as using a random flipbook frame per particle. Many output Contexts share this setting so, for more information, see [Shared output settings and properties](Context-OutputSharedSettings.md). ### Exclude from temporal anti-aliasing -![](Images/banner-exclude-from-taa.png) +![A scene of a wooden tower exploding in a valley fortress. Left: Uses temporal anti-aliasing (TAA). The embers are harder to see and small ones are not there at all. Center: Excludes visual effects from TAA. All embers are clearer, small embers are still visible, and the rest of the image uses anti-aliasing. Right: Does not use TAA. All embers are clearer, small embers are still visible, but the rest of the image has no anti-aliasing.](Images/banner-exclude-from-taa.png) > **Left**: Uses temporal anti-aliasing (TAA). The embers are harder to see and small ones are not there at all.
    **Center**: Excludes visual effects from TAA. All embers are clearer, small embers are still visible, and the rest of the image uses anti-aliasing.
    **Right**: Does not use TAA. All embers are clearer, small embers are still visible, but the rest of the image has no anti-aliasing. This version of the Visual Effect Graph allows you to exclude visual effects when Unity calculates [temporal anti-aliasing (TAA)](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@latest?subfolder=/manual/Anti-Aliasing.html%23temporal-anti-aliasing-taa). This is useful because TAA can cause small particles to disappear. TAA is only available in the High Definition Render Pipeline (HDRP) which means this feature is only relevant to HDRP. @@ -58,7 +55,7 @@ The following is a list of improvements Unity made to the Visual Effect Graph in ### Mesh sampling improvements -![](Images/banner-mesh-sampling-11-improvements.png) +![Five square meshes, each made up of two adjoining triangles, that demonstrate the new sampling methods this version supports. Vertex: Samples from the four corners. Edge: Samples along the edges of the triangles. Surface (random): Samples at random points on the surface. Surface (uniform): Samples in a regular alternating grid pattern across the surface. Surface (barycentric): Samples in a regular grid pattern across the surface.](Images/banner-mesh-sampling-11-improvements.png) > Examples of the new sampling methods this version supports. diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXConvertSubgraph.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXConvertSubgraph.cs index 5b723cfc946..e0d33376b31 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXConvertSubgraph.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXConvertSubgraph.cs @@ -248,6 +248,8 @@ public void ConvertToSubgraphContext(VFXView sourceView, IEnumerable TransferEdges(); //TransferContextsFlowEdges(); UninitSmart(); + + m_TargetSubgraph.GetResource()?.WriteAssetWithSubAssets(); } public void ConvertToSubgraphOperator(VFXView sourceView, IEnumerable controllers, Rect rect, string path) @@ -282,6 +284,8 @@ public void ConvertToSubgraphOperator(VFXView sourceView, IEnumerable m_SourceBlockControllers; @@ -374,6 +378,8 @@ public void ConvertToSubgraphBlock(VFXView sourceView, IEnumerable c TransferEdges(); m_SourceControllers = m_SourceControllersWithBlocks.ToList(); UninitSmart(); + + m_TargetSubgraph.GetResource()?.WriteAssetWithSubAssets(); } bool CreateUniqueSubgraph(string typeName, string extension, Func createFunc) diff --git a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXView.cs b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXView.cs index 0a16d099879..7c3c1b0dbee 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXView.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/GraphView/Views/VFXView.cs @@ -1812,27 +1812,7 @@ internal void OnSave() { m_ComponentBoard?.DeactivateBoundsRecordingIfNeeded(); //Avoids saving the graph with unnecessary bounds computations - var graphToSave = new HashSet(); - GetGraphsRecursively(controller.graph, graphToSave); - foreach (var graph in graphToSave) - { - if (EditorUtility.IsDirty(graph) || UnityEngine.Object.ReferenceEquals(graph, controller.graph)) - { - graph.UpdateSubAssets(); - try - { - VFXGraph.compilingInEditMode = !m_IsRuntimeMode; - graph.visualEffectResource.WriteAsset(); - } - finally - { - VFXGraph.compilingInEditMode = false; - } - } - } - - // Only for testing purpose - //VFXAnalytics.GetInstance().OnSaveVFXAsset(this); + controller.graph.visualEffectResource.WriteAssetWithSubAssets(); } internal void SaveAs(string newPath) @@ -1848,46 +1828,6 @@ internal void SaveAs(string newPath) } } - void GetGraphsRecursively(VFXGraph start, HashSet graphs) - { - if (graphs.Contains(start)) - return; - graphs.Add(start); - foreach (var child in start.children) - { - if (child is VFXSubgraphOperator ope) - { - if (ope.subgraph != null) - { - var graph = ope.subgraph.GetResource().GetOrCreateGraph(); - GetGraphsRecursively(graph, graphs); - } - } - else if (child is VFXSubgraphContext subCtx) - { - if (subCtx.subgraph != null) - { - var graph = subCtx.subgraph.GetResource().GetOrCreateGraph(); - GetGraphsRecursively(graph, graphs); - } - } - else if (child is VFXContext ctx) - { - foreach (var block in ctx.children.Cast()) - { - if (block is VFXSubgraphBlock subBlock) - { - if (subBlock.subgraph != null) - { - var graph = subBlock.subgraph.GetResource().GetOrCreateGraph(); - GetGraphsRecursively(graph, graphs); - } - } - } - } - } - } - public EventPropagation OnCompile() { Compile(); diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedShading.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedShading.cs index e05f385587e..5d62e387dec 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedShading.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXComposedShading.cs @@ -89,24 +89,26 @@ public override TraitDescription GetDescription(VFXAbstractComposedParticleOutpu desc.hiddenSettings = new(kAlwaysFilteredOutSettings); var srpBinder = VFXLibrary.currentSRPBinder; - if (actualShaderGraph != null && srpBinder != null) + if (actualShaderGraph != null) { - desc.name = shaderGraph != null ? srpBinder.GetShaderName(actualShaderGraph) : string.Empty; - - if (srpBinder.TryGetCastShadowFromMaterial(actualShaderGraph, materialSettings, out var hasShadowCasting)) + desc.name = string.Empty; + if (srpBinder != null) { - desc.hasShadowCasting = hasShadowCasting; - desc.hiddenSettings.Add("castShadows"); - } + desc.name = shaderGraph != null ? srpBinder.GetShaderName(actualShaderGraph) : string.Empty; + if (srpBinder.TryGetCastShadowFromMaterial(actualShaderGraph, materialSettings, out var hasShadowCasting)) + { + desc.hasShadowCasting = hasShadowCasting; + desc.hiddenSettings.Add("castShadows"); + } - if (srpBinder.TryGetQueueOffset(actualShaderGraph, materialSettings, out var sortingPriority)) - { - desc.sortingPriority = sortingPriority; - desc.hiddenSettings.Add("sortingPriority"); + if (srpBinder.TryGetQueueOffset(actualShaderGraph, materialSettings, out var sortingPriority)) + { + desc.sortingPriority = sortingPriority; + desc.hiddenSettings.Add("sortingPriority"); + } + desc.supportMotionVectorPerVertex = srpBinder.GetSupportsMotionVectorPerVertex(actualShaderGraph, materialSettings); + desc.blendMode = srpBinder.GetBlendModeFromMaterial(actualShaderGraph, materialSettings); } - - desc.supportMotionVectorPerVertex = srpBinder.GetSupportsMotionVectorPerVertex(actualShaderGraph, materialSettings); - desc.blendMode = srpBinder.GetBlendModeFromMaterial(actualShaderGraph, materialSettings); desc.hasAlphaClipping = actualShaderGraph.alphaClipping; var shaderGraphProperties = VFXShaderGraphHelpers.GetProperties(actualShaderGraph); diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXMeshOutput.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXMeshOutput.cs index 7c79577d8c0..bba2f6eda91 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXMeshOutput.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/Implementations/VFXMeshOutput.cs @@ -29,7 +29,7 @@ public override VFXOutputUpdate.Features outputUpdateFeatures VFXOutputUpdate.Features features = base.outputUpdateFeatures; if (!HasStrips(true)) // TODO make it compatible with strips { - if (MeshCount > 1) + if (meshCount > 1) features |= VFXOutputUpdate.Features.MultiMesh; if (lod) features |= VFXOutputUpdate.Features.LOD; @@ -60,7 +60,7 @@ protected override IEnumerable inputProperties foreach (var property in base.inputProperties) yield return property; - foreach (var property in VFXMultiMeshHelper.GetInputProperties(MeshCount, outputUpdateFeatures)) + foreach (var property in VFXMultiMeshHelper.GetInputProperties(meshCount, outputUpdateFeatures)) yield return property; if (GetOrRefreshShaderGraphObject() == null) @@ -116,7 +116,7 @@ public override VFXExpressionMapper GetExpressionMapper(VFXDeviceTarget target) { case VFXDeviceTarget.CPU: { - foreach (var name in VFXMultiMeshHelper.GetCPUExpressionNames(MeshCount)) + foreach (var name in VFXMultiMeshHelper.GetCPUExpressionNames(meshCount)) mapper.AddExpression(inputSlots.First(s => s.name == name).GetExpression(), name, -1); break; } diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXAbstractComposedParticleOutput.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXAbstractComposedParticleOutput.cs index 81956fdc276..fbafc19cfa8 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXAbstractComposedParticleOutput.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXAbstractComposedParticleOutput.cs @@ -410,6 +410,12 @@ public sealed override void GetImportDependentAssets(HashSet dependencies) m_Shading?.GetImportDependentAssets(dependencies); } + public sealed override void OnUnknownChange() + { + MarkCacheAsDirty(); + base.OnUnknownChange(); + } + public sealed override void CheckGraphBeforeImport() { if (m_Topology != null && m_Shading != null) diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXAbstractParticleOutput.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXAbstractParticleOutput.cs index 09a4c73f5ce..290a870801f 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXAbstractParticleOutput.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/Contexts/VFXAbstractParticleOutput.cs @@ -143,7 +143,19 @@ protected enum RayTracedScaleMode public virtual void SetupMaterial(Material material) { } - public bool HasIndirectDraw() { return (indirectDraw || HasSorting() || VFXOutputUpdate.HasFeature(outputUpdateFeatures, VFXOutputUpdate.Features.IndirectDraw)); } + protected bool HasUpdateInputContext() + { + foreach (var inputContext in inputContexts) + { + if (inputContext.contextType.HasFlag(VFXContextType.Update)) + { + return true; + } + } + return false; + } + + public bool HasIndirectDraw() { return ((indirectDraw && HasUpdateInputContext()) || HasSorting() || VFXOutputUpdate.HasFeature(outputUpdateFeatures, VFXOutputUpdate.Features.IndirectDraw)); } public virtual bool HasSorting() { return sort == SortActivationMode.On || (sort == SortActivationMode.Auto && (blendMode == BlendMode.Alpha || blendMode == BlendMode.AlphaPremultiplied)); } public bool HasCustomSortingCriterion() { return HasSorting() && sortMode == VFXSortingUtility.SortCriteria.Custom; } @@ -636,7 +648,7 @@ protected override IEnumerable filteredOutSettings yield return "useExposureWeight"; // indirect draw is implicit or forbidden - if (HasSorting() || VFXOutputUpdate.HasFeature(outputUpdateFeatures, VFXOutputUpdate.Features.IndirectDraw)) + if (!HasUpdateInputContext() || HasSorting() || VFXOutputUpdate.HasFeature(outputUpdateFeatures, VFXOutputUpdate.Features.IndirectDraw)) yield return "indirectDraw"; // compute culling is implicit or forbidden diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/VFXErrorManager.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/VFXErrorManager.cs index 69a07ce7cc6..1eb13b516b8 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/VFXErrorManager.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/VFXErrorManager.cs @@ -158,7 +158,10 @@ public void GenerateErrors() } finally { + // swap dirty and scheduled models + var tmp = m_DirtyModels; m_DirtyModels = m_ScheduledModels; + m_ScheduledModels = tmp; m_ScheduledModels.Clear(); m_IsGeneratingErrors = false; } diff --git a/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs b/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs index 6a8a7b6071c..3a36953672f 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs +++ b/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs @@ -374,19 +374,7 @@ static string[] OnWillSaveAssets(string[] paths) AssetDatabase.StartAssetEditing(); } var vfxResource = VisualEffectResource.GetResourceAtPath(path); - if (vfxResource != null) - { - vfxResource.GetOrCreateGraph().UpdateSubAssets(); - try - { - VFXGraph.compilingInEditMode = vfxResource.GetOrCreateGraph().GetCompilationMode() == VFXCompilationMode.Edition; - vfxResource.WriteAsset(); // write asset as the AssetDatabase won't do it. - } - finally - { - VFXGraph.compilingInEditMode = false; - } - } + vfxResource?.WriteAssetWithSubAssets(); } } finally @@ -432,6 +420,13 @@ public static void UpdateSubAssets(this VisualEffectResource resource) resource.GetOrCreateGraph().UpdateSubAssets(); } + public static void WriteAssetWithSubAssets(this VisualEffectResource resource) + { + var graph = resource.GetOrCreateGraph(); + graph.UpdateSubAssets(); + resource.WriteAsset(); + } + public static bool IsAssetEditable(this VisualEffectResource resource) { return AssetDatabase.IsOpenForEdit((UnityEngine.Object)resource.asset ?? resource.subgraph, StatusQueryOptions.UseCachedIfPossible); @@ -488,15 +483,6 @@ class VFXGraph : VFXModel // 18: Change ProbabilitySampling m_IntegratedRandomDeprecated changed to m_Mode public static readonly int CurrentVersion = 18; - [NonSerialized] - internal static bool compilingInEditMode = false; - - public override void OnEnable() - { - base.OnEnable(); - m_ExpressionGraphDirty = true; - } - public override void OnSRPChanged() { m_GraphSanitized = false; @@ -1139,7 +1125,7 @@ public uint FindReducedExpressionIndexFromSlotCPU(VFXSlot slot) public void SetCompilationMode(VFXCompilationMode mode, bool reimport = true) { - if (m_CompilationMode != mode) + if (m_CompilationMode != mode && !GetResource().isSubgraph) { m_CompilationMode = mode; SetExpressionGraphDirty(); @@ -1400,11 +1386,10 @@ public void SanitizeForImport() public void CompileForImport() { - if (compilingInEditMode) - m_CompilationMode = VFXCompilationMode.Edition; + bool isSubgraph = GetResource().isSubgraph; SyncCustomAttributes(); - if (!GetResource().isSubgraph) + if (!isSubgraph) { // Check Graph Before Import can be needed to synchronize modified shaderGraph foreach (var child in children) @@ -1492,21 +1477,15 @@ private VFXGraphCompiledData compiledData [SerializeField] private int m_ResourceVersion; - [NonSerialized] private bool m_GraphSanitized = false; - [NonSerialized] private bool m_ExpressionGraphDirty = true; - [NonSerialized] private bool m_ExpressionValuesDirty = true; - [NonSerialized] private bool m_DependentDirty = true; - [NonSerialized] private bool m_MaterialsDirty = false; - [NonSerialized] private bool m_CustomAttributesDirty = false; - [NonSerialized] private VFXGraphCompiledData m_CompiledData; + private VFXCompilationMode m_CompilationMode = VFXCompilationMode.Runtime; private bool m_ForceShaderDebugSymbols = false; private bool m_ForceShaderValidation = false; diff --git a/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/Templates/VFXConfigPlanarPrimitive.template.hlsl b/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/Templates/VFXConfigPlanarPrimitive.template.hlsl index b72648b5659..a3907bd97f0 100644 --- a/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/Templates/VFXConfigPlanarPrimitive.template.hlsl +++ b/Packages/com.unity.visualeffectgraph/Editor/ShaderGraph/Templates/VFXConfigPlanarPrimitive.template.hlsl @@ -42,7 +42,8 @@ bool GetMeshAndElementIndex(inout VFX_SRP_ATTRIBUTES input, inout AttributesElem StripData stripData; uint relativeIndexInStrip = 0; #if HAS_STRIPS - if (!FindIndexInStrip(index, id, instanceIndex, relativeIndexInStrip, stripData)) + uint primitiveId = id; + if (!FindIndexInStrip(index, primitiveId, instanceIndex, relativeIndexInStrip, stripData)) return false; #else stripData = GetStripDataFromParticleIndex(index, instanceIndex); diff --git a/Packages/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template b/Packages/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template index bd20f53efc9..e1009c0e6b8 100644 --- a/Packages/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template +++ b/Packages/com.unity.visualeffectgraph/Shaders/VFXParticleCommon.template @@ -170,7 +170,12 @@ index = indirectBuffer[VFXGetIndirectBufferIndex(index, instanceActiveIndex)]; #if HAS_STRIPS_DATA StripData stripData; uint relativeIndexInStrip = 0; -if (!FindIndexInStrip(index, id, instanceIndex, relativeIndexInStrip, stripData)) +uint primitiveID = 0; +#if HAS_STRIPS + primitiveID = id; +#endif + +if (!FindIndexInStrip(index, primitiveID, instanceIndex, relativeIndexInStrip, stripData)) { CULL_VERTEX(o); } diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp-upgrade/.buginfo b/Tests/SRPTests/Packages/com.unity.testing.urp-upgrade/.buginfo index 44a5bb1d5e5..6d440cb259e 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp-upgrade/.buginfo +++ b/Tests/SRPTests/Packages/com.unity.testing.urp-upgrade/.buginfo @@ -1 +1 @@ -area: Universal RP \ No newline at end of file +area: SRP Foundation \ No newline at end of file diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/.buginfo b/Tests/SRPTests/Packages/com.unity.testing.urp/.buginfo index 44a5bb1d5e5..6d440cb259e 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/.buginfo +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/.buginfo @@ -1 +1 @@ -area: Universal RP \ No newline at end of file +area: SRP Foundation \ No newline at end of file diff --git a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTests.cs b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTests.cs index 63e7b7fc06a..a4dc1e2f32b 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.urp/Scripts/Runtime/UniversalGraphicsTests.cs @@ -107,20 +107,27 @@ public static IEnumerator RunGraphicsTest(SceneGraphicsTestCase testCase) if (settings.ImageComparisonSettings.UseBackBuffer) { waitFrames = Mathf.Max(waitFrames, 1); + } - if (settings.SetBackBufferResolution) - { - // Set screen/backbuffer resolution before doing the capture in ImageAssert.AreEqual. This will avoid doing - // any resizing/scaling of the rendered image when comparing with the reference image in ImageAssert.AreEqual. - // This has to be done before WaitForEndOfFrame, as the request will only be applied after the frame ends. - int targetWidth = settings.ImageComparisonSettings.TargetWidth; - int targetHeight = settings.ImageComparisonSettings.TargetHeight; - Screen.SetResolution(targetWidth, targetHeight, true); - - // We need to wait at least 2 frames for the Screen.SetResolution to take effect. - // After that, Screen.width and Screen.height will have the target resolution. - waitFrames = Mathf.Max(waitFrames, 2); - } + if (settings.SetBackBufferResolution) + { + // Set screen/backbuffer resolution before doing the capture in ImageAssert.AreEqual. This will avoid doing + // any resizing/scaling of the rendered image when comparing with the reference image in ImageAssert.AreEqual. + // This has to be done before WaitForEndOfFrame, as the request will only be applied after the frame ends. + int targetWidth = settings.ImageComparisonSettings.TargetWidth; + int targetHeight = settings.ImageComparisonSettings.TargetHeight; + Screen.SetResolution(targetWidth, targetHeight, settings.ImageComparisonSettings.UseBackBuffer ? FullScreenMode.FullScreenWindow : Screen.fullScreenMode); + + // Yield once to finish the current frame (this code runs before the rendering in a frame) with the former + // resolution. + // Yield twice to finish the next frame with the new resolution taking effect. + // Note that once the yields finish and the test resumes after the next for loop, the rendering will be + // in the same frame where the new resolution first took place. For effects such as motion vector + // rendering it means if the aspect ratio changes after setting the resolution, the previous camera matrix + // will be reset, cancelling out all the camera-based motions. + // In this case (e.g. UniversalGraphicsTest_Terrain, test scene 300 and 301) increase the wait frame to 3 + // on the UniversalGraphicsTestSettings component. + waitFrames = Mathf.Max(waitFrames, 2); } for (int i = 0; i < waitFrames; i++) diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Editor/Unity.Testing.VisualEffectGraph.PerformanceEditorTests.asmdef b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Editor/Unity.Testing.VisualEffectGraph.PerformanceEditorTests.asmdef index 0c4d94fb28d..c56d9255fb8 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Editor/Unity.Testing.VisualEffectGraph.PerformanceEditorTests.asmdef +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Editor/Unity.Testing.VisualEffectGraph.PerformanceEditorTests.asmdef @@ -1,5 +1,6 @@ { "name": "Unity.Testing.VisualEffectGraph.PerformanceEditorTests", + "rootNamespace": "", "references": [ "UnityEngine.TestRunner", "Unity.PerformanceTesting", @@ -7,7 +8,8 @@ "UnityEngine.TestTools.Graphics.Performance.Editor", "UnityEngine.TestTools.Graphics.Performance", "Unity.Testing.VisualEffectGraph.PerformanceRuntimeTests", - "Unity.VisualEffectGraph.Editor" + "Unity.VisualEffectGraph.Editor", + "UnityEngine.TestTools.Graphics" ], "includePlatforms": [ "Editor" @@ -24,4 +26,4 @@ ], "versionDefines": [], "noEngineReferences": false -} +} \ No newline at end of file diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Editor/VFXPerformanceEditorTests.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Editor/VFXPerformanceEditorTests.cs index e991becefdb..4c294da9c72 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Editor/VFXPerformanceEditorTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Editor/VFXPerformanceEditorTests.cs @@ -13,6 +13,7 @@ using System.IO; using UnityEngine; using Object = UnityEngine.Object; +using UnityEngine.VFX.PerformanceTest; namespace UnityEditor.VFX.PerformanceTest { @@ -53,7 +54,7 @@ static IEnumerable allActiveSRP { get { - yield return UnityEngine.VFX.PerformanceTest.VFXPerformanceUseGraphicsTestCasesAttribute.GetPrefix(); + yield return UnityEngine.VFX.PerformanceTest.VFXPerformanceGraphicsTestCaseSource.GetPrefix(); } } diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Runtime/VFXPerformanceRuntimeTests.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Runtime/VFXPerformanceRuntimeTests.cs index db6aa935a34..80ce306a89e 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Runtime/VFXPerformanceRuntimeTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Runtime/VFXPerformanceRuntimeTests.cs @@ -11,7 +11,6 @@ using UnityEngine.TestTools.Graphics; using Object = UnityEngine.Object; using UnityEngine.Profiling; -using UnityEngine.VFX.PerformanceTest; using Unity.Profiling; using Unity.Testing.VisualEffectGraph; using UnityEngine.TestTools.Graphics.Performance; @@ -21,7 +20,7 @@ namespace UnityEditor.VFX.PerformanceTest { - public class VFXRuntimePerformanceTests : PerformanceTests + public class VisualEffectsGraphRuntimePerformanceTests : PerformanceTests { #if UNITY_EDITOR bool m_PreviousAsyncShaderCompilation; @@ -136,9 +135,9 @@ static IEnumerable allMarkerName } } - public static IEnumerator Load_And_Prepare(GraphicsTestCase testCase) + public static IEnumerator Load_And_Prepare(SceneGraphicsTestCase testCase) { - Debug.Log($"Running test case '{testCase}' with scene '{testCase.ScenePath}' {testCase.ReferenceImagePathLog}."); + Debug.Log($"Running test case '{testCase}' with scene '{testCase.ScenePath}'."); UnityEngine.SceneManagement.SceneManager.LoadScene(testCase.ScenePath); yield return new WaitForEndOfFrame(); @@ -173,11 +172,7 @@ public static IEnumerator Load_And_Prepare(GraphicsTestCase testCase) yield return new WaitForEndOfFrame(); } - [Timeout(600 * 1000), Version("1"), UnityTest, VFXPerformanceUseGraphicsTestCases, Performance] -#if UNITY_EDITOR - [PrebuildSetup("SetupGraphicsTestCases")] -#endif - public IEnumerator Counters(GraphicsTestCase testCase) + public static IEnumerator Counters(SceneGraphicsTestCase testCase) { yield return Load_And_Prepare(testCase); @@ -214,7 +209,7 @@ public IEnumerator Counters(GraphicsTestCase testCase) } } - public class VFXRuntimeMemoryTests : PerformanceTests + public class VisualEffectsGraphRuntimeMemoryTests : PerformanceTests { #if UNITY_EDITOR bool m_PreviousAsyncShaderCompilation; @@ -232,7 +227,7 @@ public void Clear() } #endif - private IEnumerable GetVFXMemoryObjectTypes() + private static IEnumerable GetVFXMemoryObjectTypes() { yield return typeof(VisualEffect); yield return typeof(VisualEffectAsset); @@ -242,7 +237,7 @@ private IEnumerable GetVFXMemoryObjectTypes() private static long s_minObjectSize = 1024 * 64; - private IEnumerator FreeMemory() + private static IEnumerator FreeMemory() { GC.Collect(); var unloadAsync = Resources.UnloadUnusedAssets(); @@ -250,15 +245,11 @@ private IEnumerator FreeMemory() yield return new WaitForEndOfFrame(); } - [Timeout(600 * 1000), Version("1"), UnityTest, VFXPerformanceUseGraphicsTestCases, Performance, Order(0)] -#if UNITY_EDITOR - [PrebuildSetup("SetupGraphicsTestCases")] -#endif - public IEnumerator Memory(GraphicsTestCase testCase) + public static IEnumerator Memory(SceneGraphicsTestCase testCase) { yield return FreeMemory(); - yield return VFXRuntimePerformanceTests.Load_And_Prepare(testCase); + yield return VisualEffectsGraphRuntimePerformanceTests.Load_And_Prepare(testCase); var results = new List<(string name, long size)>(); long totalMemory = 0u; @@ -307,8 +298,7 @@ public IEnumerator Memory(GraphicsTestCase testCase) yield return FreeMemory(); } - [Version("1"), UnityTest, Performance, Order(1000)] - public IEnumerator RemainingMemoryAfterAllRun() + public static IEnumerator RemainingMemoryAfterAllRun() { yield return FreeMemory(); diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Runtime/VFXPerformanceUseGraphicsTestCasesAttribute.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Runtime/VFXPerformanceUseGraphicsTestCasesAttribute.cs index 38b22f99a38..fce544d4fae 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Runtime/VFXPerformanceUseGraphicsTestCasesAttribute.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/PerformanceTests/Runtime/VFXPerformanceUseGraphicsTestCasesAttribute.cs @@ -8,6 +8,9 @@ using UnityEngine.TestTools.Graphics; using UnityEngine.Scripting; using UnityEngine.Rendering; +using UnityEngine; +using UnityEngine.TestTools.Graphics.TestCases; + #if UNITY_EDITOR using UnityEditor; using System.Linq; @@ -16,12 +19,13 @@ namespace UnityEngine.VFX.PerformanceTest { - using Test = NUnit.Framework.Internal.Test; - // If there are several UseGraphicTestCasesAttribute within the project, the AssetBundle.Load leads to an unexpected error. - public class VFXPerformanceUseGraphicsTestCasesAttribute : UnityTestAttribute, ITestBuilder + public class VfxPerformanceGraphicsTestAttribute : SceneGraphicsTestAttribute { - NUnitTestCaseBuilder m_Builder = new NUnitTestCaseBuilder(); + public VfxPerformanceGraphicsTestAttribute(params string[] scenePaths) : base(typeof(VFXPerformanceGraphicsTestCaseSource), scenePaths) { } + } + public class VFXPerformanceGraphicsTestCaseSource : SceneGraphicsTestCaseSource + { public static string GetPrefix() { //Can't use SRPBinder here, this code is also runtime @@ -33,30 +37,15 @@ public static string GetPrefix() return currentSRP.name; } - IEnumerable ITestBuilder.BuildFrom(IMethodInfo method, Test suite) + public override IEnumerable GetTestCases(IMethodInfo method) { - var results = new List(); -#if UNITY_EDITOR - var scenePaths = EditorGraphicsTestCaseProvider.GetTestScenePaths().ToArray(); -#else - var scenePaths = RuntimeGraphicsTestCaseProvider.GetScenePaths(); -#endif - foreach (var scenePath in scenePaths) - { - var data = new TestCaseData(new object[] { new GraphicsTestCase(scenePath, Texture2D.blackTexture) }); + var testCases = base.GetTestCases(method); - data.SetName(Path.GetFileNameWithoutExtension(scenePath)); - data.ExpectedResult = new Object(); - data.HasExpectedResult = true; - - var test = m_Builder.BuildTestMethod(method, suite, data); - if (test.parms != null) - test.parms.HasExpectedResult = false; + foreach (var testCase in testCases) + { + yield return testCase with { Name = GetPrefix() + "." + testCase.Name }; - test.Name = string.Format("{0}.{1}", GetPrefix(), Path.GetFileNameWithoutExtension(scenePath)); - results.Add(test); } - return results; } } } diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97849.unitypackage b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97849.unitypackage new file mode 100644 index 00000000000..b0ae7c6db15 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97849.unitypackage @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00ebccec898028be27f481d5cf552483afb0d4432473b3b63fe2b3c9a1de4626 +size 9205 diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97849.unitypackage.meta b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97849.unitypackage.meta new file mode 100644 index 00000000000..aded8aa02e1 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97849.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d60bede9c5b9c9e47b0f47df215ab2b5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97850.unitypackage b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97850.unitypackage new file mode 100644 index 00000000000..842b35fbc41 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97850.unitypackage @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f65b1578c180f6cab2f577d734dd41a4dc6fe3ac6ea1886b08b1bcaac0495d0 +size 6020 diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97850.unitypackage.meta b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97850.unitypackage.meta new file mode 100644 index 00000000000..47d48410bf6 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97850.unitypackage.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b707adae37c04414d849471e86ff2128 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/SetupGraphicsTestCases.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/SetupGraphicsTestCases.cs deleted file mode 100644 index 9ce3c6b74b1..00000000000 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/SetupGraphicsTestCases.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using UnityEditor; -using UnityEngine.Scripting; -using UnityEngine.TestTools; -using UnityEngine.VFX; - -// Work around case #1033694, unable to use PrebuildSetup types directly from assemblies that don't have special names. -// Once that's fixed, this class can be deleted and the SetupGraphicsTestCases class in Unity.TestFramework.Graphics.Editor -// can be used directly instead. -public class SetupGraphicsTestCases : IPrebuildSetup -{ - public void Setup() - { - UnityEditor.TestTools.Graphics.SetupGraphicsTestCases.Setup(); - - // Configure project for XR tests - Unity.Testing.XR.Editor.SetupMockHMD.SetupLoader(); - - var vfxAssetsGuid = AssetDatabase.FindAssets("t:VisualEffectAsset AssetBundle"); - - if (vfxAssetsGuid.Any()) - { - foreach (var guid in vfxAssetsGuid) - { - string assetPath = AssetDatabase.GUIDToAssetPath(guid); - AssetDatabase.ImportAsset(assetPath); - } - EditorUtility.ClearProgressBar(); - } - - var bundlePath = "Assets/StreamingAssets/" + Unity.Testing.VisualEffectGraph.AssetBundleHelper.kAssetBundleRoot; - if (!Directory.Exists(bundlePath)) - { - Directory.CreateDirectory(bundlePath); - } - BuildTarget target = UnityEditor.EditorUserBuildSettings.activeBuildTarget; - UnityEditor.BuildPipeline.BuildAssetBundles(bundlePath, UnityEditor.BuildAssetBundleOptions.None, target); - } -} diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Unity.Testing.VisualEffectGraph.EditorTests.asmdef b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Unity.Testing.VisualEffectGraph.EditorTests.asmdef index ee297b4bef9..1bd358aa993 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Unity.Testing.VisualEffectGraph.EditorTests.asmdef +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Unity.Testing.VisualEffectGraph.EditorTests.asmdef @@ -11,7 +11,8 @@ "UnityEditor.TestRunner", "Unity.Timeline", "Unity.Timeline.Editor", - "Unity.ShaderGraph.Editor" + "Unity.ShaderGraph.Editor", + "UnityEngine.TestTools.Graphics" ], "includePlatforms": [ "Editor" @@ -27,26 +28,26 @@ "UNITY_INCLUDE_TESTS" ], "versionDefines": [ - { - "name": "com.unity.timeline", - "expression": "[0.0.0-builtin]", - "define": "VFX_HAS_TIMELINE" - }, - { - "name": "com.unity.timeline", - "expression": "1.0.0", - "define": "VFX_HAS_TIMELINE" - }, - { - "name": "com.unity.render-pipelines.high-definition", - "expression": "1.0.0", - "define": "VFX_TESTS_HAS_HDRP" - }, - { - "name": "com.unity.render-pipelines.universal", - "expression": "1.0.0", - "define": "VFX_TESTS_HAS_URP" - } + { + "name": "com.unity.timeline", + "expression": "[0.0.0-builtin]", + "define": "VFX_HAS_TIMELINE" + }, + { + "name": "com.unity.timeline", + "expression": "1.0.0", + "define": "VFX_HAS_TIMELINE" + }, + { + "name": "com.unity.render-pipelines.high-definition", + "expression": "1.0.0", + "define": "VFX_TESTS_HAS_HDRP" + }, + { + "name": "com.unity.render-pipelines.universal", + "expression": "1.0.0", + "define": "VFX_TESTS_HAS_URP" + } ], "noEngineReferences": false -} +} \ No newline at end of file diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs index ec9d9bb626d..36943930596 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs @@ -21,7 +21,7 @@ public void Init() VFXTestCommon.CloseAllUnecessaryWindows(); } - [OneTimeTearDown] + [TearDown] public void CleanUp() { VFXTestCommon.DeleteAllTemporaryGraph(); @@ -380,6 +380,63 @@ public IEnumerator ShaderGraph_Strip_Without_Any_Warnings() } } + public static bool[] kChangeMeshLodCount = { false, true }; + + [UnityTest, Description("UUM-97850")] + public IEnumerator Output_Mesh_With_Strip_System([ValueSource(nameof(kChangeMeshLodCount))] bool changeMeshLodCount) + { + var packagePath = "Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/Repro_97850.unitypackage"; + AssetDatabase.ImportPackageImmediately(packagePath); + AssetDatabase.SaveAssets(); + yield return null; + + var vfxPath = VFXTestCommon.tempBasePath + "Repro_97850.vfx"; + + if (changeMeshLodCount) + { + var graph = AssetDatabase.LoadAssetAtPath(vfxPath) + .GetOrCreateResource() + .GetOrCreateGraph(); + Assert.IsNotNull(graph); + var meshOutput = graph.children.OfType().SingleOrDefault(); + Assert.IsNotNull(meshOutput); + meshOutput.SetSettingValue("MeshCount", 2u); + Assert.AreEqual(1, meshOutput.meshCount); //Strip is expected to override this behavior + AssetDatabase.ImportAsset(vfxPath); + } + + var objets = AssetDatabase.LoadAllAssetsAtPath(vfxPath); + + var shaders = objets.OfType().ToArray(); + var materials = objets.OfType().ToArray(); + + int relevantMaterialCount = 0; + foreach (var material in materials) + { + var shaderData = ShaderUtil.GetShaderData(material.shader); + if (shaders.Contains(material.shader)) + relevantMaterialCount++; + + int passCount = shaderData.ActiveSubshader.PassCount; + for (int pass = 0; pass < passCount; pass++) + { + ShaderUtil.CompilePass(material, pass, true); + } + } + Assert.AreEqual(1u, shaders.Length); + Assert.AreEqual(1u, relevantMaterialCount); + yield return null; + + foreach (var shader in shaders) + { + var allMessages = ShaderUtil.GetShaderMessages(shader); + Assert.AreEqual(0, allMessages.Length, allMessages.Length > 0 ? allMessages[0].message : string.Empty); + + Assert.IsFalse(ShaderUtil.ShaderHasError(shader)); + Assert.IsFalse(ShaderUtil.ShaderHasWarnings(shader)); + } + } + [UnityTest, Description("UUM-97805")] public IEnumerator Check_Validate_Graph_With_Sample_Gradient() { diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXMaterialVariantTest.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXMaterialVariantTest.cs index 46830d60df6..354598c5e26 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXMaterialVariantTest.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXMaterialVariantTest.cs @@ -9,6 +9,7 @@ using UnityEngine.VFX; using UnityEditor.VFX; using UnityEditor.VFX.UI; +using UnityEditor.ShaderGraph.Internal; namespace UnityEditor.VFX.Test { @@ -239,6 +240,73 @@ public void Verify_MaterialSettings_Visibility() Assert.Contains("materialSettings", allSettings); } + [UnityTest] + public IEnumerator Switch_ShaderGraph_And_Undo() + { + var baseDataPath = "Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/"; + var packagePath = baseDataPath + "/Repro_97849.unitypackage"; + AssetDatabase.ImportPackageImmediately(packagePath); + yield return null; + + var shaderGraphPath_A = AssetDatabase.LoadAssetAtPath(VFXTestCommon.tempBasePath + "/VFX_With_SG_A.shadergraph"); + var shaderGraphPath_B = AssetDatabase.LoadAssetAtPath(VFXTestCommon.tempBasePath + "/VFX_With_SG_B.shadergraph"); + var vfxPath = VFXTestCommon.tempBasePath + "/VFX_With_SG.vfx"; + var vfx = AssetDatabase.LoadAssetAtPath(vfxPath); + Assert.IsNotNull(shaderGraphPath_A); + Assert.IsNotNull(shaderGraphPath_B); + Assert.IsNotNull(vfx); + + var graph = vfx.GetOrCreateResource().GetOrCreateGraph(); + var window = VFXViewWindow.GetWindow(vfx, true); + window.LoadAsset(vfx, null); + window.Show(); + Assert.IsNotNull(graph); + + var output = graph.children.OfType().SingleOrDefault(); + Assert.IsNotNull(output); + + Undo.IncrementCurrentGroup(); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_A")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_B")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_C")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_1")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_2")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_3")); + + output.SetSettingValue("shaderGraph", shaderGraphPath_B); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_A")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_B")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_C")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_1")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_2")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_3")); + + Undo.PerformUndo(); + yield return null; + + Assert.AreEqual(shaderGraphPath_A, output.GetShaderGraph()); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_A")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_B")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_C")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_1")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_2")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_3")); + + Undo.PerformRedo(); + yield return null; + + Assert.AreEqual(shaderGraphPath_B, output.GetShaderGraph()); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_A")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_B")); + Assert.AreEqual(0, output.inputSlots.Count(o => o.name == "_C")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_1")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_2")); + Assert.AreEqual(1, output.inputSlots.Count(o => o.name == "_3")); + + Undo.PerformUndo(); + yield return null; + } + [Test] public void Check_Material_Override_Behavior([ValueSource("s_Check_Material_Override_Behavior_Test_Case")] Check_Material_Override_Behavior_Test_Case testCase) { diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/AssetBundleSetupAttribute.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/AssetBundleSetupAttribute.cs new file mode 100644 index 00000000000..9c2ea235787 --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/AssetBundleSetupAttribute.cs @@ -0,0 +1,41 @@ +using System; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEngine.Scripting; +using UnityEngine.TestTools; +using UnityEngine.TestTools.Graphics; +using UnityEngine.VFX; + +namespace Unity.Testing.VisualEffectGraph.Tests +{ + public class AssetBundleSetupAttribute : GraphicsPrebuildSetupAttribute + { + public AssetBundleSetupAttribute() : base() { } + + public override void Setup() + { +#if UNITY_EDITOR + var vfxAssetsGuid = AssetDatabase.FindAssets("t:VisualEffectAsset AssetBundle"); + + if (vfxAssetsGuid.Any()) + { + foreach (var guid in vfxAssetsGuid) + { + string assetPath = AssetDatabase.GUIDToAssetPath(guid); + AssetDatabase.ImportAsset(assetPath); + } + EditorUtility.ClearProgressBar(); + } + + var bundlePath = "Assets/StreamingAssets/" + Unity.Testing.VisualEffectGraph.AssetBundleHelper.kAssetBundleRoot; + if (!Directory.Exists(bundlePath)) + { + Directory.CreateDirectory(bundlePath); + } + BuildTarget target = UnityEditor.EditorUserBuildSettings.activeBuildTarget; + UnityEditor.BuildPipeline.BuildAssetBundles(bundlePath, UnityEditor.BuildAssetBundleOptions.None, target); +#endif + } + } +} diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/SetupGraphicsTestCases.cs.meta b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/AssetBundleSetupAttribute.cs.meta similarity index 100% rename from Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/SetupGraphicsTestCases.cs.meta rename to Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/AssetBundleSetupAttribute.cs.meta diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/PerformanceTestSettingsSetupAttribute.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/PerformanceTestSettingsSetupAttribute.cs new file mode 100644 index 00000000000..a373140688a --- /dev/null +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/PerformanceTestSettingsSetupAttribute.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; +using System.Linq; +using UnityEditor; +using UnityEngine.Scripting; +using UnityEngine.TestTools; +using UnityEngine.TestTools.Graphics; +using UnityEngine.VFX; +using UnityEngine.TestTools.Graphics.Performance; + +namespace Unity.Testing.VisualEffectGraph.Tests +{ + public class PerformanceTestSettingsSetupAttribute : GraphicsPrebuildSetupAttribute + { + public PerformanceTestSettingsSetupAttribute() : base() { } + + // The asset 'Resources/PerformanceTestsSettings' in PerformanceTestSettings.cs sometimes doesn't get created during standalone test builds + // This causes 'PerformanceTestSettings instance' to be null + // and any calls to PerformanceTestUtils will throw a NullReferenceException error during test runs + // By calling PerformanceTestSettings.GetSerializedSettings() as a prebuild setup step, we ensure 'Resources/PerformanceTestsSettings' exists, + // or gets created if it doesn't exist + public override void Setup() + { +#if UNITY_EDITOR + PerformanceTestSettings.GetSerializedSettings(); +#endif + } + } +} diff --git a/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Editor/Setup/SetupGraphicsTestCases.cs.meta b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/PerformanceTestSettingsSetupAttribute.cs.meta similarity index 83% rename from Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Editor/Setup/SetupGraphicsTestCases.cs.meta rename to Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/PerformanceTestSettingsSetupAttribute.cs.meta index 157c13c975d..ae256c45f57 100644 --- a/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Editor/Setup/SetupGraphicsTestCases.cs.meta +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/PerformanceTestSettingsSetupAttribute.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 58d617dbb05697347802fd17c74ee94d +guid: b379586a6d08e8b468d687d16fcfd78f MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/Unity.Testing.VisualEffectGraph.Tests.asmdef b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/Unity.Testing.VisualEffectGraph.Tests.asmdef index 8961ecc3759..632b4a33934 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/Unity.Testing.VisualEffectGraph.Tests.asmdef +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/Unity.Testing.VisualEffectGraph.Tests.asmdef @@ -13,7 +13,10 @@ "Unity.VisualEffectGraph.Runtime", "UnityEngine.TestTools.Graphics", "UnityEngine.TestRunner", - "UnityEditor.TestRunner" + "UnityEditor.TestRunner", + "Unity.Testing.XR.Editor", + "UnityEngine.TestTools.Graphics.Performance", + "UnityEngine.Graphics.Testing.Common.Runtime" ], "includePlatforms": [], "excludePlatforms": [], @@ -49,4 +52,4 @@ } ], "noEngineReferences": false -} +} \ No newline at end of file diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXCheckGarbage.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXCheckGarbage.cs index f41c083cd45..280d151ab92 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXCheckGarbage.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXCheckGarbage.cs @@ -7,6 +7,8 @@ using Unity.Profiling; using Unity.Testing.VisualEffectGraph; using UnityEngine.TestTools; +using UnityEngine.TestTools.Graphics; +using Unity.Testing.VisualEffectGraph.Tests; #if UNITY_EDITOR using System.Collections.Generic; using System.Linq; @@ -19,7 +21,8 @@ namespace UnityEngine.VFX.Test { [TestFixture] - [PrebuildSetup("SetupGraphicsTestCases")] + [MockHmdSetup(99)] + [AssetBundleSetup] public class VFXCheckGarbage { public static readonly string[] s_CustomGarbageWrapperTest = new[] { "Reference_Forcing_Garbage_Creation", "Basic_Usage" }; diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXGraphicsTests.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXGraphicsTests.cs index 6d39f24665b..76a07a02f3e 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXGraphicsTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXGraphicsTests.cs @@ -19,16 +19,16 @@ namespace UnityEngine.VFX.Test { - public class VFXGraphicsTests + public static class VisualEffectsGraphGraphicsTests { - int m_previousCaptureFrameRate; - float m_previousFixedTimeStep; - float m_previousMaxDeltaTime; + static int m_previousCaptureFrameRate; + static float m_previousFixedTimeStep; + static float m_previousMaxDeltaTime; #if UNITY_EDITOR - bool m_previousAsyncShaderCompilation; + static bool m_previousAsyncShaderCompilation; #endif [OneTimeSetUp] - public void Init() + public static void Init() { m_previousCaptureFrameRate = Time.captureFramerate; m_previousFixedTimeStep = UnityEngine.VFX.VFXManager.fixedTimeStep; @@ -39,24 +39,9 @@ public void Init() #endif } -#if UNITY_WEBGL || UNITY_ANDROID - [UnitySetUp] - public IEnumerator SetUp() + public static IEnumerator Run(SceneGraphicsTestCase testCase) { - yield return RuntimeGraphicsTestCaseProvider.EnsureGetReferenceImageBundlesAsync(); - } -#endif - - [UnityTest, Category("VisualEffect")] - [PrebuildSetup("SetupGraphicsTestCases")] - [UseGraphicsTestCases] - [Timeout(450 * 1000)] // Increase timeout to handle complex scenes with many shaders and XR variants - public IEnumerator Run(GraphicsTestCase testCase) - { - Debug.Log($"Running test case {testCase.ScenePath} with reference image {testCase.ScenePath}. {testCase.ReferenceImagePathLog}."); -#if UNITY_WEBGL || UNITY_ANDROID - RuntimeGraphicsTestCaseProvider.AssociateReferenceImageWithTest(testCase); -#endif + GraphicsTestLogger.Log($"Running test case {testCase.ScenePath} with reference image {testCase.ScenePath}."); #if UNITY_EDITOR while (SceneView.sceneViews.Count > 0) @@ -65,7 +50,7 @@ public IEnumerator Run(GraphicsTestCase testCase) sceneView.Close(); } #endif - Debug.Log($"Running test case '{testCase}' with scene '{testCase.ScenePath}' {testCase.ReferenceImagePathLog}."); + GraphicsTestLogger.Log($"Running test case '{testCase}' with scene '{testCase.ScenePath}'."); SceneManagement.SceneManager.LoadScene(testCase.ScenePath); // Always wait one frame for scene load @@ -178,7 +163,7 @@ public IEnumerator Run(GraphicsTestCase testCase) { camera.targetTexture = null; - ImageAssert.AreEqual(testCase.ReferenceImage, camera, imageComparisonSettings, testCase.ReferenceImagePathLog); + ImageAssert.AreEqual(testCase.ReferenceImage.Image, camera, imageComparisonSettings, testCase.ReferenceImage.LoadMessage); } finally @@ -188,18 +173,8 @@ public IEnumerator Run(GraphicsTestCase testCase) } } - [TearDown] - public void TearDown() - { - XRGraphicsAutomatedTests.running = false; - -#if UNITY_EDITOR - UnityEditor.TestTools.Graphics.ResultsUtility.ExtractImagesFromTestProperties(TestContext.CurrentContext.Test); -#endif - } - [OneTimeTearDown] - public void OneTimeTearDown() + public static void OneTimeTearDown() { Time.captureFramerate = m_previousCaptureFrameRate; UnityEngine.VFX.VFXManager.fixedTimeStep = m_previousFixedTimeStep; diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXRuntimeTests.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXRuntimeTests.cs index d2cdaf01946..7ce3838961b 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXRuntimeTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXRuntimeTests.cs @@ -6,7 +6,9 @@ using NUnit.Framework; using Unity.Testing.VisualEffectGraph; using UnityEngine.TestTools; +using UnityEngine.TestTools.Graphics; using UnityEngine.Rendering; +using Unity.Testing.VisualEffectGraph.Tests; #if VFX_HAS_TIMELINE using UnityEngine.Playables; @@ -15,7 +17,8 @@ namespace UnityEngine.VFX.Test { [TestFixture] - [PrebuildSetup("SetupGraphicsTestCases")] + [MockHmdSetup(99)] + [AssetBundleSetup] public class VFXRuntimeTests { AssetBundle m_AssetBundle; diff --git a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXStressTests.cs b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXStressTests.cs index 94f38b97f6f..063fae38e6b 100644 --- a/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXStressTests.cs +++ b/Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Runtime/VFXStressTests.cs @@ -9,6 +9,8 @@ using Unity.Profiling; using Unity.Testing.VisualEffectGraph; using UnityEngine.TestTools; +using UnityEngine.TestTools.Graphics; +using Unity.Testing.VisualEffectGraph.Tests; #if UNITY_EDITOR using UnityEditor; #endif @@ -16,7 +18,8 @@ namespace UnityEngine.VFX.Test { [TestFixture] - [PrebuildSetup("SetupGraphicsTestCases")] + [MockHmdSetup(99)] + [AssetBundleSetup] public class VFXStressTests { diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Editor/BaseGraphicsTests.cs b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Editor/BaseGraphicsTests.cs index a3ade5eab6a..ade9de3174e 100644 --- a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Editor/BaseGraphicsTests.cs +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Editor/BaseGraphicsTests.cs @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Collections.Generic; using NUnit.Framework; using UnityEditor; using UnityEditor.SceneManagement; @@ -9,6 +10,7 @@ using UnityEngine.TestTools; using UnityEngine.TestTools.Graphics; using Object = UnityEngine.Object; +using UnityEngine.MultipleSRPGraphicsTest; public class BaseGraphicsTests { @@ -23,9 +25,9 @@ public IEnumerator SetUp() #endif [UnityTest, Category("Base")] - [UseGraphicsTestCases] + [MultipleSRPGraphicsTest("Assets/GraphicsTests")] [Timeout(300 * 1000)] - public IEnumerator Run(GraphicsTestCase testCase) + public IEnumerator Run(SceneGraphicsTestCase testCase) { if (string.IsNullOrEmpty(testCase.ScenePath)) { @@ -37,19 +39,40 @@ public IEnumerator Run(GraphicsTestCase testCase) Assert.Ignore("Ignoring this test because the scene is not under GraphicsTests folder, or not named with GraphicsTest"); } - Debug.Log($"Running test case {testCase.ScenePath} with reference image {testCase.ScenePath}. {testCase.ReferenceImagePathLog}."); + GraphicsTestLogger.Log($"Running test case {testCase.ScenePath} with reference image {testCase.ScenePath}. {testCase.ReferenceImage.LoadMessage}."); #if UNITY_WEBGL || UNITY_ANDROID RuntimeGraphicsTestCaseProvider.AssociateReferenceImageWithTest(testCase); #endif - Debug.Log($"Running test case '{testCase}' with scene '{testCase.ScenePath}' {testCase.ReferenceImagePathLog}."); + GraphicsTestLogger.Log($"Running test case '{testCase}' with scene '{testCase.ScenePath}' {testCase.ReferenceImage.LoadMessage}."); var oldTimeScale = Time.timeScale; var currentRPAsset = GraphicsSettings.defaultRenderPipeline; Time.timeScale = 0.0f; using (new AsyncShaderCompilationScope()) { - GraphicsSettings.defaultRenderPipeline = testCase.SRPAsset; - yield return null; + var srpTestSceneAsset = Resources.Load("SRPTestSceneSO"); + var srpAssets = new List(); + foreach (var testDatas in srpTestSceneAsset.testDatas) + { + foreach (var srpAsset in testDatas.srpAssets) + { + if(!srpAssets.Contains(srpAsset)) + { + srpAssets.Add(srpAsset); + } + } + } + + var parsedTestCaseName = testCase.Name.Split("_"); + var parsedRenderPipelineAsset = parsedTestCaseName[parsedTestCaseName.Length - 1]; + foreach (var srpAsset in srpAssets) + { + if (srpAsset.name == parsedRenderPipelineAsset) + { + GraphicsSettings.defaultRenderPipeline = srpAsset; + yield return null; + } + } EditorSceneManager.OpenScene(testCase.ScenePath); yield return null; // Always wait one frame for scene load @@ -79,7 +102,7 @@ public IEnumerator Run(GraphicsTestCase testCase) try { - ImageAssert.AreEqual(testCase.ReferenceImage, camera, settings.ImageComparisonSettings, testCase.ReferenceImagePathLog); + ImageAssert.AreEqual(testCase.ReferenceImage.Image, camera, settings.ImageComparisonSettings, testCase.ReferenceImage.LoadMessage); } catch (Exception e) { diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/MultipleSRPGraphicsTest.cs b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/MultipleSRPGraphicsTest.cs new file mode 100644 index 00000000000..dfe442a0495 --- /dev/null +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/MultipleSRPGraphicsTest.cs @@ -0,0 +1,46 @@ +using NUnit.Framework.Interfaces; +using UnityEngine.TestTools; +using NUnit.Framework.Internal; +using System.Collections.Generic; +using System.IO; +using NUnit.Framework.Internal.Builders; +using NUnit.Framework; +using UnityEngine.TestTools.Graphics; +using UnityEngine.Scripting; +using UnityEngine.Rendering; +using UnityEngine; +using UnityEngine.TestTools.Graphics.TestCases; + +#if UNITY_EDITOR +using UnityEditor; +using System.Linq; +using UnityEditor.TestTools.Graphics; +#endif + +namespace UnityEngine.MultipleSRPGraphicsTest +{ + public class MultipleSRPGraphicsTestAttribute : SceneGraphicsTestAttribute + { + public MultipleSRPGraphicsTestAttribute(params string[] scenePaths) : base(typeof(MultipleSRPGraphicsTestCaseSource), scenePaths) { } + } + + public class MultipleSRPGraphicsTestCaseSource : SceneGraphicsTestCaseSource + { + private static SRPTestSceneAsset srpTestSceneAsset = Resources.Load("SRPTestSceneSO"); + + public override IEnumerable GetTestCases(IMethodInfo method) + { + var testCasesList = base.GetTestCases(method).ToList(); + for (int i = 0; i < testCasesList.Count; i++) + { + var testCase = testCasesList[i]; + var srpAssets = srpTestSceneAsset.testDatas[i].srpAssets; + + foreach (var srpAsset in srpAssets) + { + yield return testCase with { Name = testCase.Name + "_" + srpAsset.name }; + } + } + } + } +} \ No newline at end of file diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/MultipleSRPGraphicsTest.cs.meta b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/MultipleSRPGraphicsTest.cs.meta new file mode 100644 index 00000000000..9022f108b44 --- /dev/null +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/MultipleSRPGraphicsTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: cf178fd763244e740950e8dcb2a73d99 \ No newline at end of file diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/SRPTestSceneAsset.cs b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/SRPTestSceneAsset.cs new file mode 100644 index 00000000000..d0d598629a0 --- /dev/null +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/SRPTestSceneAsset.cs @@ -0,0 +1,20 @@ +using UnityEngine; +using System; +using System.Collections.Generic; +using UnityEngine.Rendering; +using Object = UnityEngine.Object; + +[CreateAssetMenu(fileName = "SRPTestSceneSO", menuName = "Graphics Test Framework/SRP Test Scene Asset")] +public class SRPTestSceneAsset : ScriptableObject +{ + [Serializable] + public class TestData + { + public bool enabled = true; + public Object scene; + public List srpAssets; + public string path; + } + + public List testDatas = new List(); +} diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/SRPTestSceneAsset.cs.meta b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/SRPTestSceneAsset.cs.meta new file mode 100644 index 00000000000..c965bd4e0dc --- /dev/null +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Common/Runtime/SRPTestSceneAsset.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: eb88b38369329a9458f82ce3faed766e \ No newline at end of file diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Resources/SRPTestSceneSO.asset b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Resources/SRPTestSceneSO.asset index d792a9e567b..31841fd8e52 100644 --- a/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Resources/SRPTestSceneSO.asset +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Assets/Resources/SRPTestSceneSO.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: a31d83ee787523547824bbbd778435f9, type: 3} + m_Script: {fileID: 11500000, guid: eb88b38369329a9458f82ce3faed766e, type: 3} m_Name: SRPTestSceneSO m_EditorClassIdentifier: testDatas: diff --git a/Tests/SRPTests/Projects/MultipleSRP_Tests/Packages/manifest.json b/Tests/SRPTests/Projects/MultipleSRP_Tests/Packages/manifest.json index d1d6b3c8d7b..2b1dd45716a 100644 --- a/Tests/SRPTests/Projects/MultipleSRP_Tests/Packages/manifest.json +++ b/Tests/SRPTests/Projects/MultipleSRP_Tests/Packages/manifest.json @@ -11,7 +11,7 @@ "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "local.utf.references": "file:../../../Packages/local.utf.references", - "com.unity.testframework.graphics": "8.9.1-exp.1", + "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.timeline": "1.8.0", "com.unity.ugui": "2.0.0", "com.unity.visualeffectgraph": "file:../../../../../Packages/com.unity.visualeffectgraph", diff --git a/Tests/SRPTests/Projects/RPCore_PerformanceTests/Assets/PerformanceTests/Runtime/.buginfo b/Tests/SRPTests/Projects/RPCore_PerformanceTests/Assets/PerformanceTests/Runtime/.buginfo index ff12e6c377f..0a882eb4e5f 100644 --- a/Tests/SRPTests/Projects/RPCore_PerformanceTests/Assets/PerformanceTests/Runtime/.buginfo +++ b/Tests/SRPTests/Projects/RPCore_PerformanceTests/Assets/PerformanceTests/Runtime/.buginfo @@ -2,4 +2,4 @@ rp-foundation: when: path: - ^.*RenderGraph.*$ - area: SRP Architecture & API + area: SRP Foundation diff --git a/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Editor/Setup/SetupGraphicsTestCases.cs b/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Editor/Setup/SetupGraphicsTestCases.cs deleted file mode 100644 index ef3a218a0e4..00000000000 --- a/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Editor/Setup/SetupGraphicsTestCases.cs +++ /dev/null @@ -1,12 +0,0 @@ -using UnityEngine.TestTools; - -// Work around case #1033694, unable to use PrebuildSetup types directly from assemblies that don't have special names. -// Once that's fixed, this class can be deleted and the SetupGraphicsTestCases class in Unity.TestFramework.Graphics.Editor -// can be used directly instead. -public class SetupGraphicsTestCases : IPrebuildSetup -{ - public void Setup() - { - UnityEditor.TestTools.Graphics.SetupGraphicsTestCases.Setup(); - } -} diff --git a/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Scripts/ShaderGraphGraphicsTests.cs b/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Scripts/ShaderGraphGraphicsTests.cs index f1dd6bc3f7e..5a85132a814 100644 --- a/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Scripts/ShaderGraphGraphicsTests.cs +++ b/Tests/SRPTests/Projects/ShaderGraph/Assets/CommonAssets/Scripts/ShaderGraphGraphicsTests.cs @@ -4,27 +4,33 @@ using UnityEngine.TestTools; using UnityEngine.TestTools.Graphics; using UnityEngine.SceneManagement; +using UnityEngine.Rendering; public class ShaderGraphGraphicsTests { -#if UNITY_WEBGL || UNITY_ANDROID - [UnitySetUp] - public IEnumerator SetUp() - { - yield return RuntimeGraphicsTestCaseProvider.EnsureGetReferenceImageBundlesAsync(); - } -#endif + [IgnoreGraphicsTest("InputNodes|SamplerStateTests|UVNodes", "GLES3 renders these tests incorrectly (FB: 1354427)", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Android }, graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.OpenGLES3 })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.OpenGLES3 })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.PlayStation4 })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.XboxOne })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Metal })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.OpenGLCore })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Direct3D12 })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Vulkan })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Switch })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.XboxOneD3D12 })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.GameCoreXboxOne })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.GameCoreXboxSeries })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.PlayStation5 })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.PlayStation5NGGC })] + [IgnoreGraphicsTest("InstanceIDWithKeywords", "Platform Independent", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.WebGPU })] + [IgnoreGraphicsTest("TransformNode", "Test is unstable", colorSpaces: new ColorSpace[] { ColorSpace.Linear }, runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Android }, graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Vulkan })] + [SceneGraphicsTest("Assets/Scenes")] [UnityTest, Category("ShaderGraph")] - [PrebuildSetup("SetupGraphicsTestCases")] - [UseGraphicsTestCases] - public IEnumerator Run(GraphicsTestCase testCase) + public IEnumerator Run(SceneGraphicsTestCase testCase) { - Debug.Log($"Running test case {testCase.ScenePath} with reference image {testCase.ScenePath}. {testCase.ReferenceImagePathLog}."); -#if UNITY_WEBGL || UNITY_ANDROID - RuntimeGraphicsTestCaseProvider.AssociateReferenceImageWithTest(testCase); -#endif - Debug.Log($"Running test case '{testCase}' with scene '{testCase.ScenePath}' {testCase.ReferenceImagePathLog}."); + GraphicsTestLogger.Log($"Running test case {testCase.ScenePath} with reference image {testCase.ScenePath}. {testCase.ReferenceImage.LoadMessage}."); + GraphicsTestLogger.Log($"Running test case '{testCase}' with scene '{testCase.ScenePath}' {testCase.ReferenceImage.LoadMessage}."); SceneManager.LoadScene(testCase.ScenePath); // Always wait one frame for scene load @@ -38,15 +44,7 @@ public IEnumerator Run(GraphicsTestCase testCase) for (int i = 0; i < settings.WaitFrames; i++) yield return null; - ImageAssert.AreEqual(testCase.ReferenceImage, camera, settings.ImageComparisonSettings, testCase.ReferenceImagePathLog); + ImageAssert.AreEqual(testCase.ReferenceImage.Image, camera, settings.ImageComparisonSettings, testCase.ReferenceImage.LoadMessage); settings.OnTestComplete(); } - -#if UNITY_EDITOR - [TearDown] - public void DumpImagesInEditor() - { - UnityEditor.TestTools.Graphics.ResultsUtility.ExtractImagesFromTestProperties(TestContext.CurrentContext.Test); - } -#endif } diff --git a/Tests/SRPTests/Projects/ShaderGraph/Packages/manifest.json b/Tests/SRPTests/Projects/ShaderGraph/Packages/manifest.json index 6c14295b4cd..b73be46d236 100644 --- a/Tests/SRPTests/Projects/ShaderGraph/Packages/manifest.json +++ b/Tests/SRPTests/Projects/ShaderGraph/Packages/manifest.json @@ -1,18 +1,19 @@ { "enableLockFile": false, "dependencies": { + "com.unity.ide.visualstudio": "2.0.22", "com.unity.ide.vscode": "1.1.3", "com.unity.render-pipelines.core": "file:../../../../../Packages/com.unity.render-pipelines.core", "com.unity.render-pipelines.universal": "file:../../../../../Packages/com.unity.render-pipelines.universal", "com.unity.render-pipelines.universal-config": "file:../../../../../Packages/com.unity.render-pipelines.universal-config", "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", - "com.unity.testframework.graphics": "8.9.1-exp.1", + "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "com.unity.testtools.codecoverage": "1.1.0", "com.unity.ugui": "2.0.0", "com.unity.visualeffectgraph": "file:../../../../../Packages/com.unity.visualeffectgraph", "com.unity.xr.interactionsubsystems": "1.0.1", - "com.unity.xr.management": "3.0.6", + "com.unity.xr.management": "4.5.0", "local.utf.references": "file:../../../Packages/local.utf.references", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", diff --git a/Tests/SRPTests/Projects/ShaderGraph/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/ShaderGraph/ProjectSettings/EditorBuildSettings.asset index fa0d04f5f71..7df81c64de9 100644 --- a/Tests/SRPTests/Projects/ShaderGraph/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/ShaderGraph/ProjectSettings/EditorBuildSettings.asset @@ -4,60 +4,6 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 - m_Scenes: - - enabled: 1 - path: Assets/Scenes/ArtisticNodes.unity - guid: ef89632b434b9c644a88f827ec7b029d - - enabled: 1 - path: Assets/Scenes/ChannelNodes.unity - guid: cc3d7893409e1a34fa72839a8a0655b8 - - enabled: 1 - path: Assets/Scenes/InputNodes.unity - guid: 1c45ab02ee5353c44b809073fe83edf7 - - enabled: 1 - path: Assets/Scenes/InputNodes_Perspective.unity - guid: f55bfa4fdbae0ea488ee4db176bbc1f4 - - enabled: 1 - path: Assets/Scenes/LogicNodes.unity - guid: c9e604cd31ff2454d9cab4e919cae3c1 - - enabled: 1 - path: Assets/Scenes/MathNodes.unity - guid: a57ba07320e44f145ab52a48fadc4dca - - enabled: 1 - path: Assets/Scenes/RefractNode.unity - guid: f35230431daa27846ba8a4a727b6d6e5 - - enabled: 1 - path: Assets/Scenes/ProceduralNodes.unity - guid: 64ece7a4be4f6294bbdc8cad1cf7f71d - - enabled: 1 - path: Assets/Scenes/UtilityNodes.unity - guid: e04b9c7fb71c03448b350d2b652e7301 - - enabled: 1 - path: Assets/Scenes/UVNodes.unity - guid: 6efc74ac9f48a3243a990cf89991972c - - enabled: 1 - path: Assets/Scenes/FlipbookNode.unity - guid: 0e9118933c86cf04c800347e43cd7e31 - - enabled: 1 - path: Assets/Scenes/TransformNode.unity - guid: 1dc3dc627ca4fff4ba184eb8f939406b - - enabled: 1 - path: Assets/Scenes/NormalMapStressTests.unity - guid: 8d4f811a4f241464fb438ad434fbaba4 - - enabled: 1 - path: Assets/Scenes/InstancedRendering.unity - guid: e2be1657f285b724c8e4fc40a9ab77fd - - enabled: 1 - path: Assets/Scenes/InstanceIDWithKeywords.unity - guid: 9ea201c786bfd4e04bb62addbef3440d - - enabled: 1 - path: Assets/Scenes/SamplerStateTests.unity - guid: ed2fd0ccb16dc6645a13091bfa602856 - - enabled: 1 - path: Assets/Scenes/URP_InstancingTest.unity - guid: 4229d44b837011e48b0f123903ea0ea5 - - enabled: 1 - path: Assets/Scenes/Fullscreen.unity - guid: 8b2856898c3f1cb43a36c7329bdbcc97 + m_Scenes: [] m_configObjects: {} m_UseUCBPForAssetBundles: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.meta similarity index 77% rename from Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.meta index c9f1c4a517d..a78af6081b8 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8.meta +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 55fd0adadf26d425eaa36b3e1d10269a +guid: d63616377f7bcf848951c979c29f3a65 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.unity new file mode 100644 index 00000000000..6758870ebce --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.unity @@ -0,0 +1,1681 @@ +%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} + 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: 0.765, y: -0.49, 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!1 &213842765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 213842767} + - component: {fileID: 213842766} + m_Layer: 0 + m_Name: Sprite_Fire_Additive_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &213842766 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213842765} + 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: -1383448332, 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.57, y: 2.14} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 2 + m_SpriteSortPoint: 0 +--- !u!4 &213842767 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 213842765} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -4, y: 0, 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 &325433473 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 325433475} + - component: {fileID: 325433474} + m_Layer: 0 + m_Name: wall_paintings_0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &325433474 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325433473} + 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: 1570768037, guid: cce1ffd4828d03348b19e94ba66be4c3, 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.09375, y: 1.6015625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &325433475 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325433473} + 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 &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 &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.03, y: 0.98, 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 &710067197 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 710067199} + - component: {fileID: 710067198} + m_Layer: 0 + m_Name: Sprite_Fire_Additive_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &710067198 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 710067197} + 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: 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 &710067199 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 710067197} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 4, y: 0, 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 &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} + 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: -0.735, y: -0.49, 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!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 &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 &1367921646 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1367921648} + - component: {fileID: 1367921647} + m_Layer: 0 + m_Name: wall_paintings_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1367921647 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1367921646} + 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: 1347333780, guid: cce1ffd4828d03348b19e94ba66be4c3, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 1 + m_Size: {x: 2, y: 2} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1367921648 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1367921646} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.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 &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 &1627176518 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1627176520} + - component: {fileID: 1627176519} + m_Layer: 0 + m_Name: wall_paintings_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1627176519 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1627176518} + 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: -1020006118, guid: cce1ffd4828d03348b19e94ba66be4c3, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 2 + m_Size: {x: 2, y: 2} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 1 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1627176520 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1627176518} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.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 &1765486088 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1765486090} + - component: {fileID: 1765486089} + m_Layer: 0 + m_Name: wall_paintings_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1765486089 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1765486088} + 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: 1026716091, guid: cce1ffd4828d03348b19e94ba66be4c3, 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.8828125, y: 1.015625} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1765486090 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1765486088} + 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 &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: 213842767} + - {fileID: 710067199} + - {fileID: 325433475} + - {fileID: 1367921648} + - {fileID: 1627176520} + - {fileID: 1765486090} + - {fileID: 625315505} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.unity.meta new file mode 100644 index 00000000000..46b6d27eb71 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5f981f02c2fc4ef4f9ff3fda036a736f +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/LoadFromResource.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/LoadFromResource.cs new file mode 100644 index 00000000000..9644106e361 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/LoadFromResource.cs @@ -0,0 +1,40 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.U2D; + +public class LoadFromResource : MonoBehaviour +{ + void OnEnable() + { + SpriteAtlasManager.atlasRequested += RequestLateBindingAtlas; + SpriteAtlasManager.atlasRegistered += AtlasRegistered; + } + + void OnDisable() + { + SpriteAtlasManager.atlasRequested -= RequestLateBindingAtlas; + SpriteAtlasManager.atlasRegistered -= AtlasRegistered; + } + + void RequestLateBindingAtlas(string tag, System.Action callback) + { + if (tag == "Fire") + { + var sa = UnityEngine.Resources.Load("FireVariant"); + callback(sa); + } + else if (tag == "Paintings") + { + var sa = UnityEngine.Resources.Load("Paintings"); + callback(sa); + } + else + Debug.Log("Error: Late binding callback with wrong atlas tag of " + tag); + } + + void AtlasRegistered(SpriteAtlas spriteAtlas) + { + Debug.LogFormat("Registered {0}.", spriteAtlas.name); + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/LoadFromResource.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/LoadFromResource.cs.meta new file mode 100644 index 00000000000..affbe75b327 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/LoadFromResource.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0d91d872554d0444a9ebbb8f43ca3775 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources.meta new file mode 100644 index 00000000000..8bafc535554 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 46c6c3baecfd95c4893923f4578ba393 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Fire.spriteatlasv2 b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Fire.spriteatlasv2 new file mode 100644 index 00000000000..1a86ba19f9f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Fire.spriteatlasv2 @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!612988286 &1 +SpriteAtlasAsset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 2 + m_MasterAtlas: {fileID: 0} + m_ImporterData: + packables: + - {fileID: 2800000, guid: b07c028762ba2f24ab2aae8c19afcedb, type: 3} + m_IsVariant: 0 + m_ScriptablePacker: {fileID: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Fire.spriteatlasv2.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Fire.spriteatlasv2.meta new file mode 100644 index 00000000000..a138e29e3a5 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Fire.spriteatlasv2.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: 7853358911666c447add3fb6a8c01810 +SpriteAtlasImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + anisoLevel: 1 + compressionQuality: 50 + maxTextureSize: 2048 + textureCompression: 0 + filterMode: 1 + generateMipMaps: 0 + readable: 0 + crunchedCompression: 0 + sRGB: 1 + platformSettings: [] + packingSettings: + serializedVersion: 2 + padding: 4 + blockOffset: 1 + allowAlphaSplitting: 0 + enableRotation: 1 + enableTightPacking: 1 + enableAlphaDilation: 0 + secondaryTextureSettings: {} + variantMultiplier: 1 + bindAsDefault: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/FireVariant.spriteatlasv2 b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/FireVariant.spriteatlasv2 new file mode 100644 index 00000000000..7e94708a0bb --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/FireVariant.spriteatlasv2 @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!612988286 &1 +SpriteAtlasAsset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 2 + m_MasterAtlas: {fileID: 100100200, guid: 7853358911666c447add3fb6a8c01810, type: 3} + m_ImporterData: + packables: + - {fileID: 2800000, guid: b07c028762ba2f24ab2aae8c19afcedb, type: 3} + m_IsVariant: 1 + m_ScriptablePacker: {fileID: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/FireVariant.spriteatlasv2.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/FireVariant.spriteatlasv2.meta new file mode 100644 index 00000000000..fed686f3cd3 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/FireVariant.spriteatlasv2.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: fdb0810a7dc52f14d87a574d5ee1a66c +SpriteAtlasImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + anisoLevel: 1 + compressionQuality: 50 + maxTextureSize: 2048 + textureCompression: 0 + filterMode: 1 + generateMipMaps: 0 + readable: 0 + crunchedCompression: 0 + sRGB: 1 + platformSettings: [] + packingSettings: + serializedVersion: 2 + padding: 4 + blockOffset: 1 + allowAlphaSplitting: 0 + enableRotation: 1 + enableTightPacking: 1 + enableAlphaDilation: 0 + secondaryTextureSettings: {} + variantMultiplier: 0.25 + bindAsDefault: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Gems.spriteatlasv2 b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Gems.spriteatlasv2 new file mode 100644 index 00000000000..6ad87fc2376 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Gems.spriteatlasv2 @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!612988286 &1 +SpriteAtlasAsset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 2 + m_MasterAtlas: {fileID: 0} + m_ImporterData: + packables: + - {fileID: 2800000, guid: 0ec5b29f4ed9ac84685e5c344282c0bf, type: 3} + m_IsVariant: 0 + m_ScriptablePacker: {fileID: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Gems.spriteatlasv2.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Gems.spriteatlasv2.meta new file mode 100644 index 00000000000..a57e8a58d99 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Gems.spriteatlasv2.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: 641bd12886c112c4a96b38aab7b752df +SpriteAtlasImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + anisoLevel: 1 + compressionQuality: 50 + maxTextureSize: 2048 + textureCompression: 0 + filterMode: 0 + generateMipMaps: 0 + readable: 0 + crunchedCompression: 0 + sRGB: 1 + platformSettings: [] + packingSettings: + serializedVersion: 2 + padding: 4 + blockOffset: 1 + allowAlphaSplitting: 0 + enableRotation: 1 + enableTightPacking: 1 + enableAlphaDilation: 0 + secondaryTextureSettings: {} + variantMultiplier: 1 + bindAsDefault: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Paintings.spriteatlasv2 b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Paintings.spriteatlasv2 new file mode 100644 index 00000000000..9b74569ee15 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Paintings.spriteatlasv2 @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!612988286 &1 +SpriteAtlasAsset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 2 + m_MasterAtlas: {fileID: 0} + m_ImporterData: + packables: + - {fileID: 2800000, guid: cce1ffd4828d03348b19e94ba66be4c3, type: 3} + m_IsVariant: 0 + m_ScriptablePacker: {fileID: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Paintings.spriteatlasv2.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Paintings.spriteatlasv2.meta new file mode 100644 index 00000000000..cd86ebc6ff8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Resources/Paintings.spriteatlasv2.meta @@ -0,0 +1,30 @@ +fileFormatVersion: 2 +guid: 82f58a60ef06da946ad346dda5845bc6 +SpriteAtlasImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + anisoLevel: 1 + compressionQuality: 50 + maxTextureSize: 2048 + textureCompression: 0 + filterMode: 1 + generateMipMaps: 0 + readable: 0 + crunchedCompression: 0 + sRGB: 1 + platformSettings: [] + packingSettings: + serializedVersion: 2 + padding: 4 + blockOffset: 1 + allowAlphaSplitting: 0 + enableRotation: 1 + enableTightPacking: 1 + enableAlphaDilation: 0 + secondaryTextureSettings: {} + variantMultiplier: 1 + bindAsDefault: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites.meta new file mode 100644 index 00000000000..8afe06bd1ce --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f4745dada299ee346886d0a5ceb3bd73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Gem_Atlas.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Gem_Atlas.png new file mode 100644 index 00000000000..c5a98e79df4 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Gem_Atlas.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Gem_Atlas.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Gem_Atlas.png.meta new file mode 100644 index 00000000000..fc50cee1566 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Gem_Atlas.png.meta @@ -0,0 +1,338 @@ +fileFormatVersion: 2 +guid: 0ec5b29f4ed9ac84685e5c344282c0bf +TextureImporter: + internalIDToNameTable: + - first: + 213: 8483082138732512798 + second: Gem_Atlas_0 + - first: + 213: -5452404639209050584 + second: Gem_Atlas_1 + - first: + 213: -1073606098527010786 + second: Gem_Atlas_2 + - first: + 213: -1058190115970830684 + second: Gem_Atlas_3 + - first: + 213: -7278019675062726547 + second: Gem_Atlas_4 + - first: + 213: 6086253875049130666 + second: Gem_Atlas_5 + 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: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + 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: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: Gem_Atlas_0 + rect: + serializedVersion: 2 + x: 3 + y: 249 + width: 122 + height: 120 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: e16cc978246f9b570800000000000000 + internalID: 8483082138732512798 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Gem_Atlas_1 + rect: + serializedVersion: 2 + x: 138 + y: 252 + width: 107 + height: 117 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 82ea0446eda2554b0800000000000000 + internalID: -5452404639209050584 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Gem_Atlas_2 + rect: + serializedVersion: 2 + x: 7 + y: 129 + width: 113 + height: 115 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: e10ca9c01f8c911f0800000000000000 + internalID: -1073606098527010786 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Gem_Atlas_3 + rect: + serializedVersion: 2 + x: 132 + y: 133 + width: 120 + height: 107 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: 4aeaab032bd8051f0800000000000000 + internalID: -1058190115970830684 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Gem_Atlas_4 + rect: + serializedVersion: 2 + x: 5 + y: 9 + width: 118 + height: 105 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: d6015978aa74ffa90800000000000000 + internalID: -7278019675062726547 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: Gem_Atlas_5 + rect: + serializedVersion: 2 + x: 130 + y: 2 + width: 124 + height: 119 + alignment: 0 + pivot: {x: 0, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: -1 + bones: [] + spriteID: aaae52b27a7b67450800000000000000 + internalID: 6086253875049130666 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Gem_Atlas_0: 8483082138732512798 + Gem_Atlas_1: -5452404639209050584 + Gem_Atlas_2: -1073606098527010786 + Gem_Atlas_3: -1058190115970830684 + Gem_Atlas_4: -7278019675062726547 + Gem_Atlas_5: 6086253875049130666 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_Fire_Additive.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_Fire_Additive.png new file mode 100644 index 00000000000..2ec2f8a21f8 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_Fire_Additive.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_Fire_Additive.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_Fire_Additive.png.meta new file mode 100644 index 00000000000..cb35bdf623e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_Fire_Additive.png.meta @@ -0,0 +1,302 @@ +fileFormatVersion: 2 +guid: b07c028762ba2f24ab2aae8c19afcedb +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 + 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, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + 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, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + 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, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + 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, y: 0} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + 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/086_SpriteAtlas/Sprites/Sprite_wall_paintings.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_wall_paintings.png new file mode 100644 index 00000000000..16bb3718238 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_wall_paintings.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_wall_paintings.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_wall_paintings.png.meta new file mode 100644 index 00000000000..b21e64d891b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/086_SpriteAtlas/Sprites/Sprite_wall_paintings.png.meta @@ -0,0 +1,287 @@ +fileFormatVersion: 2 +guid: cce1ffd4828d03348b19e94ba66be4c3 +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: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 128 + 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: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + 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: 2048 + 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: Server + maxTextureSize: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: wall_paintings_0 + rect: + serializedVersion: 2 + x: 31 + y: 22 + width: 140 + height: 205 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: f6a77763021537549981bac838735cfb + internalID: 1570768037 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: wall_paintings_1 + rect: + serializedVersion: 2 + x: 179 + y: 185 + width: 93 + height: 85 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: fef0d8c1994cf9e478c55e5f5e957c37 + internalID: 1347333780 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: wall_paintings_2 + rect: + serializedVersion: 2 + x: 278 + y: 163 + width: 141 + height: 130 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 8bb47df97e2785c4993f0e408b1bf7a9 + internalID: -1020006118 + vertices: [] + indices: + edges: [] + weights: [] + - serializedVersion: 2 + name: wall_paintings_3 + rect: + serializedVersion: 2 + x: 179 + y: 20 + width: 241 + height: 130 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: [] + physicsShape: [] + tessellationDetail: 0 + bones: [] + spriteID: 4fa9d0b0a2d440d468c59a9eb03c68a7 + internalID: 1026716091 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + wall_paintings_0: 1570768037 + wall_paintings_1: 1347333780 + wall_paintings_2: -1020006118 + wall_paintings_3: 1026716091 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.meta new file mode 100644 index 00000000000..ac2e864447f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: acf57016d7370694b847901bc9525985 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.unity new file mode 100644 index 00000000000..64929ce1243 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.unity @@ -0,0 +1,794 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_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: 20201, guid: 0000000000000000f000000000000000, type: 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 &273417551 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 273417553} + - component: {fileID: 273417552} + m_Layer: 0 + m_Name: R8_vignetteSagaUI (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &273417552 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 273417551} + 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: 1112f7dfe254749418370d1f04e2e1f3, 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: 21300000, guid: fc87da76bb3c847ef8699ea677d5ae74, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 10.24, y: 7.68} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &273417553 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 273417551} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 7.3, y: -6, z: 0} + m_LocalScale: {x: 0.75, y: 1.25, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &325462780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 325462781} + - component: {fileID: 325462783} + - component: {fileID: 325462782} + m_Layer: 5 + m_Name: Vignette_0_Default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &325462781 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325462780} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.4, y: 0.4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1390226662} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -450, y: 330} + m_SizeDelta: {x: -300, y: -100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &325462782 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325462780} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 7c4a657cb1e2f44c5b698bf5d1a9469a, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &325462783 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 325462780} + m_CullTransparentMesh: 1 +--- !u!1 &854545200 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 854545202} + - component: {fileID: 854545201} + m_Layer: 0 + m_Name: R8_vignetteSagaUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &854545201 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854545200} + 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: 10754, guid: 0000000000000000f000000000000000, type: 0} + 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: 21300000, guid: 7c4a657cb1e2f44c5b698bf5d1a9469a, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 10.24, y: 7.68} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &854545202 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 854545200} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -7.3, y: -6, z: 0} + m_LocalScale: {x: 0.75, y: 1.25, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1089740734 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1089740739} + - component: {fileID: 1089740738} + - component: {fileID: 1089740737} + - component: {fileID: 1089740736} + - component: {fileID: 1089740735} + 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 &1089740735 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089740734} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 512 + TargetHeight: 512 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.005 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: 7 + WaitFrames: 1 + XRCompatible: 0 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!114 &1089740736 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089740734} + 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 &1089740737 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089740734} + m_Enabled: 1 +--- !u!20 &1089740738 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089740734} + 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: 14 + m_Depth: -1 + 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 &1089740739 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1089740734} + 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!1 &1390226658 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1390226662} + - component: {fileID: 1390226661} + - component: {fileID: 1390226660} + - component: {fileID: 1390226659} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1390226659 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390226658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &1390226660 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390226658} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 2048, y: 1152} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &1390226661 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390226658} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 1 + m_Camera: {fileID: 1089740738} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &1390226662 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1390226658} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 325462781} + - {fileID: 1566421299} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1 &1505338897 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1505338900} + - component: {fileID: 1505338899} + - component: {fileID: 1505338898} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1505338898 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505338897} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1505338899 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505338897} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &1505338900 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1505338897} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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 &1566421298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1566421299} + - component: {fileID: 1566421301} + - component: {fileID: 1566421300} + m_Layer: 5 + m_Name: Vignette_1_R8 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1566421299 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566421298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.4, y: 0.4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1390226662} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 450, y: 330} + m_SizeDelta: {x: -300, y: -100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1566421300 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566421298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 2100000, guid: 1112f7dfe254749418370d1f04e2e1f3, type: 2} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: fc87da76bb3c847ef8699ea677d5ae74, type: 3} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1566421301 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566421298} + m_CullTransparentMesh: 1 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1390226662} + - {fileID: 1505338900} + - {fileID: 1089740739} + - {fileID: 854545202} + - {fileID: 273417553} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.unity.meta new file mode 100644 index 00000000000..9531828bcdf --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default.spriteatlasv2 b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default.spriteatlasv2 new file mode 100644 index 00000000000..9a2f736191a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default.spriteatlasv2 @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!612988286 &1 +SpriteAtlasAsset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 2 + m_MasterAtlas: {fileID: 0} + m_ImporterData: + packables: + - {fileID: 102900000, guid: c7a55ecbb37484dd08fd645f3fec3ea0, type: 3} + m_IsVariant: 0 + m_ScriptablePacker: {fileID: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default.spriteatlasv2.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default.spriteatlasv2.meta new file mode 100644 index 00000000000..3108ce8c4fa --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default.spriteatlasv2.meta @@ -0,0 +1,82 @@ +fileFormatVersion: 2 +guid: 211e79f695b488d48874e663ff25a207 +SpriteAtlasImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + anisoLevel: 1 + compressionQuality: 50 + maxTextureSize: 2048 + textureCompression: 0 + filterMode: 1 + generateMipMaps: 0 + readable: 0 + crunchedCompression: 0 + sRGB: 1 + platformSettings: + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 63 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 63 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 4 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 63 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + packingSettings: + serializedVersion: 2 + padding: 2 + blockOffset: 1 + allowAlphaSplitting: 0 + enableRotation: 0 + enableTightPacking: 0 + enableAlphaDilation: 0 + secondaryTextureSettings: {} + variantMultiplier: 1 + bindAsDefault: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas.meta new file mode 100644 index 00000000000..b32115af552 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c7a55ecbb37484dd08fd645f3fec3ea0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Circle.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Circle.png new file mode 100644 index 00000000000..a819a94061e Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Circle.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Circle.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Circle.png.meta new file mode 100644 index 00000000000..2c14659a302 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Circle.png.meta @@ -0,0 +1,272 @@ +fileFormatVersion: 2 +guid: 39cbb2200fa7a0040a86e0ca63080604 +TextureImporter: + internalIDToNameTable: + - first: + 213: -2413806693520163455 + second: Circle + 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: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 256 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: 0 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: Nintendo Switch + maxTextureSize: 2048 + 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: 2048 + 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: Circle + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 256 + height: 256 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: 33, y: 128} + - {x: -33, y: 128} + - {x: -95, y: 95} + - {x: -128, y: 33} + - {x: -128, y: -33} + - {x: -95, y: -95} + - {x: -33, y: -128} + - {x: 33, y: -128} + - {x: 95, y: -95} + - {x: 128, y: -33} + - {x: 128, y: 33} + - {x: 95, y: 95} + physicsShape: + - - {x: 0, y: 128} + - {x: -39, y: 121} + - {x: -75, y: 103} + - {x: -103, y: 75} + - {x: -121, y: 39} + - {x: -128, y: 0} + - {x: -121, y: -39} + - {x: -103, y: -75} + - {x: -75, y: -103} + - {x: -39, y: -121} + - {x: 0, y: -128} + - {x: 39, y: -121} + - {x: 75, y: -103} + - {x: 103, y: -75} + - {x: 121, y: -39} + - {x: 128, y: 0} + - {x: 121, y: 39} + - {x: 103, y: 75} + - {x: 75, y: 103} + - {x: 39, y: 121} + tessellationDetail: 0 + bones: [] + spriteID: 18d3544e99f608ed0800000000000000 + internalID: -2413806693520163455 + vertices: [] + indices: + edges: [] + weights: [] + outline: + - - {x: 33, y: 128} + - {x: -33, y: 128} + - {x: -95, y: 95} + - {x: -128, y: 33} + - {x: -128, y: -33} + - {x: -95, y: -95} + - {x: -33, y: -128} + - {x: 33, y: -128} + - {x: 95, y: -95} + - {x: 128, y: -33} + - {x: 128, y: 33} + - {x: 95, y: 95} + customData: + physicsShape: + - - {x: 0, y: 128} + - {x: -39, y: 121} + - {x: -75, y: 103} + - {x: -103, y: 75} + - {x: -121, y: 39} + - {x: -128, y: 0} + - {x: -121, y: -39} + - {x: -103, y: -75} + - {x: -75, y: -103} + - {x: -39, y: -121} + - {x: 0, y: -128} + - {x: 39, y: -121} + - {x: 75, y: -103} + - {x: 103, y: -75} + - {x: 121, y: -39} + - {x: 128, y: 0} + - {x: 121, y: 39} + - {x: 103, y: 75} + - {x: 75, y: 103} + - {x: 39, y: 121} + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Circle: -2413806693520163455 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/HexagonFlatTop.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/HexagonFlatTop.png new file mode 100644 index 00000000000..dd4a6f3d95f Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/HexagonFlatTop.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/HexagonFlatTop.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/HexagonFlatTop.png.meta new file mode 100644 index 00000000000..c83ec002c6f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/HexagonFlatTop.png.meta @@ -0,0 +1,236 @@ +fileFormatVersion: 2 +guid: 23d1fa82f7798f34191d838defc5f0c9 +TextureImporter: + internalIDToNameTable: + - first: + 213: 2747690628134850419 + second: Hexagon Flat Top + 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: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 256 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: 0 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: Nintendo Switch + maxTextureSize: 2048 + 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: 2048 + 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: Hexagon Flat Top + rect: + serializedVersion: 2 + x: 0 + y: 15 + width: 256 + height: 226 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: -65, y: 113} + - {x: -128, y: 4} + - {x: -128, y: -4} + - {x: -65, y: -113} + - {x: 65, y: -113} + - {x: 128, y: -4} + - {x: 128, y: 4} + - {x: 65, y: 113} + physicsShape: + - - {x: -64, y: 111} + - {x: -128, y: 0} + - {x: -64, y: -111} + - {x: 64, y: -111} + - {x: 128, y: 0} + - {x: 64, y: 111} + tessellationDetail: 0 + bones: [] + spriteID: 37fc5a28112c12620800000000000000 + internalID: -712631045867808456 + vertices: [] + indices: + edges: [] + weights: [] + outline: + - - {x: -65, y: 113} + - {x: -128, y: 4} + - {x: -128, y: -4} + - {x: -65, y: -113} + - {x: 65, y: -113} + - {x: 128, y: -4} + - {x: 128, y: 4} + - {x: 65, y: 113} + customData: + physicsShape: + - - {x: -64, y: 111} + - {x: -128, y: 0} + - {x: -64, y: -111} + - {x: 64, y: -111} + - {x: 128, y: 0} + - {x: 64, y: 111} + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Hexagon Flat Top: -712631045867808456 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/R8_vignetteSagaUI.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/R8_vignetteSagaUI.png new file mode 100644 index 00000000000..26c88a25d4c Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/R8_vignetteSagaUI.png differ diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/flowmap.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/R8_vignetteSagaUI.png.meta similarity index 72% rename from Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/flowmap.png.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/R8_vignetteSagaUI.png.meta index 6521f6c92b3..6ff347d85f2 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/flowmap.png.meta +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/R8_vignetteSagaUI.png.meta @@ -1,13 +1,13 @@ fileFormatVersion: 2 -guid: 0f8b659603075564c8b3b82db6ccef13 +guid: 7c4a657cb1e2f44c5b698bf5d1a9469a TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 11 + serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 0 + enableMipMap: 0 + sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 @@ -20,11 +20,12 @@ TextureImporter: externalNormalMap: 0 heightScale: 0.25 normalMapFilter: 0 + flipGreenChannel: 0 isReadable: 0 streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 - ignoreMasterTextureLimit: 0 + ignoreMipmapLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -36,24 +37,24 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 1 spriteExtrude: 1 - spriteMeshType: 1 + spriteMeshType: 0 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 25 + spriteBorder: {x: 256, y: 192, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -63,20 +64,23 @@ TextureImporter: textureFormatSet: 0 ignorePngGamma: 0 applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 platformSettings: - - serializedVersion: 3 + - serializedVersion: 4 buildTarget: DefaultTexturePlatform maxTextureSize: 2048 resizeAlgorithm: 0 textureFormat: -1 - textureCompression: 2 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 + - serializedVersion: 4 buildTarget: Standalone maxTextureSize: 2048 resizeAlgorithm: 0 @@ -86,61 +90,67 @@ TextureImporter: crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server + - serializedVersion: 4 + buildTarget: iOS maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: -1 + textureFormat: 4 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 - overridden: 0 + overridden: 1 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: WebGL + - serializedVersion: 4 + buildTarget: Android maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: -1 + textureFormat: 4 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 - overridden: 0 + overridden: 1 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Windows Store Apps + - serializedVersion: 4 + buildTarget: WebGL maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 + textureFormat: 4 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 - overridden: 0 + overridden: 1 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] outline: [] + customData: physicsShape: [] bones: [] - spriteID: - internalID: 0 + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 vertices: [] indices: edges: [] weights: [] secondaryTextures: [] + spriteCustomMetadata: + entries: [] nameFileIdTable: {} - spritePackingTag: + mipmapLimitGroupName: pSDRemoveMatte: 0 - pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Triangle.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Triangle.png new file mode 100644 index 00000000000..cc0c2dce05a Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Triangle.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Triangle.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Triangle.png.meta new file mode 100644 index 00000000000..18de77e132b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_Default_Atlas/Triangle.png.meta @@ -0,0 +1,218 @@ +fileFormatVersion: 2 +guid: d317aa58b91c4674eaf5b1cbcad39835 +TextureImporter: + internalIDToNameTable: + - first: + 213: 7482667652216324306 + second: Square + 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: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 4, y: 4, z: 4, w: 4} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: 0 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: Nintendo Switch + maxTextureSize: 2048 + 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: 2048 + 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: Triangle + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 256 + height: 256 + alignment: 9 + pivot: {x: 0.5, y: 0.28866667} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: 0, y: 93.70251} + - {x: -128, y: -128} + - {x: 128, y: -128} + physicsShape: + - - {x: 0, y: 93.70251} + - {x: -128, y: -128} + - {x: 128, y: -128} + tessellationDetail: 0 + bones: [] + spriteID: 2d009a6b596c7d760800000000000000 + internalID: 7482667652216324306 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: + - - {x: -128, y: 128} + - {x: -128, y: -128} + - {x: 128, y: -128} + - {x: 128, y: 128} + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Triangle: 7482667652216324306 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8.spriteatlasv2 b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8.spriteatlasv2 new file mode 100644 index 00000000000..67b2365dcc9 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8.spriteatlasv2 @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!612988286 &1 +SpriteAtlasAsset: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + serializedVersion: 2 + m_MasterAtlas: {fileID: 0} + m_ImporterData: + packables: + - {fileID: 102900000, guid: 2b073db15c0b243b5afaae425fc4a02e, type: 3} + m_IsVariant: 0 + m_ScriptablePacker: {fileID: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8.spriteatlasv2.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8.spriteatlasv2.meta new file mode 100644 index 00000000000..21c13cb1c08 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8.spriteatlasv2.meta @@ -0,0 +1,82 @@ +fileFormatVersion: 2 +guid: 08dc18cad682cb049bc72fc9ab017ee9 +SpriteAtlasImporter: + externalObjects: {} + textureSettings: + serializedVersion: 2 + anisoLevel: 1 + compressionQuality: 50 + maxTextureSize: 2048 + textureCompression: 0 + filterMode: 1 + generateMipMaps: 0 + readable: 0 + crunchedCompression: 0 + sRGB: 1 + platformSettings: + - serializedVersion: 4 + buildTarget: iOS + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 63 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 63 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 63 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: 63 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + packingSettings: + serializedVersion: 2 + padding: 2 + blockOffset: 1 + allowAlphaSplitting: 0 + enableRotation: 0 + enableTightPacking: 0 + enableAlphaDilation: 0 + secondaryTextureSettings: {} + variantMultiplier: 1 + bindAsDefault: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas.meta new file mode 100644 index 00000000000..8616c390a17 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2b073db15c0b243b5afaae425fc4a02e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Circle.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Circle.png new file mode 100644 index 00000000000..a819a94061e Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Circle.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Circle.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Circle.png.meta new file mode 100644 index 00000000000..682c72849df --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Circle.png.meta @@ -0,0 +1,272 @@ +fileFormatVersion: 2 +guid: 4ab9f302e876ef445b8fca718b35d05d +TextureImporter: + internalIDToNameTable: + - first: + 213: -2413806693520163455 + second: Circle + 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: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 256 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: 0 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: Nintendo Switch + maxTextureSize: 2048 + 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: 2048 + 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: Circle + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 256 + height: 256 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: 33, y: 128} + - {x: -33, y: 128} + - {x: -95, y: 95} + - {x: -128, y: 33} + - {x: -128, y: -33} + - {x: -95, y: -95} + - {x: -33, y: -128} + - {x: 33, y: -128} + - {x: 95, y: -95} + - {x: 128, y: -33} + - {x: 128, y: 33} + - {x: 95, y: 95} + physicsShape: + - - {x: 0, y: 128} + - {x: -39, y: 121} + - {x: -75, y: 103} + - {x: -103, y: 75} + - {x: -121, y: 39} + - {x: -128, y: 0} + - {x: -121, y: -39} + - {x: -103, y: -75} + - {x: -75, y: -103} + - {x: -39, y: -121} + - {x: 0, y: -128} + - {x: 39, y: -121} + - {x: 75, y: -103} + - {x: 103, y: -75} + - {x: 121, y: -39} + - {x: 128, y: 0} + - {x: 121, y: 39} + - {x: 103, y: 75} + - {x: 75, y: 103} + - {x: 39, y: 121} + tessellationDetail: 0 + bones: [] + spriteID: 18d3544e99f608ed0800000000000000 + internalID: -2413806693520163455 + vertices: [] + indices: + edges: [] + weights: [] + outline: + - - {x: 33, y: 128} + - {x: -33, y: 128} + - {x: -95, y: 95} + - {x: -128, y: 33} + - {x: -128, y: -33} + - {x: -95, y: -95} + - {x: -33, y: -128} + - {x: 33, y: -128} + - {x: 95, y: -95} + - {x: 128, y: -33} + - {x: 128, y: 33} + - {x: 95, y: 95} + customData: + physicsShape: + - - {x: 0, y: 128} + - {x: -39, y: 121} + - {x: -75, y: 103} + - {x: -103, y: 75} + - {x: -121, y: 39} + - {x: -128, y: 0} + - {x: -121, y: -39} + - {x: -103, y: -75} + - {x: -75, y: -103} + - {x: -39, y: -121} + - {x: 0, y: -128} + - {x: 39, y: -121} + - {x: 75, y: -103} + - {x: 103, y: -75} + - {x: 121, y: -39} + - {x: 128, y: 0} + - {x: 121, y: 39} + - {x: 103, y: 75} + - {x: 75, y: 103} + - {x: 39, y: 121} + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Circle: -2413806693520163455 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/HexagonFlatTop.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/HexagonFlatTop.png new file mode 100644 index 00000000000..dd4a6f3d95f Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/HexagonFlatTop.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/HexagonFlatTop.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/HexagonFlatTop.png.meta new file mode 100644 index 00000000000..7f29f5d0728 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/HexagonFlatTop.png.meta @@ -0,0 +1,236 @@ +fileFormatVersion: 2 +guid: 877a1fd410da9fb46a0f81cf1a1a0307 +TextureImporter: + internalIDToNameTable: + - first: + 213: 2747690628134850419 + second: Hexagon Flat Top + 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: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 256 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: 0 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: Nintendo Switch + maxTextureSize: 2048 + 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: 2048 + 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: Hexagon Flat Top + rect: + serializedVersion: 2 + x: 0 + y: 15 + width: 256 + height: 226 + alignment: 0 + pivot: {x: 0.5, y: 0.5} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: -65, y: 113} + - {x: -128, y: 4} + - {x: -128, y: -4} + - {x: -65, y: -113} + - {x: 65, y: -113} + - {x: 128, y: -4} + - {x: 128, y: 4} + - {x: 65, y: 113} + physicsShape: + - - {x: -64, y: 111} + - {x: -128, y: 0} + - {x: -64, y: -111} + - {x: 64, y: -111} + - {x: 128, y: 0} + - {x: 64, y: 111} + tessellationDetail: 0 + bones: [] + spriteID: 37fc5a28112c12620800000000000000 + internalID: -712631045867808456 + vertices: [] + indices: + edges: [] + weights: [] + outline: + - - {x: -65, y: 113} + - {x: -128, y: 4} + - {x: -128, y: -4} + - {x: -65, y: -113} + - {x: 65, y: -113} + - {x: 128, y: -4} + - {x: 128, y: 4} + - {x: 65, y: 113} + customData: + physicsShape: + - - {x: -64, y: 111} + - {x: -128, y: 0} + - {x: -64, y: -111} + - {x: 64, y: -111} + - {x: 128, y: 0} + - {x: 64, y: 111} + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Hexagon Flat Top: -712631045867808456 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/R8_vignetteSagaUI.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/R8_vignetteSagaUI.png new file mode 100644 index 00000000000..26c88a25d4c Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/R8_vignetteSagaUI.png differ diff --git a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/SmallNoiseMask.tga.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/R8_vignetteSagaUI.png.meta similarity index 72% rename from Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/SmallNoiseMask.tga.meta rename to Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/R8_vignetteSagaUI.png.meta index 35949ffc3dd..862e73db5b0 100644 --- a/Packages/com.unity.shadergraph/Samples~/NodeReference/Textures/SmallNoiseMask.tga.meta +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/R8_vignetteSagaUI.png.meta @@ -1,13 +1,13 @@ fileFormatVersion: 2 -guid: 2fe31a8312ab8524ebd8601be367f0c8 +guid: fc87da76bb3c847ef8699ea677d5ae74 TextureImporter: internalIDToNameTable: [] externalObjects: {} - serializedVersion: 11 + serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 0 + enableMipMap: 0 + sRGBTexture: 1 linearTexture: 0 fadeOut: 0 borderMipMap: 0 @@ -25,7 +25,7 @@ TextureImporter: streamingMipmaps: 0 streamingMipmapsPriority: 0 vTOnly: 0 - ignoreMasterTextureLimit: 0 + ignoreMipmapLimit: 0 grayScaleToAlpha: 0 generateCubemap: 6 cubemapConvolution: 0 @@ -37,26 +37,26 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 - wrapW: 0 - nPOTScale: 1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 1 spriteExtrude: 1 - spriteMeshType: 1 + spriteMeshType: 0 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spritePixelsToUnits: 100 - spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 25 + spriteBorder: {x: 256, y: 192, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 10 + textureType: 8 textureShape: 1 - singleChannelComponent: 1 + singleChannelComponent: 0 flipbookRows: 1 flipbookColumns: 1 maxTextureSizeSet: 0 @@ -65,20 +65,22 @@ TextureImporter: ignorePngGamma: 0 applyGammaDecoding: 0 swizzle: 50462976 + cookieLightType: 0 platformSettings: - - serializedVersion: 3 + - serializedVersion: 4 buildTarget: DefaultTexturePlatform - maxTextureSize: 64 + maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: 63 - textureCompression: 1 + textureFormat: -1 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 + - serializedVersion: 4 buildTarget: Standalone maxTextureSize: 2048 resizeAlgorithm: 0 @@ -88,59 +90,66 @@ TextureImporter: crunchedCompression: 0 allowsAlphaSplitting: 0 overridden: 0 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Server + - serializedVersion: 4 + buildTarget: iOS maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: -1 + textureFormat: 4 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 - overridden: 0 + overridden: 1 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: WebGL + - serializedVersion: 4 + buildTarget: Android maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: -1 + textureFormat: 4 textureCompression: 1 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 - overridden: 0 + overridden: 1 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 - - serializedVersion: 3 - buildTarget: Windows Store Apps + - serializedVersion: 4 + buildTarget: WebGL maxTextureSize: 2048 resizeAlgorithm: 0 - textureFormat: -1 - textureCompression: 1 + textureFormat: 4 + textureCompression: 0 compressionQuality: 50 crunchedCompression: 0 allowsAlphaSplitting: 0 - overridden: 0 + overridden: 1 + ignorePlatformSupport: 0 androidETC2FallbackOverride: 0 forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] outline: [] + customData: physicsShape: [] bones: [] - spriteID: - internalID: 0 + spriteID: 5e97eb03825dee720800000000000000 + internalID: 1537655665 vertices: [] indices: edges: [] weights: [] secondaryTextures: [] + spriteCustomMetadata: + entries: [] nameFileIdTable: {} - spritePackingTag: + mipmapLimitGroupName: pSDRemoveMatte: 0 userData: assetBundleName: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Triangle.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Triangle.png new file mode 100644 index 00000000000..cc0c2dce05a Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Triangle.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Triangle.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Triangle.png.meta new file mode 100644 index 00000000000..38919f12860 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/MapUI_R8_Atlas/Triangle.png.meta @@ -0,0 +1,218 @@ +fileFormatVersion: 2 +guid: 2cc132271c1535148a33a553e629b607 +TextureImporter: + internalIDToNameTable: + - first: + 213: 7482667652216324306 + second: Square + 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: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 2 + spriteExtrude: 1 + spriteMeshType: 0 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 4, y: 4, z: 4, w: 4} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: 0 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: 2048 + 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: Nintendo Switch + maxTextureSize: 2048 + 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: 2048 + 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: Triangle + rect: + serializedVersion: 2 + x: 0 + y: 0 + width: 256 + height: 256 + alignment: 9 + pivot: {x: 0.5, y: 0.28866667} + border: {x: 0, y: 0, z: 0, w: 0} + customData: + outline: + - - {x: 0, y: 93.70251} + - {x: -128, y: -128} + - {x: 128, y: -128} + physicsShape: + - - {x: 0, y: 93.70251} + - {x: -128, y: -128} + - {x: 128, y: -128} + tessellationDetail: 0 + bones: [] + spriteID: 2d009a6b596c7d760800000000000000 + internalID: 7482667652216324306 + vertices: [] + indices: + edges: [] + weights: [] + outline: [] + customData: + physicsShape: + - - {x: -128, y: 128} + - {x: -128, y: -128} + - {x: 128, y: -128} + - {x: 128, y: 128} + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: + Triangle: 7482667652216324306 + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.mat new file mode 100644 index 00000000000..68aa348419b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.mat @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Sprites-Dilate + m_Shader: {fileID: 4800000, guid: d1fac0373b7f3bd4987bdefc0e2be641, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _AlphaTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MaskTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _NormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - PixelSnap: 0 + - _EnableExternalAlpha: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Flip: {r: 1, g: 1, b: 1, a: 1} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.mat.meta new file mode 100644 index 00000000000..c47ad903be7 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1112f7dfe254749418370d1f04e2e1f3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.shader b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.shader new file mode 100644 index 00000000000..b95077be59a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.shader @@ -0,0 +1,52 @@ +Shader "Sprites/Dilate" +{ + Properties + { + [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} + _Color ("Tint", Color) = (1,1,1,1) + [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 + [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1) + [HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1) + [PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {} + [PerRendererData] _EnableExternalAlpha ("Enable External Alpha", Float) = 0 + } + + SubShader + { + Tags + { + "Queue"="Transparent" + "IgnoreProjector"="True" + "RenderType"="Transparent" + "PreviewType"="Plane" + "CanUseSpriteAtlas"="True" + } + + Cull Off + Lighting Off + ZWrite Off + Blend One OneMinusSrcAlpha + + Pass + { + CGPROGRAM + #pragma vertex SpriteVert + #pragma fragment SpriteFragLocal + #pragma target 2.0 + #pragma multi_compile_instancing + #pragma multi_compile_local _ PIXELSNAP_ON + #pragma multi_compile _ ETC1_EXTERNAL_ALPHA + #include "UnitySprites.cginc" + + fixed4 SpriteFragLocal(v2f IN) : SV_Target + { + fixed4 c = SampleSpriteTexture (IN.texcoord) * IN.color; + c.r *= c.a; + c.g = c.r; + c.b = c.r; + return c; + } + ENDCG + } + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.shader.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.shader.meta new file mode 100644 index 00000000000..2e60a768d72 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/087_SpriteAtlas_Dilate/Sprites-Dilate.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d1fac0373b7f3bd4987bdefc0e2be641 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity new file mode 100644 index 00000000000..ad0f76ecc65 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity @@ -0,0 +1,9352 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_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: 20201, guid: 0000000000000000f000000000000000, type: 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 &4449892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4449893} + - component: {fileID: 4449895} + - component: {fileID: 4449894} + m_Layer: 0 + m_Name: Individual - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4449893 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4449892} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &4449894 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4449892} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 18 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &4449895 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4449892} + m_Enabled: 1 + m_Tiles: + - first: {x: -3, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &105777675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 105777676} + - component: {fileID: 105777678} + - component: {fileID: 105777677} + m_Layer: 0 + m_Name: Chunk - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &105777676 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 105777675} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &105777677 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 105777675} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 8 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &105777678 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 105777675} + m_Enabled: 1 + m_Tiles: + - first: {x: -3, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &150661153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 150661154} + - component: {fileID: 150661156} + - component: {fileID: 150661155} + m_Layer: 0 + m_Name: SRP - VisibleInMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &150661154 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150661153} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &150661155 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150661153} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 27 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &150661156 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150661153} + m_Enabled: 1 + m_Tiles: + - first: {x: -4, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &151928560 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 151928561} + - component: {fileID: 151928563} + - component: {fileID: 151928562} + m_Layer: 0 + m_Name: SRP - VisibleInMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &151928561 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151928560} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &151928562 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151928560} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 20 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &151928563 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 151928560} + m_Enabled: 1 + m_Tiles: + - first: {x: -11, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &189917553 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 189917554} + - component: {fileID: 189917556} + - component: {fileID: 189917555} + m_Layer: 0 + m_Name: Chunk - VisibleOutofMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &189917554 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189917553} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &189917555 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189917553} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 6 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &189917556 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 189917553} + m_Enabled: 1 + m_Tiles: + - first: {x: -5, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &214346212 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 214346214} + - component: {fileID: 214346213} + m_Layer: 0 + m_Name: Grid - Masked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!156049354 &214346213 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214346212} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &214346214 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 214346212} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 9, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 498093949} + - {fileID: 346258722} + - {fileID: 691802665} + - {fileID: 765619341} + - {fileID: 1141486180} + - {fileID: 845277303} + - {fileID: 189917554} + - {fileID: 1206244587} + - {fileID: 105777676} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &232875264 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 232875265} + - component: {fileID: 232875267} + - component: {fileID: 232875266} + m_Layer: 0 + m_Name: SRP - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &232875265 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232875264} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &232875266 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232875264} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 21 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &232875267 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 232875264} + m_Enabled: 1 + m_Tiles: + - first: {x: -10, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &251715405 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 251715406} + - component: {fileID: 251715408} + - component: {fileID: 251715407} + m_Layer: 0 + m_Name: Chunk - VisibleInMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &251715406 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 251715405} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &251715407 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 251715405} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 7 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &251715408 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 251715405} + m_Enabled: 1 + m_Tiles: + - first: {x: -4, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &275741666 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 275741667} + - component: {fileID: 275741669} + - component: {fileID: 275741668} + m_Layer: 0 + m_Name: Chunk - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &275741667 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275741666} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &275741668 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275741666} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 8 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &275741669 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 275741666} + m_Enabled: 1 + m_Tiles: + - first: {x: -3, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &300172610 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 300172612} + - component: {fileID: 300172611} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!156049354 &300172611 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 300172610} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &300172612 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 300172610} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 151928561} + - {fileID: 1005097838} + - {fileID: 1826794934} + - {fileID: 1604267346} + - {fileID: 916491935} + - {fileID: 917257771} + - {fileID: 1283665430} + - {fileID: 1039568809} + - {fileID: 1193809356} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &310092825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 310092826} + - component: {fileID: 310092828} + - component: {fileID: 310092827} + m_Layer: 0 + m_Name: Individual - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &310092826 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310092825} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &310092827 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310092825} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 18 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &310092828 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 310092825} + m_Enabled: 1 + m_Tiles: + - first: {x: -3, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &337721037 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 337721038} + - component: {fileID: 337721040} + - component: {fileID: 337721039} + m_Layer: 0 + m_Name: Individual - VisibleInMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &337721038 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337721037} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &337721039 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337721037} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 15 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &337721040 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337721037} + m_Enabled: 1 + m_Tiles: + - first: {x: -6, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &338958899 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 338958900} + - component: {fileID: 338958902} + - component: {fileID: 338958901} + m_Layer: 0 + m_Name: Individual - VisibleInMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &338958900 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338958899} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &338958901 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338958899} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 17 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &338958902 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 338958899} + m_Enabled: 1 + m_Tiles: + - first: {x: -4, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &346258721 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 346258722} + - component: {fileID: 346258724} + - component: {fileID: 346258723} + m_Layer: 0 + m_Name: Chunk - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &346258722 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346258721} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &346258723 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346258721} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 1 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &346258724 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 346258721} + m_Enabled: 1 + m_Tiles: + - first: {x: -10, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &375823832 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 375823833} + - component: {fileID: 375823835} + - component: {fileID: 375823834} + m_Layer: 0 + m_Name: Individual - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &375823833 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375823832} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &375823834 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375823832} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 11 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &375823835 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 375823832} + m_Enabled: 1 + m_Tiles: + - first: {x: -10, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &404659909 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 404659910} + - component: {fileID: 404659912} + - component: {fileID: 404659911} + m_Layer: 0 + m_Name: Individual - VisibleOutofMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &404659910 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 404659909} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &404659911 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 404659909} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 12 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &404659912 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 404659909} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &461063003 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 461063004} + - component: {fileID: 461063006} + - component: {fileID: 461063005} + m_Layer: 0 + m_Name: Individual - VisibleOutofMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &461063004 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 461063003} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &461063005 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 461063003} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 16 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &461063006 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 461063003} + m_Enabled: 1 + m_Tiles: + - first: {x: -5, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &498093948 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 498093949} + - component: {fileID: 498093951} + - component: {fileID: 498093950} + m_Layer: 0 + m_Name: Chunk - VisibleInMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &498093949 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498093948} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &498093950 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498093948} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 0 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &498093951 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498093948} + m_Enabled: 1 + m_Tiles: + - first: {x: -11, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &551400981 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 551400983} + - component: {fileID: 551400982} + m_Layer: 0 + m_Name: SpriteMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!331 &551400982 +SpriteMask: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551400981} + 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: 21300000, guid: 8e160a2a620644cd6afef9119dad1093, 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 &551400983 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 551400981} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 8.675, y: 0, 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 &662210485 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 662210486} + - component: {fileID: 662210488} + - component: {fileID: 662210487} + m_Layer: 0 + m_Name: Chunk - VisibleOutofMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &662210486 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 662210485} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &662210487 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 662210485} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 6 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &662210488 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 662210485} + m_Enabled: 1 + m_Tiles: + - first: {x: -5, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &667235944 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 667235945} + - component: {fileID: 667235947} + - component: {fileID: 667235946} + m_Layer: 0 + m_Name: Individual - VisibleInMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &667235945 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667235944} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &667235946 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667235944} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 15 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &667235947 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 667235944} + m_Enabled: 1 + m_Tiles: + - first: {x: -6, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &669558725 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 669558726} + - component: {fileID: 669558728} + - component: {fileID: 669558727} + m_Layer: 0 + m_Name: SRP - VisibleOutofMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &669558726 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669558725} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &669558727 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669558725} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 22 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &669558728 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 669558725} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &691802664 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 691802665} + - component: {fileID: 691802667} + - component: {fileID: 691802666} + m_Layer: 0 + m_Name: Chunk - VisibleOutofMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &691802665 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691802664} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &691802666 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691802664} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 2 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &691802667 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 691802664} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &765619340 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 765619341} + - component: {fileID: 765619343} + - component: {fileID: 765619342} + m_Layer: 0 + m_Name: Chunk - None 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &765619341 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 765619340} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &765619342 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 765619340} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 3 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &765619343 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 765619340} + m_Enabled: 1 + m_Tiles: + - first: {x: -8, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &776243399 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 776243400} + - component: {fileID: 776243402} + - component: {fileID: 776243401} + m_Layer: 0 + m_Name: Individual - VisibleOutofMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &776243400 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776243399} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &776243401 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776243399} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 12 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &776243402 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 776243399} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &845277302 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 845277303} + - component: {fileID: 845277305} + - component: {fileID: 845277304} + m_Layer: 0 + m_Name: Chunk - VisibleInMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &845277303 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 845277302} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &845277304 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 845277302} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 5 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &845277305 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 845277302} + m_Enabled: 1 + m_Tiles: + - first: {x: -6, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &869160092 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 869160093} + - component: {fileID: 869160095} + - component: {fileID: 869160094} + m_Layer: 0 + m_Name: Individual - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &869160093 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 869160092} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &869160094 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 869160092} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 11 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &869160095 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 869160092} + m_Enabled: 1 + m_Tiles: + - first: {x: -10, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &894406764 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 894406765} + - component: {fileID: 894406767} + - component: {fileID: 894406766} + m_Layer: 0 + m_Name: Chunk - VisibleOutofMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &894406765 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894406764} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &894406766 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894406764} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 2 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &894406767 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 894406764} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &913442844 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 913442845} + - component: {fileID: 913442847} + - component: {fileID: 913442846} + m_Layer: 0 + m_Name: SRP - None 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &913442845 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913442844} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &913442846 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913442844} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 23 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &913442847 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 913442844} + m_Enabled: 1 + m_Tiles: + - first: {x: -8, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &916491934 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 916491935} + - component: {fileID: 916491937} + - component: {fileID: 916491936} + m_Layer: 0 + m_Name: SRP - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &916491935 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916491934} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &916491936 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916491934} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 24 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &916491937 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 916491934} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &917257770 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 917257771} + - component: {fileID: 917257773} + - component: {fileID: 917257772} + m_Layer: 0 + m_Name: SRP - VisibleInMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &917257771 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917257770} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &917257772 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917257770} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 25 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &917257773 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 917257770} + m_Enabled: 1 + m_Tiles: + - first: {x: -6, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &961739749 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 961739753} + - component: {fileID: 961739752} + - component: {fileID: 961739751} + - component: {fileID: 961739750} + - component: {fileID: 961739754} + 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 &961739750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + 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 &961739751 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 +--- !u!20 &961739752 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + 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: 6 + m_Depth: -1 + 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 &961739753 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.5, y: 1, 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 &961739754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + 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!1 &986076899 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 986076900} + - component: {fileID: 986076902} + - component: {fileID: 986076901} + m_Layer: 0 + m_Name: Chunk - VisibleInMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &986076900 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 986076899} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &986076901 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 986076899} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 5 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &986076902 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 986076899} + m_Enabled: 1 + m_Tiles: + - first: {x: -6, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1004531375 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1004531377} + - component: {fileID: 1004531376} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!156049354 &1004531376 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1004531375} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &1004531377 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1004531375} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1671714893} + - {fileID: 375823833} + - {fileID: 404659910} + - {fileID: 1559275875} + - {fileID: 1144401961} + - {fileID: 667235945} + - {fileID: 1519488781} + - {fileID: 1758990594} + - {fileID: 4449893} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1005097837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1005097838} + - component: {fileID: 1005097840} + - component: {fileID: 1005097839} + m_Layer: 0 + m_Name: SRP - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1005097838 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005097837} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1005097839 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005097837} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 21 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1005097840 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1005097837} + m_Enabled: 1 + m_Tiles: + - first: {x: -10, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1035381096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1035381097} + - component: {fileID: 1035381099} + - component: {fileID: 1035381098} + m_Layer: 0 + m_Name: Chunk - None + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1035381097 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035381096} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1035381098 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035381096} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 1 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1035381099 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035381096} + m_Enabled: 1 + m_Tiles: + - first: {x: -10, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1039568808 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1039568809} + - component: {fileID: 1039568811} + - component: {fileID: 1039568810} + m_Layer: 0 + m_Name: SRP - VisibleInMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1039568809 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039568808} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1039568810 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039568808} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 27 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1039568811 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1039568808} + m_Enabled: 1 + m_Tiles: + - first: {x: -4, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1074892090 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1074892091} + - component: {fileID: 1074892093} + - component: {fileID: 1074892092} + m_Layer: 0 + m_Name: Individual - VisibleInMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1074892091 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074892090} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1074892092 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074892090} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 10 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1074892093 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1074892090} + m_Enabled: 1 + m_Tiles: + - first: {x: -11, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1141486179 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1141486180} + - component: {fileID: 1141486182} + - component: {fileID: 1141486181} + m_Layer: 0 + m_Name: Chunk - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1141486180 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1141486179} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1141486181 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1141486179} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 4 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1141486182 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1141486179} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1144401960 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1144401961} + - component: {fileID: 1144401963} + - component: {fileID: 1144401962} + m_Layer: 0 + m_Name: Individual - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1144401961 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144401960} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1144401962 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144401960} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 14 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1144401963 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1144401960} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1171950133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1171950134} + - component: {fileID: 1171950136} + - component: {fileID: 1171950135} + m_Layer: 0 + m_Name: SRP - VisibleOutofMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1171950134 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171950133} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1171950135 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171950133} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 26 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1171950136 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171950133} + m_Enabled: 1 + m_Tiles: + - first: {x: -5, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1178893845 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1178893847} + - component: {fileID: 1178893846} + m_Layer: 0 + m_Name: Grid + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!156049354 &1178893846 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1178893845} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &1178893847 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1178893845} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2077023562} + - {fileID: 1035381097} + - {fileID: 894406765} + - {fileID: 1953022102} + - {fileID: 1455562697} + - {fileID: 986076900} + - {fileID: 662210486} + - {fileID: 251715406} + - {fileID: 275741667} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1193809355 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1193809356} + - component: {fileID: 1193809358} + - component: {fileID: 1193809357} + m_Layer: 0 + m_Name: SRP - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1193809356 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193809355} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1193809357 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193809355} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 28 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1193809358 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1193809355} + m_Enabled: 1 + m_Tiles: + - first: {x: -3, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1206244586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1206244587} + - component: {fileID: 1206244589} + - component: {fileID: 1206244588} + m_Layer: 0 + m_Name: Chunk - VisibleInMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1206244587 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1206244586} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 214346214} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1206244588 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1206244586} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 7 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1206244589 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1206244586} + m_Enabled: 1 + m_Tiles: + - first: {x: -4, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1283665429 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1283665430} + - component: {fileID: 1283665432} + - component: {fileID: 1283665431} + m_Layer: 0 + m_Name: SRP - VisibleOutofMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1283665430 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283665429} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1283665431 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283665429} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 26 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1283665432 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1283665429} + m_Enabled: 1 + m_Tiles: + - first: {x: -5, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1378598772 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1378598773} + - component: {fileID: 1378598775} + - component: {fileID: 1378598774} + m_Layer: 0 + m_Name: SRP - None 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1378598773 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378598772} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1378598774 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378598772} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 28 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1378598775 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1378598772} + m_Enabled: 1 + m_Tiles: + - first: {x: -3, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1448817525 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1448817526} + - component: {fileID: 1448817528} + - component: {fileID: 1448817527} + m_Layer: 0 + m_Name: SRP - VisibleInMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1448817526 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1448817525} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1448817527 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1448817525} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 20 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1448817528 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1448817525} + m_Enabled: 1 + m_Tiles: + - first: {x: -11, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1455562696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1455562697} + - component: {fileID: 1455562699} + - component: {fileID: 1455562698} + m_Layer: 0 + m_Name: Chunk - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1455562697 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455562696} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1455562698 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455562696} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 4 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1455562699 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455562696} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1519488780 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1519488781} + - component: {fileID: 1519488783} + - component: {fileID: 1519488782} + m_Layer: 0 + m_Name: Individual - VisibleOutofMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1519488781 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519488780} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1519488782 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519488780} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 16 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1519488783 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1519488780} + m_Enabled: 1 + m_Tiles: + - first: {x: -5, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1530200892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1530200893} + - component: {fileID: 1530200895} + - component: {fileID: 1530200894} + m_Layer: 0 + m_Name: Individual - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1530200893 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530200892} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1530200894 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530200892} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 14 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1530200895 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1530200892} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1559275874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1559275875} + - component: {fileID: 1559275877} + - component: {fileID: 1559275876} + m_Layer: 0 + m_Name: Individual - None 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1559275875 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559275874} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1559275876 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559275874} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 13 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1559275877 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1559275874} + m_Enabled: 1 + m_Tiles: + - first: {x: -8, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1565511676 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1565511678} + - component: {fileID: 1565511677} + m_Layer: 0 + m_Name: Grid - Masked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!156049354 &1565511677 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565511676} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &1565511678 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1565511676} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 9, y: -4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1448817526} + - {fileID: 232875265} + - {fileID: 669558726} + - {fileID: 913442845} + - {fileID: 1771462384} + - {fileID: 1724484958} + - {fileID: 1171950134} + - {fileID: 150661154} + - {fileID: 1378598773} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1604267345 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1604267346} + - component: {fileID: 1604267348} + - component: {fileID: 1604267347} + m_Layer: 0 + m_Name: SRP - None 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1604267346 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604267345} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1604267347 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604267345} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 23 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1604267348 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604267345} + m_Enabled: 1 + m_Tiles: + - first: {x: -8, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1671714892 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1671714893} + - component: {fileID: 1671714895} + - component: {fileID: 1671714894} + m_Layer: 0 + m_Name: Individual - VisibleInMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1671714893 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1671714892} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1671714894 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1671714892} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 10 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1671714895 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1671714892} + m_Enabled: 1 + m_Tiles: + - first: {x: -11, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1724484957 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1724484958} + - component: {fileID: 1724484960} + - component: {fileID: 1724484959} + m_Layer: 0 + m_Name: SRP - VisibleInMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1724484958 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1724484957} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1724484959 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1724484957} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 25 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1724484960 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1724484957} + m_Enabled: 1 + m_Tiles: + - first: {x: -6, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1758990593 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1758990594} + - component: {fileID: 1758990596} + - component: {fileID: 1758990595} + m_Layer: 0 + m_Name: Individual - VisibleInMask 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1758990594 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758990593} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1004531377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1758990595 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758990593} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 17 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &1758990596 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1758990593} + m_Enabled: 1 + m_Tiles: + - first: {x: -4, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1771462383 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1771462384} + - component: {fileID: 1771462386} + - component: {fileID: 1771462385} + m_Layer: 0 + m_Name: SRP - VisibleOutofMask 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1771462384 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1771462383} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1565511678} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1771462385 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1771462383} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 24 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1771462386 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1771462383} + m_Enabled: 1 + m_Tiles: + - first: {x: -7, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1826794933 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1826794934} + - component: {fileID: 1826794936} + - component: {fileID: 1826794935} + m_Layer: 0 + m_Name: SRP - VisibleOutofMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1826794934 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1826794933} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 300172612} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1826794935 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1826794933} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 22 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 2 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 2 +--- !u!1839735485 &1826794936 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1826794933} + m_Enabled: 1 + m_Tiles: + - first: {x: -9, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -9, y: 0, z: 0} + m_Size: {x: 9, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1868853227 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1868853228} + - component: {fileID: 1868853230} + - component: {fileID: 1868853229} + m_Layer: 0 + m_Name: Individual - None 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1868853228 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1868853227} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1892672332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1868853229 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1868853227} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 116359401 + m_SortingLayer: 1 + m_SortingOrder: 13 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 1 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1868853230 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1868853227} + m_Enabled: 1 + m_Tiles: + - first: {x: -8, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &1892672330 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1892672332} + - component: {fileID: 1892672331} + m_Layer: 0 + m_Name: Grid - Masked + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!156049354 &1892672331 +Grid: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1892672330} + m_Enabled: 1 + m_CellSize: {x: 1, y: 1, z: 0} + m_CellGap: {x: 0, y: 0, z: 0} + m_CellLayout: 0 + m_CellSwizzle: 0 +--- !u!4 &1892672332 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1892672330} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 9, y: -2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1074892091} + - {fileID: 869160093} + - {fileID: 776243400} + - {fileID: 1868853228} + - {fileID: 1530200893} + - {fileID: 337721038} + - {fileID: 461063004} + - {fileID: 338958900} + - {fileID: 310092826} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1953022101 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1953022102} + - component: {fileID: 1953022104} + - component: {fileID: 1953022103} + m_Layer: 0 + m_Name: Chunk - None 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1953022102 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1953022101} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &1953022103 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1953022101} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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: 3 + m_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 0 +--- !u!1839735485 &1953022104 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1953022101} + m_Enabled: 1 + m_Tiles: + - first: {x: -8, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -10, y: 0, z: 0} + m_Size: {x: 10, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1 &2077023561 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2077023562} + - component: {fileID: 2077023564} + - component: {fileID: 2077023563} + m_Layer: 0 + m_Name: Chunk - VisibleInMask + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2077023562 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2077023561} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1178893847} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!483693784 &2077023563 +TilemapRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2077023561} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + 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_ChunkSize: {x: 32, y: 32, z: 32} + m_ChunkCullingBounds: {x: 0, y: 0, z: 0} + m_MaxChunkCount: 16 + m_MaxFrameAge: 16 + m_SortOrder: 0 + m_Mode: 0 + m_DetectChunkCullingBounds: 0 + m_MaskInteraction: 1 +--- !u!1839735485 &2077023564 +Tilemap: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2077023561} + m_Enabled: 1 + m_Tiles: + - first: {x: -11, y: 3, z: 0} + second: + serializedVersion: 2 + m_TileIndex: 0 + m_TileSpriteIndex: 0 + m_TileMatrixIndex: 0 + m_TileColorIndex: 0 + m_TileObjectToInstantiateIndex: 65535 + dummyAlignment: 0 + m_AllTileFlags: 1073741825 + m_AnimatedTiles: {} + m_TileAssetArray: + - m_RefCount: 1 + m_Data: {fileID: 11400000, guid: 898ab856ab374ef428ab13e10c948a0d, type: 2} + m_TileSpriteArray: + - m_RefCount: 1 + m_Data: {fileID: 21300000, guid: 0a451cb9697c39044815bbd2d048826c, type: 3} + m_TileMatrixArray: + - m_RefCount: 1 + m_Data: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_TileColorArray: + - m_RefCount: 1 + m_Data: {r: 0.94482756, g: 1, b: 0, a: 1} + m_TileObjectToInstantiateArray: [] + m_AnimationFrameRate: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Origin: {x: -11, y: 0, z: 0} + m_Size: {x: 11, y: 4, z: 1} + m_TileAnchor: {x: 0.5, y: 0.5, z: 0} + m_TileOrientation: 0 + m_TileOrientationMatrix: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 961739753} + - {fileID: 1178893847} + - {fileID: 1004531377} + - {fileID: 300172612} + - {fileID: 214346214} + - {fileID: 1892672332} + - {fileID: 1565511678} + - {fileID: 551400983} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity.meta new file mode 100644 index 00000000000..e2d9c28643a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f5c31dad7aab75241a867c300ce2bc5e +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Packages/manifest.json b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Packages/manifest.json index 28280e39ded..db84d9ceea2 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Packages/manifest.json +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Packages/manifest.json @@ -4,7 +4,7 @@ "dependencies": { "com.unity.2d.sprite": "1.0.0", "com.unity.2d.tilemap": "1.0.0", - "com.unity.cinemachine": "2.9.1", + "com.unity.cinemachine": "2.10.3", "com.unity.ext.nunit": "1.0.0", "com.unity.feature.2d": "file:../../../../../Packages/com.unity.feature.2d", "com.unity.ide.rider": "3.0.5", diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset index 00d241d3202..7c1d529ab75 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset @@ -266,5 +266,22 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/083_GPU_Instancing.unity guid: 67d46509b9dfceb43bf64d2d1ae052f5 - m_configObjects: {} + - enabled: 1 + path: Assets/Scenes/084_SpriteShape_Batching.unity + guid: 04c5421de28253e4698974917df2d68b + - enabled: 1 + path: Assets/Scenes/085_SpriteShape_Batching_Multi_Material.unity + guid: 75bc3d3d22879cf4ea62792c1a8158d8 + - enabled: 1 + path: Assets/Scenes/086_SpriteAtlas.unity + guid: 5f981f02c2fc4ef4f9ff3fda036a736f + - enabled: 1 + path: Assets/Scenes/087_SpriteAtlas_Dilate.unity + guid: 99c9720ab356a0642a771bea13969a05 + - enabled: 1 + path: Assets/Scenes/088_TilemapRenderer_MaskInteraction.unity + guid: f5c31dad7aab75241a867c300ce2bc5e + m_configObjects: + com.unity.xr.management.loader_settings: {fileID: 11400000, guid: 20e925b8abdd424429b17f709e9d00f8, + type: 2} m_UseUCBPForAssetBundles: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit.unity index a50194d7efd..3bf47e513af 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -458,7 +458,7 @@ Transform: m_GameObject: {fileID: 1901573332} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalPosition: {x: 0, y: 0.4, z: -2.83} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -502,12 +502,12 @@ MonoBehaviour: m_RequiresColorTexture: 0 m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 --- !u!114 &1901573338 MonoBehaviour: m_ObjectHideFlags: 0 @@ -523,18 +523,18 @@ MonoBehaviour: ImageComparisonSettings: TargetWidth: 512 TargetHeight: 512 - TargetMSAASamples: 1 + TargetMSAASamples: 4 PerPixelCorrectnessThreshold: 0.001 PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 RMSEThreshold: 0 - AverageCorrectnessThreshold: 0.005 + AverageCorrectnessThreshold: 0.001 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 UseBackBuffer: 0 ImageResolution: 0 ActiveImageTests: 1 - ActivePixelTests: 7 + ActivePixelTests: -1 WaitFrames: 0 XRCompatible: 1 gpuDrivenCompatible: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/CoreCopyBlitRenderer.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/CoreCopyBlitRenderer.asset index 6d37689afeb..a6e7c21d1fa 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/CoreCopyBlitRenderer.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/CoreCopyBlitRenderer.asset @@ -15,6 +15,7 @@ MonoBehaviour: m_Active: 1 material: {fileID: -876546973899608171, guid: bf2e2addfe63d9343bcb763c30861e06, type: 3} + materialTint: {fileID: 2100000, guid: 7d802d7973863cb4d98e06fc8275d3e3, type: 2} pass: 0 --- !u!114 &11400000 MonoBehaviour: @@ -66,5 +67,7 @@ MonoBehaviour: m_RenderingMode: 0 m_DepthPrimingMode: 0 m_CopyDepthMode: 1 + m_DepthAttachmentFormat: 0 + m_DepthTextureFormat: 0 m_AccurateGbufferNormals: 0 m_IntermediateTextureMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/CoreCopyBlitTestFeature.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/CoreCopyBlitTestFeature.cs index 57a8730cad0..bf3c648c0e4 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/CoreCopyBlitTestFeature.cs +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/CoreCopyBlitTestFeature.cs @@ -4,16 +4,24 @@ using UnityEngine.Rendering.RenderGraphModule; using UnityEngine.Rendering.RenderGraphModule.Util; using UnityEngine.Experimental.Rendering; +using static UnityEngine.Rendering.RenderGraphModule.Util.RenderGraphUtils; +using System; public class CoreCopyBlitTestFeature : ScriptableRendererFeature { class CustomRenderPass : ScriptableRenderPass { Material m_Material; + Material m_materialTint; + Material m_materialDummyTint; + int m_Pass; - public void init(Material material, int pass) + public void init(Material material, Material materialTint, Material materialDummyTint, int pass) { m_Material = material; + m_materialTint = materialTint; + m_materialDummyTint = materialDummyTint; + m_Pass = pass; } @@ -22,40 +30,89 @@ public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer var cameraData = frameData.Get(); var resourceData = frameData.Get(); - RenderTextureDescriptor desc = cameraData.cameraTargetDescriptor; - desc.autoGenerateMips = true; - desc.depthStencilFormat = GraphicsFormat.None; + var textureDesc = resourceData.activeColorTexture.GetDescriptor(renderGraph); + textureDesc.autoGenerateMips = true; + textureDesc.depthBufferBits = 0; + var mip = 0; - if (RenderGraphUtils.CanAddCopyPassMSAA()) + if (textureDesc.msaaSamples != MSAASamples.None && RenderGraphUtils.CanAddCopyPassMSAA(textureDesc)) { - TextureHandle fbFetchDestinationMSAA = UniversalRenderer.CreateRenderGraphTexture(renderGraph, desc, "Temp FBFetchMSAA", false); + textureDesc.name = "Temp FBFetchMSAA"; + TextureHandle fbFetchDestinationMSAA = renderGraph.CreateTexture(textureDesc); + + // Copy to the temp texture renderGraph.AddCopyPass(resourceData.activeColorTexture, fbFetchDestinationMSAA, 0, 0, mip, mip, "Copy MSAA 1"); + + // Tint the temp texture, this works through alpha blending on the blit material and thus ensures we're not just sampling + // an auto-resolved surface or something but that the copied pixels are good for "framebuffer operations" + BlitMaterialParameters param = new BlitMaterialParameters(TextureHandle.nullHandle, fbFetchDestinationMSAA, m_materialTint, 0); + renderGraph.AddBlitPass(param, passName: "Tint Temp Texture Blit"); + + // Copy the whole thing back to the main color texture renderGraph.AddCopyPass(fbFetchDestinationMSAA, resourceData.activeColorTexture, 0, 0, mip, mip, "Copy MSAA 2"); + + // This blit does nothing, it tints the color buffer by 1,1,1 it just ensures the blit pass below renders correctly + // I "assume" it ensures vulkan thinks the color buffer has changed and it will correctly pick up the values in the inverse blit pass below. + // Without this dummy pass it actually picks up the untinted values (i.e. the results of the copy pass above are not visible) + // My suspicion is that this is because the copy pass goes through the renderpass api and the blit goes through setRT + // we've seen similar issues before in other code where mixing renderpasses/setRT confused things. + // When looking at this in renderdoc without this dummy pass you will see: + // Pass "DrawOpaqueObjects": Resolves to 2d color attachment #x + // Pass "Copy MSAA 2": Resolves to 2d color attachment #y + // Pass "Blit inverse using Material": Reads from color attachment #x < so it incorrectly picks an old version X istead of Y (note: this is the resolve target specifically the MSAA samples target seems to be correct?) + if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Vulkan) + { + BlitMaterialParameters paramDummy = new BlitMaterialParameters(TextureHandle.nullHandle, resourceData.activeColorTexture, m_materialDummyTint, 0); + renderGraph.AddBlitPass(paramDummy, passName: "Dummy Blit"); + } + } + else + { + // If we can't do MSAA copies that part of the test doesn't apply. But we just tint the buffer here so the ref images are still the same for all cases + BlitMaterialParameters param = new BlitMaterialParameters(TextureHandle.nullHandle, resourceData.activeColorTexture, m_materialTint, 0); + renderGraph.AddBlitPass(param); } - desc.msaaSamples = 1; - TextureHandle blitDestination = UniversalRenderer.CreateRenderGraphTexture(renderGraph, desc, "Temp Blit", false); - TextureHandle fbFetchDestination = UniversalRenderer.CreateRenderGraphTexture(renderGraph, desc, "Temp FBFetch", false); + // Test Non MSAA copy pass. We force MSAA off in the desc. + textureDesc.msaaSamples = MSAASamples.None; + textureDesc.name = "Temp Blit"; + TextureHandle blitDestination = renderGraph.CreateTexture(textureDesc); + textureDesc.name = "Temp FBFetch"; + TextureHandle fbFetchDestination = renderGraph.CreateTexture(textureDesc); + // Blit from activeColorTexture (possibly multisampled) to a temp texture, guaranteed single sampled + // This also tests the source texture setup of blit. Material is also a shadergraph material to ensure it works. int sourceTexturePropertyID = Shader.PropertyToID("_BlitTexture"); RenderGraphUtils.BlitMaterialParameters para = new(resourceData.activeColorTexture, blitDestination, m_Material, m_Pass, null, 0, mip, sourceMip: mip, sourceTexturePropertyID: sourceTexturePropertyID, geometry: RenderGraphUtils.FullScreenGeometryType.ProceduralTriangle); + para.numSlices = -1; renderGraph.AddBlitPass(para, passName: "Blit inverse using Material"); + + // Copy to another temp texture, this tests the non-msaa copy pass renderGraph.AddCopyPass(blitDestination, fbFetchDestination, 0, 0, mip, mip, passName: "Copy non MSAA"); - renderGraph.AddBlitPass(fbFetchDestination, resourceData.activeColorTexture, new Vector2(1, 1), new Vector2(0, 0), sourceMip: mip, numSlices: 1, numMips: 1, passName: "Blit back"); + + // Blit back to the main view this is just so the image comparison picks up the results + renderGraph.AddBlitPass(fbFetchDestination, resourceData.activeColorTexture, new Vector2(1, 1), new Vector2(0, 0), passName: "Blit back"); + } } CustomRenderPass m_ScriptablePass; public Material material = null; + public Material materialTint = null; + private Material materialDummy = null; + public int pass = 0; /// public override void Create() { m_ScriptablePass = new CustomRenderPass(); + materialDummy = new Material(materialTint); + materialDummy.SetColor("_Color", Color.white); + materialDummy.SetColor("_EyeOneColor", Color.white); // Configures where the render pass should be injected. m_ScriptablePass.renderPassEvent = RenderPassEvent.AfterRenderingOpaques; @@ -65,8 +122,9 @@ public override void Create() // This method is called when setting up the renderer once per-camera. public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { - if (material == null) return; - m_ScriptablePass.init(material, pass); + if (material == null || materialTint == null) return; + m_ScriptablePass.init(material, materialTint, materialDummy, pass); + m_ScriptablePass.requiresIntermediateTexture = true; renderer.EnqueuePass(m_ScriptablePass); } } diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintMaterial.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintMaterial.mat new file mode 100644 index 00000000000..6631bde79af --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintMaterial.mat @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3866842135537270841 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 9 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: EyeTintMaterial + m_Shader: {fileID: -6465566751694194690, guid: 0b4084d1b35c8774fba174b2742ac093, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _ExtraEyeColor: {r: 1, g: 0, b: 0, a: 0} + - _EyeOneColor: {r: 1, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintMaterial.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintMaterial.mat.meta new file mode 100644 index 00000000000..39f9b9e36aa --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d802d7973863cb4d98e06fc8275d3e3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintShader.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintShader.shadergraph new file mode 100644 index 00000000000..e398482d108 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintShader.shadergraph @@ -0,0 +1,825 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "ad203609beb34967a8d723160dce4b00", + "m_Properties": [ + { + "m_Id": "7de4d40302f14260b0ac3dd065804f1c" + }, + { + "m_Id": "bcab9fc6776c44619970fe7d695e6a0a" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "4d9b1d0112524bf9ba8c379063abda42" + } + ], + "m_Nodes": [ + { + "m_Id": "697d159eb1174e93999511be81271bfc" + }, + { + "m_Id": "7ee4e990d6034ec88bc52cbf37e65879" + }, + { + "m_Id": "ed14e231c17648c989db71c0d0a0500f" + }, + { + "m_Id": "6034be7f4f5d40e685e3c6f028773f31" + }, + { + "m_Id": "8935cf57fe48410f92102e60c84b6c5a" + }, + { + "m_Id": "5e1d19e0c0de407abd8b4a358458edf7" + }, + { + "m_Id": "7d20cd3493e84c6987a14afc728c970f" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [ + { + "m_Id": "bfb946cd745c40238dd5ff9e119e3a3c" + } + ], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "5e1d19e0c0de407abd8b4a358458edf7" + }, + "m_SlotId": 2 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "8935cf57fe48410f92102e60c84b6c5a" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "6034be7f4f5d40e685e3c6f028773f31" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "5e1d19e0c0de407abd8b4a358458edf7" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "7d20cd3493e84c6987a14afc728c970f" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "8935cf57fe48410f92102e60c84b6c5a" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "8935cf57fe48410f92102e60c84b6c5a" + }, + "m_SlotId": 3 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "697d159eb1174e93999511be81271bfc" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "ed14e231c17648c989db71c0d0a0500f" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "8935cf57fe48410f92102e60c84b6c5a" + }, + "m_SlotId": 2 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 32.666622161865237, + "y": -26.666662216186525 + }, + "m_Blocks": [] + }, + "m_FragmentContext": { + "m_Position": { + "x": 32.666622161865237, + "y": 150.66665649414063 + }, + "m_Blocks": [ + { + "m_Id": "697d159eb1174e93999511be81271bfc" + }, + { + "m_Id": "7ee4e990d6034ec88bc52cbf37e65879" + } + ] + }, + "m_PreviewData": { + "serializedMesh": { + "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", + "m_Guid": "" + }, + "preventRotation": false + }, + "m_Path": "Shader Graphs", + "m_GraphPrecision": 1, + "m_PreviewMode": 2, + "m_OutputNode": { + "m_Id": "" + }, + "m_SubDatas": [], + "m_ActiveTargets": [ + { + "m_Id": "1db23be686a74764ac242decb388c2a2" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "0770a4dc99964f6eab73bfe39a0ba2f0", + "m_Id": 2, + "m_DisplayName": "False", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "False", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "0cc5327e68f045c4b205797f9070141c", + "m_Id": 1, + "m_DisplayName": "B", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 3, + "m_Value": 1.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "172a62371dcf41118f4cdaec4ebac311", + "m_Id": 0, + "m_DisplayName": "A", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "1db23be686a74764ac242decb388c2a2", + "m_Datas": [ + { + "m_Id": "447b759d29774583b7297b50bd300bf8" + } + ], + "m_ActiveSubTarget": { + "m_Id": "49e2519eca1641a9b52db19ffaaf4c15" + }, + "m_AllowMaterialOverride": true, + "m_SurfaceType": 0, + "m_ZTestMode": 4, + "m_ZWriteControl": 0, + "m_AlphaMode": 0, + "m_RenderFace": 2, + "m_AlphaClip": false, + "m_CastShadows": true, + "m_ReceiveShadows": true, + "m_DisableTint": false, + "m_AdditionalMotionVectorMode": 0, + "m_AlembicMotionVectors": false, + "m_SupportsLODCrossFade": false, + "m_CustomEditorGUI": "", + "m_SupportVFX": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "3ce13b3d17ca458288d5f9b875b8d88f", + "m_Id": 0, + "m_DisplayName": "Color", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.Fullscreen.ShaderGraph.FullscreenData", + "m_ObjectId": "447b759d29774583b7297b50bd300bf8", + "m_Version": 0, + "m_fullscreenMode": 0, + "m_BlendMode": 4, + "m_SrcColorBlendMode": 0, + "m_DstColorBlendMode": 1, + "m_ColorBlendOperation": 0, + "m_SrcAlphaBlendMode": 0, + "m_DstAlphaBlendMode": 1, + "m_AlphaBlendOperation": 0, + "m_EnableStencil": false, + "m_StencilReference": 0, + "m_StencilReadMask": 255, + "m_StencilWriteMask": 255, + "m_StencilCompareFunction": 8, + "m_StencilPassOperation": 0, + "m_StencilFailOperation": 0, + "m_StencilDepthFailOperation": 0, + "m_DepthWrite": false, + "m_depthWriteMode": 0, + "m_AllowMaterialOverride": false, + "m_DepthTestMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalFullscreenSubTarget", + "m_ObjectId": "49e2519eca1641a9b52db19ffaaf4c15" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "4d9b1d0112524bf9ba8c379063abda42", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "7de4d40302f14260b0ac3dd065804f1c" + }, + { + "m_Id": "bcab9fc6776c44619970fe7d695e6a0a" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot", + "m_ObjectId": "5924f03e24bb4b31b4d7e63924a5af70", + "m_Id": 2, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": false, + "m_DefaultValue": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ComparisonNode", + "m_ObjectId": "5e1d19e0c0de407abd8b4a358458edf7", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Comparison", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -602.0, + "y": 87.33333587646485, + "width": 147.33328247070313, + "height": 138.66668701171876 + } + }, + "m_Slots": [ + { + "m_Id": "172a62371dcf41118f4cdaec4ebac311" + }, + { + "m_Id": "0cc5327e68f045c4b205797f9070141c" + }, + { + "m_Id": "5924f03e24bb4b31b4d7e63924a5af70" + } + ], + "synonyms": [ + "equal", + "greater than", + "less than" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_ComparisonType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.EyeIndexNode", + "m_ObjectId": "6034be7f4f5d40e685e3c6f028773f31", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Eye Index", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -824.0000610351563, + "y": 87.33333587646485, + "width": 102.666748046875, + "height": 78.66667938232422 + } + }, + "m_Slots": [ + { + "m_Id": "b4d38779891b4f508ec75d31db1fcba8" + } + ], + "synonyms": [ + "stereo", + "3d" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "697d159eb1174e93999511be81271bfc", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.BaseColor", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "785121fd80cd4a3081e17e453a4b74e3" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.BaseColor" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "729d9485511745a984338f338d7dcc78", + "m_Id": 0, + "m_DisplayName": "Alpha", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Alpha", + "m_StageCapability": 2, + "m_Value": 1.0, + "m_DefaultValue": 1.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "785121fd80cd4a3081e17e453a4b74e3", + "m_Id": 0, + "m_DisplayName": "Base Color", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "BaseColor", + "m_StageCapability": 2, + "m_Value": { + "x": 0.5, + "y": 0.5, + "z": 0.5 + }, + "m_DefaultValue": { + "x": 0.5, + "y": 0.5, + "z": 0.5 + }, + "m_Labels": [], + "m_ColorMode": 0, + "m_DefaultColor": { + "r": 0.5, + "g": 0.5, + "b": 0.5, + "a": 1.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "7a569a0e0dfe44b1b83684609dab5ab5", + "m_Id": 3, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "7d20cd3493e84c6987a14afc728c970f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -591.3333129882813, + "y": 226.00003051757813, + "width": 146.6666259765625, + "height": 35.99993896484375 + } + }, + "m_Slots": [ + { + "m_Id": "d9dc1e06fc4c41dd8374b8f11c8eb5fd" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "bcab9fc6776c44619970fe7d695e6a0a" + } +} + +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", + "m_ObjectId": "7de4d40302f14260b0ac3dd065804f1c", + "m_Guid": { + "m_GuidSerialized": "9e65b6e8-5e86-4faa-9bb6-336628eb84cb" + }, + "m_Name": "Color", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "Color", + "m_DefaultReferenceName": "_Color", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "r": 1.0, + "g": 0.0, + "b": 0.0, + "a": 0.0 + }, + "isMainColor": false, + "m_ColorMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "7ee4e990d6034ec88bc52cbf37e65879", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.Alpha", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": 0.0, + "y": 0.0, + "width": 0.0, + "height": 0.0 + } + }, + "m_Slots": [ + { + "m_Id": "729d9485511745a984338f338d7dcc78" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.Alpha" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", + "m_ObjectId": "8530dda83bf548e3989ffbf0fd47464f", + "m_Id": 1, + "m_DisplayName": "True", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "True", + "m_StageCapability": 3, + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BranchNode", + "m_ObjectId": "8935cf57fe48410f92102e60c84b6c5a", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Branch", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -313.3333740234375, + "y": 138.0, + "width": 209.33331298828126, + "height": 328.0000305175781 + } + }, + "m_Slots": [ + { + "m_Id": "f4df1df78e6a4b90b1395d1328245278" + }, + { + "m_Id": "8530dda83bf548e3989ffbf0fd47464f" + }, + { + "m_Id": "0770a4dc99964f6eab73bfe39a0ba2f0" + }, + { + "m_Id": "7a569a0e0dfe44b1b83684609dab5ab5" + } + ], + "synonyms": [ + "switch", + "if", + "else" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "b4d38779891b4f508ec75d31db1fcba8", + "m_Id": 0, + "m_DisplayName": "Out", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.Internal.ColorShaderProperty", + "m_ObjectId": "bcab9fc6776c44619970fe7d695e6a0a", + "m_Guid": { + "m_GuidSerialized": "645fcbba-0cc6-485d-bca9-bc6574b44da9" + }, + "m_Name": "EyeOneColor", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "EyeOneColor", + "m_DefaultReferenceName": "_EyeOneColor", + "m_OverrideReferenceName": "", + "m_GeneratePropertyBlock": true, + "m_UseCustomSlotLabel": false, + "m_CustomSlotLabel": "", + "m_DismissedVersion": 0, + "m_Precision": 0, + "overrideHLSLDeclaration": false, + "hlslDeclarationOverride": 0, + "m_Hidden": false, + "m_Value": { + "r": 0.0, + "g": 1.0, + "b": 0.0, + "a": 0.0 + }, + "isMainColor": false, + "m_ColorMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.StickyNoteData", + "m_ObjectId": "bfb946cd745c40238dd5ff9e119e3a3c", + "m_Title": "New Note", + "m_Content": "This shader simply outputs one color, in XR there is a second color for the other eye.\n\nThe bend mode is multiply so it will thint the existing frame buffer when rendering full screen.\n", + "m_TextSize": 0, + "m_Theme": 0, + "m_Position": { + "serializedVersion": "2", + "x": -713.3333129882813, + "y": -332.0, + "width": 352.6666564941406, + "height": 264.6666564941406 + }, + "m_Group": { + "m_Id": "" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "d9dc1e06fc4c41dd8374b8f11c8eb5fd", + "m_Id": 0, + "m_DisplayName": "EyeOneColor", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "w": 0.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PropertyNode", + "m_ObjectId": "ed14e231c17648c989db71c0d0a0500f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -634.6666870117188, + "y": 350.6666564941406, + "width": 106.6666259765625, + "height": 36.0 + } + }, + "m_Slots": [ + { + "m_Id": "3ce13b3d17ca458288d5f9b875b8d88f" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "7de4d40302f14260b0ac3dd065804f1c" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BooleanMaterialSlot", + "m_ObjectId": "f4df1df78e6a4b90b1395d1328245278", + "m_Id": 0, + "m_DisplayName": "Predicate", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Predicate", + "m_StageCapability": 3, + "m_Value": false, + "m_DefaultValue": false +} + diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintShader.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintShader.shadergraph.meta new file mode 100644 index 00000000000..7a77cc83c77 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/EyeTintShader.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0b4084d1b35c8774fba174b2742ac093 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/TintBlit.shader b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/TintBlit.shader new file mode 100644 index 00000000000..08597781eee --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/TintBlit.shader @@ -0,0 +1,70 @@ +Shader "315/TintBlit" +{ + Properties + { + _Color("Color", Color) = (1, 0, 0, 0) + } + SubShader + { + Tags { "RenderType" = "Opaque" } + ZClip Off + ZTest Off + ZWrite Off Cull Off + Blend DstColor Zero + Pass + { + Name "TintBlit" + + HLSLPROGRAM + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Packing.hlsl" + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureXR.hlsl" + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl" + + #pragma multi_compile_fragment _ DISABLE_TEXTURE2D_X_ARRAY + #pragma vertex Vert + #pragma fragment CopyFrag + + float4 _Color; + + // Declares the framebuffer input as a texture 2d containing half. + FRAMEBUFFER_INPUT_X_FLOAT(0); + + struct Attributes + { + uint vertexID : SV_VertexID; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + UNITY_VERTEX_OUTPUT_STEREO + }; + + Varyings Vert(Attributes input) + { + Varyings output; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + + output.positionCS = GetFullScreenTriangleVertexPosition(input.vertexID); + return output; + } + + // Out frag function takes as input a struct that contains the screen space coordinate we are going to use to sample our texture. It also writes to SV_Target0, this has to match the index set in the UseTextureFragment(sourceTexture, 0, …) we defined in our render pass script. + float4 CopyFrag(Varyings input) : SV_Target0 + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + // read previous subpasses directly from the framebuffer. + //half4 color = LOAD_FRAMEBUFFER_INPUT_X(0, input.positionCS.xy); + + // Modify the sampled color + return _Color; + } + ENDHLSL + } + } +} + diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/TintBlit.shader.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/TintBlit.shader.meta new file mode 100644 index 00000000000..7f45902c3b8 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Scenes/315_CoreCopyAndBlit/TintBlit.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f579cab9dc3560e44abe2fb15874bf4f +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Test/TestFilters/TestCaseFilters.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Test/TestFilters/TestCaseFilters.asset index 0412dc62a1a..4ed0c48124e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Test/TestFilters/TestCaseFilters.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/Assets/Test/TestFilters/TestCaseFilters.asset @@ -1135,92 +1135,12 @@ MonoBehaviour: FilteredScenes: - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} ColorSpace: -1 - BuildPlatform: -2 - GraphicsDevice: 2 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: UUM-66357, UUM-67324 - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} - ColorSpace: -1 - BuildPlatform: -2 - GraphicsDevice: 11 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: UUM-66357 - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} - ColorSpace: -1 - BuildPlatform: -2 - GraphicsDevice: 13 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: UUM-67324 - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} - ColorSpace: -1 - BuildPlatform: -2 - GraphicsDevice: 16 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: UUM-67324 - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} - ColorSpace: -1 - BuildPlatform: -2 - GraphicsDevice: 18 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: UUM-66357, UUM-67324 - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} - ColorSpace: -1 - BuildPlatform: -2 - GraphicsDevice: 22 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: UUM-67324 - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} - ColorSpace: -1 - BuildPlatform: -2 - GraphicsDevice: 24 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: UUM-67324 - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} - ColorSpace: -1 - BuildPlatform: -2 - GraphicsDevice: 25 - Architecture: 0 - XrSdk: - StereoModes: 0 - Reason: UUM-67324 - - FilteredScene: {fileID: 0} - FilteredScenes: - - {fileID: 102900000, guid: 233f6d76572eee0439080cc4973b42ee, type: 3} - ColorSpace: -1 - BuildPlatform: 44 + BuildPlatform: 20 GraphicsDevice: 4 Architecture: 0 XrSdk: StereoModes: 0 - Reason: UUM-67324 + Reason: No support GLES3 - FilteredScene: {fileID: 0} FilteredScenes: - {fileID: 102900000, guid: 81446d3c9a10ff94a873a19e2d8804e9, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset index 64583e800ff..77cdcdd49d9 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Foundation/ProjectSettings/EditorBuildSettings.asset @@ -542,6 +542,9 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/311_DepthCopyTransparent.unity guid: 7bddce5f702841a4792e89284712401a + - enabled: 1 + path: Assets/Scenes/315_CoreCopyAndBlit.unity + guid: 233f6d76572eee0439080cc4973b42ee - enabled: 1 path: Assets/Scenes/320_CameraCaptureBridge.unity guid: fc0920afa6040434f8002c78a6fe3c5f diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/ReflectionProbes.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/ReflectionProbes.asset index 4d135fe0713..4ff720ca61e 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/ReflectionProbes.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/ReflectionProbes.asset @@ -18,6 +18,7 @@ MonoBehaviour: m_RendererData: {fileID: 0} m_RendererDataList: - {fileID: 11400000, guid: bc60c4bc59aafe74198ea6134790d94b, type: 2} + - {fileID: 11400000, guid: 121c47ef1b505bb4c9b2c17eda2dd176, type: 2} m_DefaultRendererIndex: 0 m_RequireDepthTexture: 0 m_RequireOpaqueTexture: 0 @@ -53,6 +54,7 @@ MonoBehaviour: m_AdditionalLightsShadowResolutionTierHigh: 2048 m_ReflectionProbeBlending: 1 m_ReflectionProbeBoxProjection: 0 + m_ReflectionProbeAtlas: 1 m_ShadowDistance: 50 m_ShadowCascadeCount: 1 m_Cascade2Split: 0.25 @@ -129,6 +131,7 @@ MonoBehaviour: m_PrefilterScreenCoord: 1 m_PrefilterNativeRenderPass: 1 m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 m_ShaderVariantLogLevel: 0 m_ShadowCascades: 0 m_Textures: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/UniversalRPAsset_APV_NoRealtimeShadows.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/UniversalRPAsset_APV_NoRealtimeShadows.asset new file mode 100644 index 00000000000..32a62a90a8f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/UniversalRPAsset_APV_NoRealtimeShadows.asset @@ -0,0 +1,138 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: UniversalRPAsset_APV_NoRealtimeShadows + m_EditorClassIdentifier: + k_AssetVersion: 12 + k_AssetPreviousVersion: 12 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: f59607d3476b54858a594ea904187fb5, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 1 + m_RequireOpaqueTexture: 1 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 0 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 0 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 3 + m_LightProbeSystem: 1 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 128 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 0 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 8 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 512 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ReflectionProbeAtlas: 0 + m_ShadowDistance: 56 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.154, y: 0.478} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 0 + m_SupportsLightLayers: 0 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 0 + m_LocalShadowsSupported: 1 + m_LocalShadowsAtlasResolution: 512 + m_MaxPixelLights: 4 + m_ShadowAtlasResolution: 2048 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 0} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 1 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 3 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/UniversalRPAsset_APV_NoRealtimeShadows.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/UniversalRPAsset_APV_NoRealtimeShadows.asset.meta new file mode 100644 index 00000000000..69eceb54881 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/CommonAssets/URPAssets/UniversalRPAsset_APV_NoRealtimeShadows.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1e23f43b03a29614baedd721281f66c7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_DeferredPlus_ReflectionProbes_Mip_blending.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_DeferredPlus_ReflectionProbes_Mip_blending.unity new file mode 100644 index 00000000000..913c990d59f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_DeferredPlus_ReflectionProbes_Mip_blending.unity @@ -0,0 +1,872 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_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: 20201, guid: 0000000000000000f000000000000000, type: 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 &417876506 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 417876510} + - component: {fileID: 417876509} + - component: {fileID: 417876508} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &417876508 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 417876506} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: e7af25e92db974d4b890922e11d4c2a8, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &417876509 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 417876506} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &417876510 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 417876506} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.87, 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 &543811346 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 543811350} + - component: {fileID: 543811349} + - component: {fileID: 543811348} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &543811348 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543811346} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &543811349 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543811346} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &543811350 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 543811346} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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 &707992805 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 707992808} + - component: {fileID: 707992807} + - component: {fileID: 707992809} + - component: {fileID: 707992810} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!20 &707992807 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707992805} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + 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: 0 + orthographic size: 5 + m_Depth: -1 + 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 &707992808 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707992805} + serializedVersion: 2 + m_LocalRotation: {x: 0.0720197, y: 0, z: 0, w: 0.9974032} + m_LocalPosition: {x: 0, y: 1.18, z: -4.28} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 8.26, y: 0, z: 0} +--- !u!114 &707992809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707992805} + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!114 &707992810 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707992805} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 512 + TargetHeight: 512 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.001 + IncorrectPixelsThreshold: 0.0000003814697 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 2 + XRCompatible: 1 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!1 &1035986195 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1035986199} + - component: {fileID: 1035986198} + - component: {fileID: 1035986197} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &1035986197 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035986195} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1035986198 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035986195} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1035986199 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1035986195} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.42, y: 0.84, 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 &1239600459 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1239600461} + - component: {fileID: 1239600460} + - component: {fileID: 1239600462} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!108 &1239600460 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1239600459} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1239600461 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1239600459} + serializedVersion: 2 + m_LocalRotation: {x: 0.87441623, y: 0.12546045, z: -0.3391636, w: 0.32345644} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 139.4, y: 42.4, z: 0} +--- !u!114 &1239600462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1239600459} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!1 &1366278860 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1366278862} + - component: {fileID: 1366278861} + m_Layer: 0 + m_Name: SelectQualityLevel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1366278861 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1366278860} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} + m_Name: + m_EditorClassIdentifier: + qualityLevelIndex: 6 + callbacks: [] +--- !u!4 &1366278862 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1366278860} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.38117677, y: 6.107272, z: 0.46914768} + 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 &1535217458 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1535217462} + - component: {fileID: 1535217461} + - component: {fileID: 1535217460} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &1535217460 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1535217458} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1535217461 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1535217458} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1535217462 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1535217458} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.66, y: 0.84, 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 &1900299071 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1900299073} + - component: {fileID: 1900299072} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!215 &1900299072 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1900299071} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 2 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 128 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 8900000, guid: 18bb31b0f8cce2840a3aaec52aaeeb26, + type: 3} +--- !u!4 &1900299073 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1900299071} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.929, 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!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 707992808} + - {fileID: 1239600461} + - {fileID: 543811350} + - {fileID: 1535217462} + - {fileID: 1035986199} + - {fileID: 417876510} + - {fileID: 1900299073} + - {fileID: 1366278862} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_DeferredPlus_ReflectionProbes_Mip_blending.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_DeferredPlus_ReflectionProbes_Mip_blending.unity.meta new file mode 100644 index 00000000000..8ab9eea778c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_DeferredPlus_ReflectionProbes_Mip_blending.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d4d56ea85e9cf5147b386fd2f81bd466 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_Forward+_ReflectionProbes_Mip_blending/Deferred+.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_Forward+_ReflectionProbes_Mip_blending/Deferred+.asset new file mode 100644 index 00000000000..0fc20244317 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_Forward+_ReflectionProbes_Mip_blending/Deferred+.asset @@ -0,0 +1,61 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: Deferred+ + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, + type: 3} + probeVolumeResources: + probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, + type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, + type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, + type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, + type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, + type: 3} + probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, + type: 3} + probeVolumeBlendStatesCS: {fileID: 0} + m_RendererFeatures: [] + m_RendererFeatureMap: + m_UseNativeRenderPass: 0 + xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} + postProcessData: {fileID: 0} + m_AssetVersion: 2 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 3 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 1 + m_DepthAttachmentFormat: 0 + m_DepthTextureFormat: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_Forward+_ReflectionProbes_Mip_blending/Deferred+.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_Forward+_ReflectionProbes_Mip_blending/Deferred+.asset.meta new file mode 100644 index 00000000000..023c1b70dfd --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/222_Forward+_ReflectionProbes_Mip_blending/Deferred+.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 121c47ef1b505bb4c9b2c17eda2dd176 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_DeferredPlus_Lights_And_ReflectionProbe_Limit.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_DeferredPlus_Lights_And_ReflectionProbe_Limit.unity new file mode 100644 index 00000000000..4c7bc68e45f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_DeferredPlus_Lights_And_ReflectionProbe_Limit.unity @@ -0,0 +1,6450 @@ +%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: 0.24 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.0019843653, g: 0.0055760737, b: 0.014675081, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_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: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 112000000, guid: 6f1ae1e327fe4ff44986f062ba82914c, + type: 2} + 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 &29066277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 29066278} + m_Layer: 0 + m_Name: 5LightRow (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &29066278 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 29066277} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -30, y: 2, z: 40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1363823838} + - {fileID: 767675115} + - {fileID: 635127793} + - {fileID: 926741427} + - {fileID: 2039524604} + m_Father: {fileID: 1352084928} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &66918916 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 66918917} + - component: {fileID: 66918919} + - component: {fileID: 66918918} + m_Layer: 0 + m_Name: Point Light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &66918917 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 66918916} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -30} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 148774528} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &66918918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 66918916} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &66918919 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 66918916} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0.10020566, g: 1, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &121160695 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 121160696} + - component: {fileID: 121160698} + - component: {fileID: 121160697} + m_Layer: 0 + m_Name: Point Light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &121160696 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121160695} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -30} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1929419176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &121160697 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121160695} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &121160698 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 121160695} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0.10020566, g: 1, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &131164361 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 131164362} + - component: {fileID: 131164364} + - component: {fileID: 131164363} + m_Layer: 0 + m_Name: Point Light (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &131164362 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 131164361} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1260165039} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &131164363 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 131164361} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &131164364 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 131164361} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.8360923, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &148774527 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 148774528} + m_Layer: 0 + m_Name: 5LightRow (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &148774528 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148774527} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -40, y: 2, z: 40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2023726290} + - {fileID: 66918917} + - {fileID: 1589258075} + - {fileID: 1570088082} + - {fileID: 2116069158} + m_Father: {fileID: 1352084928} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &149083469 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 149083470} + - component: {fileID: 149083471} + m_Layer: 0 + m_Name: Reflection Probe (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &149083470 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 149083469} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &149083471 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 149083469} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 70, y: 50, z: 70} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.956583, g: 0, b: 1, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &150729793 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 150729794} + - component: {fileID: 150729795} + m_Layer: 0 + m_Name: Reflection Probe (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &150729794 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150729793} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &150729795 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 150729793} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 70, y: 50, z: 70} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.956583, g: 0, b: 1, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &162567640 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 162567642} + - component: {fileID: 162567641} + m_Layer: 0 + m_Name: SelectQualityLevel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &162567641 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162567640} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} + m_Name: + m_EditorClassIdentifier: + qualityLevelIndex: 6 + callbacks: [] +--- !u!4 &162567642 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 162567640} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.38117677, y: 6.107272, z: 0.46914768} + 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 &205758060 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 205758061} + - component: {fileID: 205758062} + m_Layer: 0 + m_Name: Reflection Probe (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &205758061 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 205758060} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 748270424} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &205758062 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 205758060} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 20, y: 50, z: 80} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 1, b: 0.97613287, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &224391075 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 224391076} + - component: {fileID: 224391078} + - component: {fileID: 224391077} + m_Layer: 0 + m_Name: Point Light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &224391076 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 224391075} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -30} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 425726162} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &224391077 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 224391075} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &224391078 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 224391075} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0.10020566, g: 1, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &227547013 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 227547014} + m_Layer: 0 + m_Name: Reflection Probes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &227547014 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 227547013} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -50} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 752483274} + - {fileID: 274783984} + - {fileID: 859043575} + - {fileID: 748270424} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &272615902 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 272615903} + - component: {fileID: 272615905} + - component: {fileID: 272615904} + m_Layer: 0 + m_Name: Point Light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &272615903 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 272615902} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -30} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1260165039} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &272615904 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 272615902} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &272615905 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 272615902} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0.10020566, g: 1, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &274783983 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 274783984} + m_Layer: 0 + m_Name: Reflection Probes Blend + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &274783984 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 274783983} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1198420928} + - {fileID: 2023436529} + - {fileID: 389498095} + - {fileID: 150729794} + - {fileID: 2105034315} + - {fileID: 631852382} + - {fileID: 885351107} + - {fileID: 418231152} + - {fileID: 498640421} + - {fileID: 1864354900} + m_Father: {fileID: 227547014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &301038369 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 301038370} + - component: {fileID: 301038373} + - component: {fileID: 301038372} + - component: {fileID: 301038371} + m_Layer: 0 + m_Name: Light Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &301038370 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301038369} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 12.72} + m_LocalScale: {x: 40, y: 1, z: 12} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1029568570} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!64 &301038371 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301038369} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &301038372 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301038369} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6c2dad6d2b28edf4c809d41f7606f980, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &301038373 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 301038369} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &389498094 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 389498095} + - component: {fileID: 389498096} + m_Layer: 0 + m_Name: Reflection Probe (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &389498095 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 389498094} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &389498096 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 389498094} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 80, y: 50, z: 80} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.13551736, g: 1, b: 0, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &418231151 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 418231152} + - component: {fileID: 418231153} + m_Layer: 0 + m_Name: Reflection Probe (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &418231152 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 418231151} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &418231153 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 418231151} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 30, y: 50, z: 30} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.059624553, g: 1, b: 0, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &425726161 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 425726162} + m_Layer: 0 + m_Name: 5LightRow (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &425726162 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 425726161} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -60, y: 2, z: 40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1555087826} + - {fileID: 224391076} + - {fileID: 575778209} + - {fileID: 489363402} + - {fileID: 1941193049} + m_Father: {fileID: 1352084928} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &476074962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 476074963} + - component: {fileID: 476074965} + - component: {fileID: 476074964} + m_Layer: 0 + m_Name: Point Light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &476074963 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476074962} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -30} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1042684984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &476074964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476074962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &476074965 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 476074962} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0.10020566, g: 1, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &480541744 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 480541745} + - component: {fileID: 480541747} + - component: {fileID: 480541746} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &480541745 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480541744} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1260165039} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &480541746 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480541744} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &480541747 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 480541744} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &489363401 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 489363402} + - component: {fileID: 489363404} + - component: {fileID: 489363403} + m_Layer: 0 + m_Name: Point Light (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &489363402 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 489363401} + 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: 425726162} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &489363403 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 489363401} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &489363404 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 489363401} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0, g: 0.19208002, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &498640420 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 498640421} + - component: {fileID: 498640422} + m_Layer: 0 + m_Name: Reflection Probe (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &498640421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498640420} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &498640422 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 498640420} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 20, y: 50, z: 20} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 0, b: 0.948019, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &508018294 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 508018295} + - component: {fileID: 508018297} + - component: {fileID: 508018296} + m_Layer: 0 + m_Name: Point Light (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &508018295 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 508018294} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1929419176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &508018296 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 508018294} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &508018297 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 508018294} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.12769377, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &565749118 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 565749119} + - component: {fileID: 565749120} + m_Layer: 0 + m_Name: Reflection Probe (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &565749119 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 565749118} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &565749120 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 565749118} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 50, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 1, b: 0.98543286, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &575778208 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 575778209} + - component: {fileID: 575778211} + - component: {fileID: 575778210} + m_Layer: 0 + m_Name: Point Light (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &575778209 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 575778208} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 425726162} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &575778210 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 575778208} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &575778211 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 575778208} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.12769377, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &631852381 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 631852382} + - component: {fileID: 631852383} + m_Layer: 0 + m_Name: Reflection Probe (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &631852382 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631852381} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &631852383 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 631852381} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 50, y: 50, z: 50} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 0.09777973, b: 0, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &635127792 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 635127793} + - component: {fileID: 635127795} + - component: {fileID: 635127794} + m_Layer: 0 + m_Name: Point Light (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &635127793 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 635127792} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 29066278} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &635127794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 635127792} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &635127795 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 635127792} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.12769377, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &677044372 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 677044373} + - component: {fileID: 677044374} + m_Layer: 0 + m_Name: Reflection Probe (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &677044373 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 677044372} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &677044374 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 677044372} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 60, y: 50, z: 60} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0.9541702, b: 1, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &682043498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 682043499} + - component: {fileID: 682043501} + - component: {fileID: 682043500} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &682043499 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 682043498} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1042684984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &682043500 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 682043498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &682043501 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 682043498} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &684219582 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 684219583} + - component: {fileID: 684219584} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &684219583 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 684219582} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 748270424} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &684219584 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 684219582} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 100, y: 50, z: 50} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 0.084961444, b: 0, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 2 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &748270423 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 748270424} + m_Layer: 0 + m_Name: Reflection Probes Importance + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &748270424 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 748270423} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -100, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 684219583} + - {fileID: 205758061} + m_Father: {fileID: 227547014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &752483270 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 752483274} + - component: {fileID: 752483273} + - component: {fileID: 752483272} + - component: {fileID: 752483271} + m_Layer: 0 + m_Name: Reflective Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &752483271 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 752483270} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &752483272 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 752483270} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 71f42c5380dbf7946848998e357b139f, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &752483273 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 752483270} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &752483274 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 752483270} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.1, z: -12.2} + m_LocalScale: {x: 40, y: 1, z: 13} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 227547014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &761595562 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 761595563} + - component: {fileID: 761595564} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &761595563 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 761595562} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &761595564 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 761595562} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 100, y: 50, z: 100} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.4745098, g: 0.2324991, b: 0.19215688, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &767675114 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 767675115} + - component: {fileID: 767675117} + - component: {fileID: 767675116} + m_Layer: 0 + m_Name: Point Light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &767675115 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 767675114} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -30} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 29066278} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &767675116 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 767675114} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &767675117 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 767675114} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0.10020566, g: 1, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &771139058 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 771139059} + - component: {fileID: 771139061} + - component: {fileID: 771139060} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &771139059 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 771139058} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1929419176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &771139060 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 771139058} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &771139061 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 771139058} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &823717851 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 823717852} + - component: {fileID: 823717853} + m_Layer: 0 + m_Name: Reflection Probe (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &823717852 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823717851} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &823717853 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 823717851} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 20, y: 50, z: 20} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 0, b: 0.948019, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &859043574 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 859043575} + m_Layer: 0 + m_Name: Reflection Probes No Blend + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &859043575 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 859043574} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 100, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 761595563} + - {fileID: 1380192823} + - {fileID: 1498461200} + - {fileID: 149083470} + - {fileID: 677044373} + - {fileID: 1590344354} + - {fileID: 985492446} + - {fileID: 1532979435} + - {fileID: 823717852} + - {fileID: 565749119} + m_Father: {fileID: 227547014} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &885351106 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 885351107} + - component: {fileID: 885351108} + m_Layer: 0 + m_Name: Reflection Probe (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &885351107 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 885351106} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &885351108 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 885351106} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 40, y: 50, z: 40} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0.0831089, b: 1, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &921932528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 921932529} + - component: {fileID: 921932531} + - component: {fileID: 921932530} + m_Layer: 0 + m_Name: Point Light (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &921932529 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921932528} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1929419176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &921932530 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921932528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &921932531 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921932528} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.8360923, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &926741426 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 926741427} + - component: {fileID: 926741429} + - component: {fileID: 926741428} + m_Layer: 0 + m_Name: Point Light (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &926741427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926741426} + 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: 29066278} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &926741428 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926741426} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &926741429 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 926741426} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0, g: 0.19208002, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &985492445 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 985492446} + - component: {fileID: 985492447} + m_Layer: 0 + m_Name: Reflection Probe (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &985492446 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 985492445} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &985492447 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 985492445} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 40, y: 50, z: 40} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0.0831089, b: 1, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1029568569 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1029568570} + m_Layer: 0 + m_Name: Lights + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1029568570 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1029568569} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 50} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 301038370} + - {fileID: 1352084928} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1042684983 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1042684984} + m_Layer: 0 + m_Name: 2LightRow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1042684984 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1042684983} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -10, y: 2, z: 40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 682043499} + - {fileID: 476074963} + m_Father: {fileID: 1352084928} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1151549818 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1151549819} + - component: {fileID: 1151549821} + - component: {fileID: 1151549820} + m_Layer: 0 + m_Name: Point Light (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1151549819 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1151549818} + 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: 1929419176} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1151549820 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1151549818} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1151549821 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1151549818} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0, g: 0.19208002, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1154140146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1154140147} + - component: {fileID: 1154140149} + - component: {fileID: 1154140148} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1154140147 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1154140146} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1917803435} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1154140148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1154140146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1154140149 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1154140146} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1198420927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1198420928} + - component: {fileID: 1198420929} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1198420928 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1198420927} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1198420929 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1198420927} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 100, y: 50, z: 100} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.4745098, g: 0.2324991, b: 0.19215688, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1260165038 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1260165039} + m_Layer: 0 + m_Name: 5LightRow (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1260165039 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1260165038} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -50, y: 2, z: 40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 480541745} + - {fileID: 272615903} + - {fileID: 1760173915} + - {fileID: 1821863694} + - {fileID: 131164362} + m_Father: {fileID: 1352084928} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1352084927 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1352084928} + m_Layer: 0 + m_Name: LightScale + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1352084928 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1352084927} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 182.65, y: 0, z: -25.06} + m_LocalScale: {x: 4.43, y: 1, z: 2} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1929419176} + - {fileID: 425726162} + - {fileID: 1260165039} + - {fileID: 148774528} + - {fileID: 29066278} + - {fileID: 1917803435} + - {fileID: 1042684984} + m_Father: {fileID: 1029568570} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1363823837 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1363823838} + - component: {fileID: 1363823840} + - component: {fileID: 1363823839} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1363823838 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363823837} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 29066278} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1363823839 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363823837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1363823840 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1363823837} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1380192822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1380192823} + - component: {fileID: 1380192824} + m_Layer: 0 + m_Name: Reflection Probe (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1380192823 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1380192822} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1380192824 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1380192822} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 90, y: 50, z: 90} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215688, g: 0.26113892, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1496373643 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1496373645} + - component: {fileID: 1496373644} + - component: {fileID: 1496373646} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!108 &1496373644 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496373643} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1496373645 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496373643} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &1496373646 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496373643} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!1 &1498461199 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1498461200} + - component: {fileID: 1498461201} + m_Layer: 0 + m_Name: Reflection Probe (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1498461200 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1498461199} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1498461201 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1498461199} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 80, y: 50, z: 80} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.13551736, g: 1, b: 0, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1532979434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1532979435} + - component: {fileID: 1532979436} + m_Layer: 0 + m_Name: Reflection Probe (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1532979435 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532979434} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1532979436 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1532979434} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 30, y: 50, z: 30} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.059624553, g: 1, b: 0, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1555087825 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1555087826} + - component: {fileID: 1555087828} + - component: {fileID: 1555087827} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1555087826 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555087825} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 425726162} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1555087827 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555087825} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1555087828 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555087825} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1570088081 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1570088082} + - component: {fileID: 1570088084} + - component: {fileID: 1570088083} + m_Layer: 0 + m_Name: Point Light (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1570088082 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570088081} + 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: 148774528} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1570088083 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570088081} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1570088084 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1570088081} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0, g: 0.19208002, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1589258074 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1589258075} + - component: {fileID: 1589258077} + - component: {fileID: 1589258076} + m_Layer: 0 + m_Name: Point Light (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1589258075 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1589258074} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 148774528} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1589258076 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1589258074} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1589258077 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1589258074} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.12769377, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1590344353 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1590344354} + - component: {fileID: 1590344355} + m_Layer: 0 + m_Name: Reflection Probe (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1590344354 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1590344353} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 859043575} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1590344355 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1590344353} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 50, y: 50, z: 50} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 0.09777973, b: 0, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1669141797 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1669141798} + - component: {fileID: 1669141800} + - component: {fileID: 1669141799} + m_Layer: 0 + m_Name: Point Light (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1669141798 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1669141797} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1917803435} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1669141799 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1669141797} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1669141800 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1669141797} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.12769377, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1760173914 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1760173915} + - component: {fileID: 1760173917} + - component: {fileID: 1760173916} + m_Layer: 0 + m_Name: Point Light (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1760173915 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1760173914} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -20} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1260165039} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1760173916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1760173914} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1760173917 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1760173914} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.12769377, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1818802170 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1818802171} + - component: {fileID: 1818802173} + - component: {fileID: 1818802172} + m_Layer: 0 + m_Name: Point Light (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1818802171 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818802170} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1917803435} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1818802172 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818802170} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1818802173 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1818802170} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.8360923, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1821863693 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1821863694} + - component: {fileID: 1821863696} + - component: {fileID: 1821863695} + m_Layer: 0 + m_Name: Point Light (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1821863694 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821863693} + 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: 1260165039} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1821863695 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821863693} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1821863696 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1821863693} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0, g: 0.19208002, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1840540377 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1840540378} + - component: {fileID: 1840540380} + - component: {fileID: 1840540379} + m_Layer: 0 + m_Name: Point Light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1840540378 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1840540377} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -30} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1917803435} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1840540379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1840540377} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1840540380 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1840540377} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0.10020566, g: 1, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1864354899 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1864354900} + - component: {fileID: 1864354901} + m_Layer: 0 + m_Name: Reflection Probe (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1864354900 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1864354899} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1864354901 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1864354899} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 50, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 1, b: 0.98543286, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &1917803434 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917803435} + m_Layer: 0 + m_Name: 5LightRow (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1917803435 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917803434} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -20, y: 2, z: 40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1154140147} + - {fileID: 1840540378} + - {fileID: 1669141798} + - {fileID: 1921554279} + - {fileID: 1818802171} + m_Father: {fileID: 1352084928} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1921554278 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1921554279} + - component: {fileID: 1921554281} + - component: {fileID: 1921554280} + m_Layer: 0 + m_Name: Point Light (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1921554279 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1921554278} + 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: 1917803435} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1921554280 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1921554278} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1921554281 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1921554278} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0, g: 0.19208002, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &1929419175 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1929419176} + m_Layer: 0 + m_Name: 5LightRow + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1929419176 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1929419175} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -70, y: 2, z: 40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 771139059} + - {fileID: 121160696} + - {fileID: 508018295} + - {fileID: 1151549819} + - {fileID: 921932529} + m_Father: {fileID: 1352084928} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1941193048 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1941193049} + - component: {fileID: 1941193051} + - component: {fileID: 1941193050} + m_Layer: 0 + m_Name: Point Light (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1941193049 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1941193048} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 425726162} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1941193050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1941193048} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &1941193051 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1941193048} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.8360923, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &2023436528 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2023436529} + - component: {fileID: 2023436530} + m_Layer: 0 + m_Name: Reflection Probe (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2023436529 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023436528} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &2023436530 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023436528} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 90, y: 50, z: 90} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0.19215688, g: 0.26113892, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &2023726289 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2023726290} + - component: {fileID: 2023726292} + - component: {fileID: 2023726291} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2023726290 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023726289} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -40} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 148774528} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2023726291 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023726289} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &2023726292 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2023726289} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &2039524603 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2039524604} + - component: {fileID: 2039524606} + - component: {fileID: 2039524605} + m_Layer: 0 + m_Name: Point Light (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2039524604 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039524603} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 29066278} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2039524605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039524603} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &2039524606 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2039524603} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.8360923, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1 &2105034314 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2105034315} + - component: {fileID: 2105034316} + m_Layer: 0 + m_Name: Reflection Probe (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2105034315 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2105034314} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 274783984} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &2105034316 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2105034314} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 16 + m_UpdateFrequency: 0 + m_BoxSize: {x: 60, y: 50, z: 60} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 2 + m_BackGroundColor: {r: 0, g: 0.9541702, b: 1, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 5 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!1 &2114644200 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2114644204} + - component: {fileID: 2114644203} + - component: {fileID: 2114644202} + - component: {fileID: 2114644201} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!114 &2114644201 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114644200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 512 + TargetHeight: 512 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.005 + IncorrectPixelsThreshold: 0.0000003814697 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 0 + XRCompatible: 1 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!114 &2114644202 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114644200} + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!20 &2114644203 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114644200} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, 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: 0 + orthographic size: 5 + m_Depth: -1 + 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 &2114644204 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2114644200} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 280, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &2116069157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2116069158} + - component: {fileID: 2116069160} + - component: {fileID: 2116069159} + m_Layer: 0 + m_Name: Point Light (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2116069158 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116069157} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 148774528} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2116069159 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116069157} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &2116069160 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116069157} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0.8360923, b: 0, a: 1} + m_Intensity: 200 + m_Range: 100 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 0 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 2114644204} + - {fileID: 1496373645} + - {fileID: 162567642} + - {fileID: 1029568570} + - {fileID: 227547014} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_DeferredPlus_Lights_And_ReflectionProbe_Limit.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_DeferredPlus_Lights_And_ReflectionProbe_Limit.unity.meta new file mode 100644 index 00000000000..9c33c8a92fd --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_DeferredPlus_Lights_And_ReflectionProbe_Limit.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: da7a16b33e98f1946a6ee52f6e9a8486 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit.unity index 90bb991b117..374c99bf37c 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.12731749, g: 0.13414757, b: 0.1210787, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -6246,12 +6246,12 @@ MonoBehaviour: m_RequiresColorTexture: 0 m_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 --- !u!20 &2114644203 Camera: m_ObjectHideFlags: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit/Reflective.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit/Reflective.mat index 50e05941390..e85d6aabd9b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit/Reflective.mat +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit/Reflective.mat @@ -25,7 +25,7 @@ Material: m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: - - _SPECULARHIGHLIGHTS_OFF + - _RECEIVE_SHADOWS_OFF m_InvalidKeywords: [] m_LightmapFlags: 4 m_EnableInstancingVariants: 0 @@ -119,14 +119,15 @@ Material: - _OcclusionStrength: 1 - _Parallax: 0.005 - _QueueOffset: 0 - - _ReceiveShadows: 1 + - _ReceiveShadows: 0 - _Smoothness: 1 - _SmoothnessTextureChannel: 0 - - _SpecularHighlights: 0 + - _SpecularHighlights: 1 - _SrcBlend: 1 - _SrcBlendAlpha: 1 - _Surface: 0 - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 - _ZWrite: 1 m_Colors: - _BaseColor: {r: 1, g: 1, b: 1, a: 1} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting new file mode 100644 index 00000000000..ea41653f90c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting @@ -0,0 +1,63 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!850595691 &4890085278179872738 +LightingSettings: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: 231_APV_Subtractive_NoRealtimeShadows + serializedVersion: 9 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_RealtimeEnvironmentLighting: 1 + m_BounceScale: 1 + m_AlbedoBoost: 1 + m_IndirectOutputScale: 1 + m_UsingShadowmask: 0 + m_BakeBackend: 2 + m_LightmapMaxSize: 1024 + m_LightmapSizeFixed: 0 + m_UseMipmapLimits: 1 + m_BakeResolution: 40 + m_Padding: 2 + m_LightmapCompression: 3 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAO: 0 + m_MixedBakeMode: 1 + m_LightmapsBakeMode: 1 + m_FilterMode: 1 + m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} + m_ExportTrainingData: 0 + m_EnableWorkerProcessBaking: 1 + m_TrainingDataDestination: TrainingData + m_RealtimeResolution: 2 + m_ForceWhiteAlbedo: 0 + m_ForceUpdates: 0 + m_PVRCulling: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_LightProbeSampleCountMultiplier: 4 + m_PVRBounces: 2 + m_PVRMinBounces: 2 + m_PVREnvironmentImportanceSampling: 1 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_RespectSceneVisibilityWhenBakingGI: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting.meta new file mode 100644 index 00000000000..8f5d195350c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.lighting.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 516cde3419ce29d4fa4da7ae39102aec +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 4890085278179872738 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.meta new file mode 100644 index 00000000000..40014f5257d --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f0ffc24084af819479fe422469d90395 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.unity new file mode 100644 index 00000000000..c72a28c0038 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.unity @@ -0,0 +1,2086 @@ +%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, g: 0, b: 0, 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: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_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: 1 + m_PVRFilteringGaussRadiusAO: 1 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 112000000, guid: 653b34d8b91f71b48b36cbc9437144dd, + type: 2} + m_LightingSettings: {fileID: 4890085278179872738, guid: 516cde3419ce29d4fa4da7ae39102aec, + type: 2} +--- !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 &770229555 +GameObject: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 770229557} + - component: {fileID: 770229556} + m_Layer: 0 + m_Name: ProbeVolumePerSceneData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &770229556 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 770229555} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a83d2f7ae04ab6f4f99b0d85377be998, type: 3} + m_Name: + m_EditorClassIdentifier: + serializedBakingSet: {fileID: 11400000, guid: 1c5559cc330dfeb40b862cf3d9fa6974, + type: 2} + sceneGUID: 911c47a2fe05f9846b9eca70cf7757ee + obsoleteAsset: {fileID: 0} + obsoleteCellSharedDataAsset: {fileID: 0} + obsoleteCellSupportDataAsset: {fileID: 0} + obsoleteSerializedScenarios: [] +--- !u!4 &770229557 +Transform: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 770229555} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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 &933834001 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 933834004} + - component: {fileID: 933834003} + - component: {fileID: 933834002} + - component: {fileID: 933834005} + - component: {fileID: 933834006} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &933834002 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933834001} + m_Enabled: 1 +--- !u!20 &933834003 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933834001} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, 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: 0 + orthographic size: 5 + m_Depth: -1 + 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 &933834004 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933834001} + serializedVersion: 2 + m_LocalRotation: {x: 0.50240177, y: 0.4975888, z: -0.5015013, w: 0.49849203} + m_LocalPosition: {x: -0.009538189, y: 10.01572, z: -0.07985285} + 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 &933834005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933834001} + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!114 &933834006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 933834001} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 512 + TargetHeight: 512 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.04 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 60 + XRCompatible: 1 + gpuDrivenCompatible: 0 + CheckMemoryAllocation: 0 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!1 &2088962498 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2088962500} + - component: {fileID: 2088962499} + m_Layer: 0 + m_Name: SelectQualityLevel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2088962499 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088962498} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} + m_Name: + m_EditorClassIdentifier: + qualityLevelIndex: 9 + callbacks: [] +--- !u!4 &2088962500 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2088962498} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.38117677, y: 6.107272, z: 0.46914768} + 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!23 &67325507504406580 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6969514674424780300} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &271474419760019788 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4134375864582252412} + - component: {fileID: 2062998818642273012} + - component: {fileID: 7114342468818599215} + - component: {fileID: 3598740249766370291} + m_Layer: 0 + m_Name: Dynamic Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &374602141648391824 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4059610913787252183} + - component: {fileID: 953730802645617070} + - component: {fileID: 4475418186702868875} + - component: {fileID: 8942702416144025576} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!65 &540499354856750645 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8504963404592668053} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!4 &798416354214501664 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2166082154144361193} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: 0.70710576, z: -0, w: 0.7071078} + m_LocalPosition: {x: 2.5, y: 2, z: -1.5} + m_LocalScale: {x: 2, y: 4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!108 &859577872565831529 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6321587644014348277} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_Intensity: 47.746483 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 1 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: -431602080, y: -431602080, z: -431602080, w: -431602080} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 0 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!33 &953730802645617070 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374602141648391824} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!64 &1238376638853135773 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6969514674424780300} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!65 &1371860413889496614 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8928246947585449534} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!4 &1427932271683834300 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2462461463155272272} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: 0.70710576, z: -0, w: 0.7071078} + m_LocalPosition: {x: -2.5, y: 2, z: 1.5} + m_LocalScale: {x: 2, y: 4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!108 &1570675156920661301 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8679978060537002285} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0, g: 0.050011635, b: 1, a: 1} + m_Intensity: 47.746483 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 0.863 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 1 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: -431602080, y: -431602080, z: -431602080, w: -431602080} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 0 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!23 &1605641141031658456 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8504963404592668053} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &1803642981592810338 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4651778334697894093} + serializedVersion: 2 + m_LocalRotation: {x: 0.038325842, y: -0, z: -0, w: 0.9992653} + m_LocalPosition: {x: -0.010000229, y: 1.27, z: -4.52} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 4.393, y: 0, z: 0} +--- !u!1 &1823457049397243833 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6634170014767251332} + m_Layer: 0 + m_Name: Scene + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!33 &2062998818642273012 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271474419760019788} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2144455156859478448 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5756054324564951361} + - component: {fileID: 2970671074882417522} + m_Layer: 0 + m_Name: APV + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &2166082154144361193 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 798416354214501664} + - component: {fileID: 6243295092000202842} + - component: {fileID: 8188205864735557659} + - component: {fileID: 4342198802582672871} + m_Layer: 0 + m_Name: Cube (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!65 &2371774636374080023 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6163529519532588936} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2462461463155272272 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1427932271683834300} + - component: {fileID: 4352309899908625014} + - component: {fileID: 8046425854238307997} + - component: {fileID: 6720118322612580565} + m_Layer: 0 + m_Name: Cube (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &2532214595042140878 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7945227134465128003} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: 0.70710576, z: -0, w: 0.7071078} + m_LocalPosition: {x: -2.5, y: 2, z: -1.5} + m_LocalScale: {x: 2, y: 4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!23 &2844751935784873468 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6163529519532588936} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &2856650062826844497 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8679978060537002285} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.010000229, y: 1.27, z: 3.8200002} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2932963878553811337 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7945227134465128003} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &2970671074882417522 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2144455156859478448} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cded085d155cde949b60f67a11dbc3bd, type: 3} + m_Name: + m_EditorClassIdentifier: + mode: 1 + size: {x: 14.648293, y: 7, z: 13} + overrideRendererFilters: 0 + minRendererVolumeSize: 0.1 + objectLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + lowestSubdivLevelOverride: 0 + highestSubdivLevelOverride: 0 + overridesSubdivLevels: 1 + mightNeedRebaking: 0 + cachedTransform: + e00: 1 + e01: 0 + e02: 0 + e03: -0 + e10: 0 + e11: 1 + e12: 0 + e13: -2 + e20: 0 + e21: 0 + e22: 1 + e23: -0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + cachedHashCode: 441805281 + fillEmptySpaces: 1 + version: 2 + globalVolume: 1 +--- !u!4 &3009558854448248236 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7151793788623955431} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: 0.70710576, z: -0, w: 0.7071078} + m_LocalPosition: {x: 2.5, y: 2, z: 1.5} + m_LocalScale: {x: 2, y: 4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!135 &3598740249766370291 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271474419760019788} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &3710372955477937279 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8928246947585449534} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &4059610913787252183 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374602141648391824} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.5, y: 2, z: 2.5} + m_LocalScale: {x: 2, y: 4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4134375864582252412 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271474419760019788} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.030000687, y: 0.63, z: -0.01999998} + m_LocalScale: {x: 4.6972065, y: 1.548, z: 4.534092} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &4342198802582672871 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2166082154144361193} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &4352309899908625014 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2462461463155272272} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4475418186702868875 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374602141648391824} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &4559612831519568058 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8928246947585449534} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.5, y: 2, z: 2.5} + m_LocalScale: {x: 2, y: 4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4651778334697894093 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1803642981592810338} + - component: {fileID: 8388378193671957909} + - component: {fileID: 8388378193671957910} + m_Layer: 0 + m_Name: Point Light (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4801559507434063172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8823705289361188576} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0.7071062, z: -0, w: 0.7071075} + m_LocalPosition: {x: 5.549999, y: 1.27, z: -0.03999996} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} +--- !u!65 &4964775915549609775 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7151793788623955431} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &5093465006564105547 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6969514674424780300} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &5174378685605876727 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7151793788623955431} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &5199497250532912330 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6163529519532588936} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &5756054324564951361 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2144455156859478448} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 2, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6163529519532588936 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7659408397790067796} + - component: {fileID: 5199497250532912330} + - component: {fileID: 2844751935784873468} + - component: {fileID: 2371774636374080023} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!33 &6243295092000202842 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2166082154144361193} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &6321587644014348277 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8421560447745624478} + - component: {fileID: 859577872565831529} + - component: {fileID: 8421560447745624479} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6634170014767251332 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1823457049397243833} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 9092851139533727843} + - {fileID: 4059610913787252183} + - {fileID: 4559612831519568058} + - {fileID: 8639481702839641202} + - {fileID: 2532214595042140878} + - {fileID: 798416354214501664} + - {fileID: 3009558854448248236} + - {fileID: 1427932271683834300} + - {fileID: 7659408397790067796} + - {fileID: 8421560447745624478} + - {fileID: 2856650062826844497} + - {fileID: 1803642981592810338} + - {fileID: 4801559507434063172} + - {fileID: 4134375864582252412} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &6720118322612580565 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2462461463155272272} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &6969514674424780300 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9092851139533727843} + - component: {fileID: 5093465006564105547} + - component: {fileID: 67325507504406580} + - component: {fileID: 1238376638853135773} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &7114342468818599215 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 271474419760019788} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &7151793788623955431 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3009558854448248236} + - component: {fileID: 5174378685605876727} + - component: {fileID: 9059298711009972520} + - component: {fileID: 4964775915549609775} + m_Layer: 0 + m_Name: Cube (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!108 &7365760829012495416 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8823705289361188576} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 0 + m_Color: {r: 0.24126458, g: 1, b: 0, a: 1} + m_Intensity: 71.94863 + m_Range: 10 + m_SpotAngle: 79.92309 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 0.917 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 1 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: -431602080, y: -431602080, z: -431602080, w: -431602080} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 0 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!33 &7653247284745782390 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8504963404592668053} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &7659408397790067796 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6163529519532588936} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.5, y: 2, z: -2.5} + m_LocalScale: {x: 2, y: 4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7678397962808843124 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7945227134465128003} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &7945227134465128003 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2532214595042140878} + - component: {fileID: 7678397962808843124} + - component: {fileID: 9181637969281536300} + - component: {fileID: 2932963878553811337} + m_Layer: 0 + m_Name: Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &8046425854238307997 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2462461463155272272} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!23 &8188205864735557659 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2166082154144361193} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!108 &8388378193671957909 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4651778334697894093} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 0.8461648, b: 0, a: 1} + m_Intensity: 47.746475 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 0.993 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 1 + m_AreaSize: {x: 0.5, y: 0.5} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: -431602080, y: -431602080, z: -431602080, w: -431602080} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 2 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!114 &8388378193671957910 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4651778334697894093} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!4 &8421560447745624478 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6321587644014348277} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.8700008, y: 1.27, z: -0.13999999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8421560447745624479 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6321587644014348277} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!1 &8504963404592668053 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8639481702839641202} + - component: {fileID: 7653247284745782390} + - component: {fileID: 1605641141031658456} + - component: {fileID: 540499354856750645} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &8617595329683034408 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8928246947585449534} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &8639481702839641202 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8504963404592668053} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.5, y: 2, z: -2.5} + m_LocalScale: {x: 2, y: 4, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8679978060537002285 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2856650062826844497} + - component: {fileID: 1570675156920661301} + - component: {fileID: 8679978060537002286} + m_Layer: 0 + m_Name: Point Light (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &8679978060537002286 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8679978060537002285} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!1 &8823705289361188576 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4801559507434063172} + - component: {fileID: 7365760829012495416} + - component: {fileID: 8823705289361188577} + m_Layer: 0 + m_Name: Point Light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &8823705289361188577 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8823705289361188576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!1 &8928246947585449534 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4559612831519568058} + - component: {fileID: 3710372955477937279} + - component: {fileID: 8617595329683034408} + - component: {fileID: 1371860413889496614} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!65 &8942702416144025576 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 374602141648391824} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &9059298711009972520 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7151793788623955431} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &9092851139533727843 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6969514674424780300} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.1648293, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6634170014767251332} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &9181637969281536300 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7945227134465128003} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, 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: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 933834004} + - {fileID: 6634170014767251332} + - {fileID: 5756054324564951361} + - {fileID: 770229557} + - {fileID: 2088962500} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.unity.meta new file mode 100644 index 00000000000..1d4dcbec505 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 911c47a2fe05f9846b9eca70cf7757ee +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellData.bytes b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellData.bytes new file mode 100644 index 00000000000..f90b958e137 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellData.bytes differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellData.bytes.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellData.bytes.meta new file mode 100644 index 00000000000..5a5c26a8187 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellData.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d32898ed01596e245aba76ef1f07014d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellOptionalData.bytes b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellOptionalData.bytes new file mode 100644 index 00000000000..ae0ba103e84 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellOptionalData.bytes @@ -0,0 +1 @@ +†…‡††‡††‡†‡††‡†…‡†„ˆ€„ƒ‰€ƒƒ‰€ƒ‚‰€‚ЀЀˆ†~†Š‚}‚…„ˆ……ˆ……ˆ…†€‡…†€‡„‡€†ƒˆ€…‚ˆ€„‚ˆ€„‰‚€‰€‰‡„~†ˆ†~…‰}‚‰„~ƒƒƒ‰„ƒ€‰„„€ˆƒ…€ˆƒ…€ˆƒ†‡‚††‚‡„‚‡„‡ƒ€‡‡†ƒ‡†ƒ~†‡„~†ˆ„~…ˆ„~…‡†††‡……ˆƒ…ˆƒƒ‰‚‰€‰†‚~†ˆ‚~„‰„~ƒ‚‰‚‚€‰‚‚€‰‚ƒ€‰‚ƒ€‰‚ƒˆ„†„‚…„‚…€…‚ƒ€„‚…‚ƒ~‡ƒ‚~‡ƒ‚ˆƒ‚ˆƒ‚ˆƒƒ€ˆ‚„€‡‚……‚……†‚€†€†„~†„~…„~†„‚‡„‚‡„‚†…„…‚†€„‚†€„~†€‡„~†‡††‡†††‡…†‡…†‡……ˆ„ƒ‰ƒƒ‰ƒŠ€Š€~Š~ˆ††±«{ŸŠ‚}‚†„~‡‡…‡†…‡†‡‡†‡‡…‡†„ˆ€…ƒˆ€„ƒˆ€„‚‰€‚€‰€Š€ˆ„~…‰„~„‰‚~ƒŠ€}€„ƒˆ„ƒˆ…„ˆ„…€ˆ„…€ˆ„†€‡ƒ‡€†‚‡„‚‡„ˆƒ€ˆˆ†‚~†‡ƒ~††‡‡‡~„ˆ‚~„Š}‚‰ƒ‚‰‚‚€‰‚ƒ€‰‚ƒ€‰‚ƒ€ˆ‚„‡…………€…‚ƒ€…‚…‚ƒ~‡„~†„‚~‡„‚‡„‚‡„ƒ‡„„€‡ƒ…€…ƒ…€…†‚…€€€†€€„€~„„€~……~……‚~„…‚~„€€€€€€„„~€ˆ†~…ˆƒ~…‰…~…ˆ…~„ˆ…~„‡‡~„‡‡~„„ˆ‚„ˆ‚€‰€‰€ƒ‰Š‚}‚Š€}€ˆ„~†‡…~†‡„~†‡…~†‡…~†‡†…†ˆ„„ˆƒ„ˆƒƒ‰‚‰€‰€‰ƒ~„‰„~„‰}Š}…ƒ‡…ƒˆ†„‡†…‡†…‡…‡†…‡€†ƒˆ€„ƒˆ€„‚ˆ€‚€‰€‰€†‚~†‡ƒ~†‰„~„‡€}€ˆ€}€Š}‚ˆƒ‚ˆƒ‚‰ƒƒ€‰ƒƒ€‰ƒƒ€ˆ‚„‡…………€…ƒ€……ƒ~†„~†„‚~†„~†„~†€‚…„†„†€†„†€†‚‰‚~‰€}„„‡„€}„}„€~‚…€~‚…€~‚€€„}†{ˆ†~†Š‚}‚Š}‡„~†ˆ†~…‰}‚‰„~ƒŠ}Š~}~†ƒ‡†ƒ~†‡„~†ˆ„~…ˆ„~…‡†††‡……ˆƒ…ˆƒƒ‰‚‰€‰†‚~†ˆ‚~„‰„~ƒ‡}‰~}~Š}ƒ~‡ƒ‚~‡ƒ‚ˆƒ‚ˆƒ‚ˆƒƒ€ˆ‚„€‡‚……‚……†‚€†€†„~†„~…„~†„‚‡„‚‡„‚†…„…‚†€„‚†€„~†€ƒ}„}~…}~†~~†~~†…‡††‡††‡†‡††‡†…‡†„ˆ€„ƒ‰€ƒƒ‰€ƒ‚‰€‚ЀЀ‡††Š}…ƒˆ†…ˆ……ˆ…†€‡…†€‡„‡€†ƒˆ€…‚ˆ€„‚ˆ€„‰‚€‰€‰ˆ„~†ˆ…~…Š}€„ƒ‰„ƒ‰„„€ˆ„…€ˆ„…€ˆƒ†‡‚††‚‡„‚‡„‡ƒ€‡‡†ƒ~†‡ƒ~†ˆ„~†ˆ„~…ˆ„~…‡†††‡……ˆƒ…ˆƒƒ‰‚‰€‰ˆ€}Š€}€Š‚}‚‚‰‚‚‰‚‚€‰‚ƒ€‰‚ƒ€‰‚ƒˆ„‡„‚…„‚…€…‚ƒ€„‚…‚„~†„‚~‡ƒ‚~ˆƒ‚ˆƒ‚ˆƒƒˆƒ„€‡‚……‚……†‚€†€†…~††€}†€}‡€}‚‡€}‚…€}ƒ†‚~„‚†€„‚†€„~†€~‡„~†‡††‡†††‡…†‡…†‡……ˆ„ƒ‰ƒƒ‰ƒŠ€Š€~Š~†‡‡Š‚}‚†„~‡‡…‡†…‡†‡‡†‡‡…‡†„ˆ€…ƒˆ€„ƒˆ€„‚‰€‚€‰€Š€‰‚}ƒ‰„~„ˆ„~†Š~}~„‚ˆ„ƒˆ…„ˆ„…€ˆ„…€ˆ„†€‡ƒ‡€†‚‡„‚‡„ˆƒ€ˆˆ‡‚~„ˆƒ~…‡††ˆ}~ˆ~ƒŠ€}€‚‰ƒ‚‰ƒ‚‰‚ƒ€‰‚ƒ€‰‚ƒ€ˆ‚„‡…………€…‚ƒ€…‚…‚ƒ~……~……~†„‚~‡„‚~‡„‚‡„„‡ƒ…€…ƒ…€…†‚…€€€†€€„}€‚€~„}~‡‚~‚‡‚~‚‡‡~ˆ…~…ˆƒ~…‰…~…ˆ…~„ˆ…~„‡‡~„‡‡~„„ˆ‚„ˆ‚€‰€‰€ƒ‰Š‚}‚ˆ„~†‡…~†‡„~†‡…~†‡…~†‡†…†ˆ„„ˆƒ„ˆƒƒ‰‚‰€‰€Š}‚Š‚}‚‰}}{Šƒ~ƒ†‚~‡†ƒ~‡†ƒ‡†…‡†…‡…‡†…‡€†ƒˆ€„ƒˆ€„‚ˆ€‚€‰€‰€ˆ}‚ˆ‚}„Š‚}‚‰}}|ˆ€~‰~ƒ~ˆ„‚ˆƒ‚‰ƒƒ‰ƒƒ‰ƒ„€ˆ‚„‡…………€…ƒ€……„~ƒ…€}ƒ…~„…~„…~„‚€‚†„~‡„†€†„†€†‚‰‚~‰€}„„‡ƒ€~‚„~~|ƒ~}†~†~€}‡‡††Š}ˆ„~†ˆ…~…Š}€Š}Š}†ƒ~†‡ƒ~†ˆ„~†ˆ„~…ˆ„~…‡†††‡……ˆƒ…ˆƒƒ‰‚‰€‰ˆ€}Š€}€Š‚}‚ˆ}‚ˆ}~‰~~~„~†„‚~‡ƒ‚~ˆƒ‚ˆƒ‚ˆƒƒˆƒ„€‡‚……‚……†‚€†€†…~††€}†€}‡€}‚‡€}‚…€}ƒ†‚~„‚†€„‚†€„~†€~ƒ}€‚~|ˆ€}€„~„~}†„ˆ†‡‡‡„‡†„ˆ…„‰‡†‡‡†‡…‡€‡„ˆ€†„ˆ€†ˆƒƒƒ€Šƒƒ€Š…†€ˆƒ„‰ƒ†‡ƒ†‡†‚…€†‚‚‡‚~†ˆ†~…ƒŠ€ƒ‚‰‚‚Šƒƒ€Šƒƒ€Š‚‚€Š‚„‰‚ˆ‚ˆ‚ƒ‚‚€~†ƒ~ˆƒ~ˆ‡„~‡„ƒ‰ƒ‚€‰ƒ‚€‰‚„ˆ€ƒ‚…‡‚€€‰†…ˆ†…ˆ‰‚}„Š}~€…‚Š€‚‡„~‡„ˆ€†„ˆ€†‚‰„‚Š€ƒ{‰z„†‡„„€‰ƒ„€‰…‡€‡…‡€‡„‰€…ˆ„~‡‚}…~†‚€~ˆ‚‰‚‰„ƒ‰„ƒ‰„„€‰‚ƒ€Š‚ƒˆ‚ƒˆ‚‚‡€…‚ƒƒ‚~€‰‚€†‚€†ˆƒ~…ˆ„~…ˆ†~†ˆ†~†ƒƒ€‰„‡„‚~…‚~†‚‚€Š‚‰‚‰…„‰ˆ„~†‡‡†ƒƒ€Š……€ˆ†ˆ††ˆ†„ˆ€†ƒ‰€ƒ~Š}€~ˆƒ~ˆ€€‰€€‰‚ƒ€Š‚€‰‚€‰‚††‚‰„€‰‚‰ƒ€}‚„…€ˆ„…€ˆ|…„‰…Œ‘„|‰‘„|‰Š…}ˆ‰‘†…€}ƒ„€}„‡††‡††„~‡ˆvx‚€€ƒ€}€€‡‚~†ˆ†~…ƒŠ€ƒ†}~‚€~†ƒ~ˆƒ~ˆ‡„~‡„ƒ‰ƒ‚€‰ƒ‚€‰‚„ˆ€ƒ‚…‡‚€€‰†…ˆ†…ˆ‰‚}„Š}~€…€€~ˆ„‚‰yw~‚yw~‚~€€Í€€Í€€ÍÍÍ~~Í~~Í}}Í}}Í}}Í}}Í}}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͂̀€Í€€Í€€Í€€ÍÍ~~Í~~Í~~Í~~Í}}~Í~~Í€€ÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ÍÍÍ€€Í€€Í€Í€ÍÍÍ~~Í~~~Í~~Í‚‚͂̀€‚Í€€Í€€ÍÍ~~Í}}Í}}Í}}Í||}Í||Í‚‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚‚Í‚ÍÍÍ€€Í€€€Í€Í€ÍÍÍ̓ƒ„Í‚ƒÍ‚‚Í‚‚ƒÍ‚‚ƒÍÍ€€‚ÍÍÍ€ÍÍ~̓ƒ̓ƒÍ‚ƒƒÍ‚‚Í‚‚̓̀€Í~~Í~~ÍÍ~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~Í~~Í~~Í}}Í}}Í}}Í||Í|||Í||ÍÍwÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€Í€€ÍÍÍÍ~~Í~~Í~~Í}}~Í}}}Í}}~Í€€ÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚‚ÍÍ€€Í€€Í€€ÍÍÍÍ~~~Í~~~Í~~~Í‚‚ÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ƒÍ‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒ„Í‚‚ƒÍ‚‚͂͂̀€Í€€Í€Í€Í€ÍÍ̓ƒƒÍƒƒÍ‚ƒÍ‚‚Í‚‚͂̀€€ÍÍÍ~~Í€Í~̓„ƒÍƒ„‚̓„Í‚€ƒÍ‚€ƒÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}}Í}}Í||Í||Í{{Í{{Í||ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€Í€€Í€€ÍÍÍÍ~~Í}}Í}}Í}}Í||Í||Í€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚ÍÍ€€Í€€ÍÍ€Í~~~Í~~~Í~~~Í~~}Í}}}Í‚‚Í‚ÍÍÍÍÍÍÍÍÍÍ̓Í‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒÍ‚‚ƒÍ‚‚ƒÍƒÍƒÍ€Í€€ÍÍÍÍ~Í}̓ƒƒÍƒƒÍ‚ƒ„Í‚ƒ€Í‚ƒ€Í€€}Í€€Í„Í„Í~~„Í~~Í€€~Í„„̓ƒ„̓ƒ„̓‚̓‚Í„Í~ÍÍÍ~~€Í}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚͂̀€‚Í€€Í€€ÍÍ~~Í}}Í}}Í}}Í||}Í||Í‚‚ÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒ„Í‚ƒÍ‚‚Í‚‚ƒÍ‚‚ƒÍÍ€€‚ÍÍÍ€ÍÍ~̓ƒ̓ƒÍ‚ƒƒÍ‚‚Í‚‚̓̀€Í~~Í~~ÍÍ~ÍÍ„„Í„ƒ„̓‚Í‚ƒÍ‚ƒÍÍÍ|Í|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍŠ}Áxtx‡xxŠ}Š~}~ˆz~xˆy~y…y€v†xw‡}‰~}~Š}†|~w‡{~x‰z~{ƒ{€u…yv…w€w†vy†vy…vz†vyu}zuƒƒu|ƒ}„}~…}~†~~†~~„}~wƒ}v„|v„{v„{v€~€~€€€‚|€t‚|€t‚|€u‚{v‚{vz‚x€z‚{|€v|€vyyz‚~w‚€Š}}}¹bvj³V{Y§PQ‰}}|Š~}~‡yx‰y~z…x€v†wwªL[…uy…uy…uz†vy†vyƒu{yu„‡~}}ˆ}~|Š}}~†{~w…zv‡xxƒz€uƒzv„x€wƒwyƒwy‚vzu|‚w{‚w{v€{‚u{~t€€„~}|„~~{…~~{…~~{…~~{€~€„„}}~ƒ‚}uƒ|uƒ|uƒ{€uƒ{€u~~ƒy{‚z€y}€t|u|v{‚w{‚wy‚y€{‚{yzyz€z‚|€|‚yz‚‰{~{‡xx‡wx†vx£G^†vy†vy‚t|‚t|y=‚„‰|~{‰{~{†yw‡xx„x€v…w€w„v€x„u€z„u€zƒu€zu|ƒv€yƒv€yt€~~t}t†}~yˆ|~zˆz~y†{w…yv†wwƒz€uƒy€vƒyw‚xx‚xx‚wy€v‚}ƒxwƒxw‚zw€v‚}ƒ~~y„}~y„}~x…|~x…|~x€~~€~~|‚}€‚}u‚|€tƒ{€u‚{u‚{uƒ~‚‚~‚~z€z€y{„}t€}u|v€|‚w€|‚w€|‚z€|‚{{w{w€y{€{‚{~{‚€Áxtx‡xx†ww…vy…vyƒu€yt€}‹B†q‹B†qt€|}t€ƒu€zˆz~xˆy~y…y€v†xwƒyv„x€w„w€w‚vy‚vyƒu€zu|€u~€u~t}t‚t€}†|~w‡{~x‰z~{ƒ{€u…yv…w€w†vy†vy…vz†vyu}zuƒƒu|ƒzu‚zv‚ywy‚xy‚xy‚z€x‚|ƒy€vƒy€vw{ww‚€„}~wƒ}v„|v„{v„{v€~€~€€€‚|€t‚|€t‚|€u‚{v‚{vz‚x€z‚{|€v|€vyyz‚~w‚€|u€}u|v€{‚x€{‚x€|‚z€z‚|€}‚w€}‚w€y‚{€}‚|z‚€ºaxa‡xxŠ}Š}ˆy~x‰y~z‡z~wˆx~xˆ}‚ˆ}~‰~~~‡{~yˆ|~zŠ|}|…{~v…zv†xw‡xx‡xxˆy~x†vy†vy†vy‚u}}u€€u~ƒ}€‚~|ˆ€}€„~„~}„}~wƒ}~xƒ}~x„}~x„}~x€€„z{„z{€}t‚|u}€u}€u}€u|€v|w‚{€v‚{€vyy€y}x‚€Š{}{³V{Y«N|b«N|b³Uz`³Uz`u~€u~‰}ˆy~y‡yxˆy~y†yw†xw‡wx‡wx†vy…vz…vz…vzƒu|€t~ƒt{‰}}|‰|~{‰{~{†{~wˆz~y‡xx„z€u„{v†yw„x€w„x€w…x€wƒx€xƒx€xƒx€x‚v€{u|u€ƒ~~|„~~„~~„~~}„~~}‡‡}€~‚}wƒ}~wƒ}~wƒ|vƒ|vƒ{zƒ{z||€}}‚|u}€u‚{€u|v|v|€v‚zwzxzx€z‚z€z‚zz‚~Š}‡wxˆx~x†wy†wy†vx‡wxƒu{ƒu{ƒu{|>‚‚‰~}}Š}}}‰|~z‡wx„y€v„x€w‡xw†xw†xw…xw„v€x„v€y„v€yƒu€{t€t†{~x‡z~yŠ€}€…|~x†zwˆy~x…zuƒ{uƒz€u„y€v„y€v„y€v„x€vƒxxƒxx‚xw€v|~v‚ƒ~~yƒ}~z„~~{„~~{„~~{~y}~‚}vƒ}vƒ|vƒ{€vƒ{€v„„‚|€y‚|€y|€z€|€|„‚|u‚|€u}€u|€v|€v|v‚{v{v{v€zz€z‚{z‚ºaxa‡xx†wx†yv†ww…vy…vy„v€y‚t€|‘D…k‘D…kt€|t€~‚u€|ˆy~x‰y~z‡z~wˆx~x„|v„y€u…x€v…yv…yv…w€w‚vz€u}€u}t€u}€t~‡{~yˆ|~zŠ|}|…{~v…zv†xw‡xx‡xxˆy~x†vy†vy†vy‚u}}u€€u~„z€u‚{€uƒz€u‚xy‚xyƒyw‚xxƒywƒyww{w‚w‚€„}~wƒ}~xƒ}~x„}~x„}~x€€„z{„z{€}t‚|u}€u}€u}€u|€v|w‚{€v‚{€vyy€y}x‚€}€t‚|€u|u}u}u{w{x€|‚w€|‚w€z‚|€|‚|z‚€†}~†{~w‡|~x‡|~xˆ{~y‡xx‡xx‡xx‡xy†vy†vyu}u}}t€€~ˆ„‚‰yw~‚yw~‚~€‚}u‚}|‚}|€€€€€€€~y~~xƒ}~wƒ|uƒ|u‚}v‚|€u‚z€v‚z€v‚yx€y{y‚€«N|b«N|b³Uz`³Uz`u~€u~ˆy~xˆy~xˆy~x†vy†wy„uz„uzƒu|€t~ƒt{‰}}|…{~w†{~v…{~w…{~w†yw„yv„x€w„x€w‚u€{€u}€u~ˆ}}{„€}„ˆz~w‚~v„„€‡…~~z‚}|~~z‚~}z‚~}z€~~~}‚~|‚~|€}}~~~~w‚}~vƒ|uƒ|uƒ|uƒ{u|€u‚{v‚{vzy€y‚{y‚~‡ywˆx~x‡xw‡xw†vx‡wx…vy…vyƒu{¥H`†yv‡xw†xw†xw…xv„v€y„v€x„v€x„v€y‚t€|€t~‡|~y‡}}{ˆ|~z†zv„|u„{u…zu…zu„zu„y€vƒxxƒxx‚wyw|~v‚…}~x…}~x€~€†€~„~€~€‚~}z~~x~~x‡|~x‡|~xƒ~~yƒ~yƒ}zƒ}z}€{€}~€€€~~vƒ|u‚}uƒ{€uƒ{€u€}€t‚|u‚zw‚zw{x€y‚}z‚‡xw†yv†ww†ww†ww…wx„u€zt€}t€|~t€€„|v‡zw†zv…yv…yv…w€x„v€xƒv€zƒv€z€u}‚vzu†{~w‡|~x‡|~xˆ{~y‡xx‡xx‡xx‡xy†vy†vyu}u}}tƒ|uƒ{uƒ{uƒz€uƒz€u„x€v‚yw‚xy‚xyxzx‚~w‚€‚}u‚}|‚}|€€€€€€€~y~~xƒ}~wƒ|uƒ|u‚}v‚|€u‚z€v‚z€v‚yx€y{y‚€€tƒ|u}€t|€t|€t€}€t|v€}‚x€}‚x{‚|€|‚z{‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍ€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ƒÍÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚ÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚ÍÍ~Í~Í}€Í~~Í~~Í~~Í}}|Í||}Í}||ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ„„Í„ƒ„̓‚Í‚ƒÍ‚ƒÍÍÍ|Í|ÍÍÍ̓ƒ̓ƒÍ‚‚ƒÍ‚„Í‚„ÍÍÍ~Í~ÍÍÍÍ‚‚„Í‚„Í‚ƒÍ€‚Í€‚͂̀‚̀̀ÍÍÍ~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍuÍÍÍÍÍÍÍÍÍÍÍ}}ÍÍÍÍÍÍÍÍÍÍÍÍ~ÍÍÍssÍssÍÍÍwwÍwwÍ{{ÍÍ{{ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍ€€Í€ÍxÍ}~Í}~Í~~Í}}~Í~}}Í~}}Í}}|Í||Í}||ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ÍÍ~ÍÍÍÍÍÍÍÍÍÍ‚‚ÍÍÍÍÍÍÍÍÍÍÍ͂̀Í‚Í~€‚Í~€‚Í~€€Í~€ÍÍÍ~~~Í~~~Í}}~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ„„‚̓ƒ„̓ƒÍ‚‚Í‚‚Í̓ÍÍÍÍ€€ÍÍ‚ƒƒÍ‚ƒ„Í‚ƒ„̈́̈́̀̀̀̀ÍÍ€ÍÍ‚„Í‚ƒÍ€‚Í€€‚Í€€‚Í̀̀€Í€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€Í~ÍuÍ}~€Í}~€Í~~Í~~Í||}Í||}Í||ÍlltÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€ÍÍÍÍÍÍÍÍÍÍÍÍ€ÍÍÍÍÍÍÍÍÍÍÍÍ€€Í€Í€€Í}€€Í}€€Í}€Í}~~Í~~Í~~Í|}~Í}}}Í}}}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ÍÍ€ÍÍÍÍÍÍÍÍÍÍ‚‚Í€‚Í€ÍÍÍÍÍÍÍÍÍ̀̀‚‚̀̀̀̀Í~€€ÍÍÍ€Í~~~Í~~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ„ƒ̓ƒ̓ƒÍ‚‚‚Í‚‚‚͂͂ÍÍÍ~~€ÍÍÍ‚ƒ„Í‚‚„Í‚„Í€‚Í€‚Í‚ÍÍ€€Í€€Í€€ÍÍÍ‚ƒÍ€‚Í€‚̀̀Í̀̀€€Í€€€Í€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€ÍÍÍ~~Í~~Í~~Í||}ÍuvÍuvÍ}}}Í|}}Í}}}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍ€ÍÍÍÍÍÍÍÍÍÍÍÍ€‚‚ÍÍ€Í~€€Í~€€Í~Í~~Í}~~Í}~~Í}}}Í}~~Í}}}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚ÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚ÍÍ~Í~Í}€Í~~Í~~Í~~Í}}|Í||}Í}||Í€‚Í€‚Í‚ÍÍÍ€€Í~€Í€Í€Í~Í~~~Í~~~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒ̓ƒÍ‚‚ƒÍ‚„Í‚„ÍÍÍ~Í~ÍÍÍÍ‚‚„Í‚„Í‚ƒÍ€‚Í€‚͂̀‚̀̀ÍÍÍ~Í‚ƒÍ€‚Í€‚ÍÍ̀̀€Í€€€Í€€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‰‚‚€‰‚‚€‰‚ƒ€‰‚ƒ€‰‚ƒˆ„†„‚…„‚…€…‚ƒ€„‚…‚}}€‰}}€‰}}€‰}|ˆ}|ˆ~|‡~|†~|‚…~|‚…~|‚ƒ|‚|‚ƒ~‡ƒ‚~‡ƒ‚ˆƒ‚ˆƒ‚ˆƒƒ€ˆ‚„€‡‚……‚……†‚€†€†||ˆ{|‡||‡|{‡|{‡}{€‡}{€†~{…~{…~{‚{€{„~†„~…„~†„‚‡„‚‡„‚†…„…‚†€„‚†€„~†€y}~„x|~„x|~„y{ƒy{ƒ{{‚}|‚~€ƒ~€ƒ€€‰€€‰€‰€‰€‰€ˆ€‡€‚…€‚…‚ƒ‚‚‚{|‰|{€‰|{€ˆ|z€ˆ|z€ˆ|z‡}z†}z„}z„~y‚ƒy‚y‚€€ˆ€ˆ€ˆ€ˆ€ˆ€€‡€€‡€…€…€‚€z|~†z{~‡z{‡zz‡zz‡{z†{y€†|y€„|y€„~x‚~x€x~…~~†}~…{~ƒ{~ƒ~~‚~€€‚€€‚‚w|~„w{~„w{~ƒxz~ƒxz~ƒzz~‚|z~‚}y€‚}y€‚}~€€€‰~~€‰~€‰‰‰~ˆ‡~‚…~‚…‚ƒ~‚‚z{ˆzz€ˆ{y€ˆ{y€‡{y€‡{x€‡|x…}x„}x„~w‚~w€w~~ˆ}}ˆ~}ˆ~}€ˆ~}€ˆ~}€‡}€‡~…~…~‚~€~x{~†yz†yz†yy…yy…zx…zx€…|w€„|w€„}w€‚~w€€w€{~~…{}~…z}~„z|„z|„||ƒ}‚€ƒ€ƒ‚~v|~ƒv{~ƒw{~ƒxz~‚xz~‚zz~‚{z~}z~€}z~€|~€|~}}}€‰}}€‰}}€‰}|ˆ}|ˆ~|‡~|†~|‚…~|‚…~|‚ƒ|‚|‚yyˆyyˆzx€‡zx€†zx€†{w€†|w…}wƒ}wƒ}v‚~v€v||ˆ{|‡||‡|{‡|{‡}{€‡}{€†~{…~{…~{‚{€{xz~…xz~…xy…xx…xx…yx„zw„{v‚{v‚}v~v€vy}~„x|~„x|~„y{ƒy{ƒ{{‚}|‚~€ƒ~€ƒv{~ƒv{~ƒw{~‚xz~‚xz~‚zz~|z~}z~€}z~€{~€{€€|‚‰ƒ‚‰‚‚€‰‚ƒ€‰‚ƒ€‰‚ƒ€ˆ‚„‡…………€…‚ƒ€…‚…‚|}‰}|‰}}€‰}|€ˆ}|€ˆ}|ˆ}{†~{…~{…~{‚‚|‚{‚ƒ~‡„~†„‚~‡„‚‡„‚‡„ƒ‡„„€‡ƒ…€…ƒ…€…†‚…€€€†€€{}~†{|~†{|†{{†{{†|{†}|€†~|€…~|€…~|‚||€„€~„„€~……~……‚~„…‚~„€€€€€€„„~€x~~‚w}~ƒx}~‚y|~‚y|~‚z{~‚}{}~}~{‚€€~€€‰€€€‰€‰€‰€‰€ˆ€‡€‚…€‚…€‚ƒ‚‚‚‚{|ˆ{{ˆ{{€ˆ|z€ˆ|z€ˆ|z‡}y†}y„}y„~y‚~yy~†€~‡‡‡‡€~†€€…€€€„€€€„€‚€y|~†y{~…y{~†yz…yz…zz…{y…|y€„|y€„}x€‚y€y€~~„~~„|~~ƒ|~ƒ|~ƒ~~‚€}~~~~|€€€~v}~‚v|~‚w|~‚x|~‚x|~‚z{~}{~€|~~|~~€€~€~~‰~~‰~€‰~€‰~€‰~ˆ~‡~‚…~‚…~‚ƒ‚~‚yzˆzzˆzy€‡{y€‡{y€‡{x€†|x€…|w„|w„}w‚~ww}~~‡}~~‡}}‡~}†~}†~}†}€†~€…~€…~‚~€x{~…y{~†xz~…yz…yz…yy„zx„{wƒ{wƒ}w~w€wz~~ƒz~~ƒy}~ƒz}~ƒz}~ƒ||‚~|}~}~}~€€€€~v}~v|~‚w|~‚x{~x{~z{~|{~|€|€~€~€€~~|}‰}|‰}}€‰}|€ˆ}|€ˆ}|ˆ}{†~{…~{…~{‚‚|‚{‚yz‡yy‡yy‡zx€†zx€†zw€†{v€„|v€„|v€„}v€‚~v€u€{}~†{|~†{|†{{†{{†|{†}|€†~|€…~|€…~|‚||€w{~…wz~„wz~„xy~„xy~„yy~ƒyx~ƒ{w‚{w‚}w~w€wx~~‚w}~ƒx}~‚y|~‚y|~‚z{~‚}{}~}~{‚€€~u}}‚v|~‚w|~x|~x|~z{~|{~{~€{~€|~{|‚ˆƒ‚ˆƒ‚‰ƒƒ€‰ƒƒ€‰ƒƒ€ˆ‚„‡…………€…ƒ€……|}ˆ||ˆ||ˆ||€ˆ||€ˆ}{€‡}{†~{…~{…~{‚{€{ƒ~†„~†„‚~†„~†„~†€‚…„†„†€†„†€†‚‰‚~‰€}„„‡z}~…z|~…z|~„z{~„z{~„||„}|…~}€„~}€„~}€}€~}„€}„}„€~‚…€~‚…€~‚€€„}†{x~~w~~w~~x}~€x}~€z}~€}}~€~~z€…€€~€€‰€€‰€€‰€€‰€€‰€€€ˆ€‡€…€…€‚‚‚‚‚€‚‚z|ˆ{{ˆzz‡{z‡{z‡{z€‡|y€†}y„}y„~y‚~xx~†€~†~~…}~„}~„ƒ€„€€€„€€€„€€€€€~€x|~…x|~„x{~„y{~„y{~„zz~„zz„{y„{y„}y€y€~z~}}~|~{~~{~~}~~€€~~€~~|~„}~{€~v~~€v~~w~~€x}~€x}~€z}~€|}~€}~€ƒ€}€~€~€~~‰~~‰~~€‰~~€‰~~€‰~~€ˆ~‡~…~…~‚ƒ~‚~‚y{‡yz‡yy‡zy‡zy‡zx€†{x€…|w€„|w€„}w€‚~w€w|}~†{}~…{}~…|}„|}„~}„}„~€„~€„€€~w{~„x{~„wz~ƒxz~ƒxz~ƒyz~ƒyy~ƒ{x~‚{x~‚}x~€x~y~z~y~~x~~y~~y~~{~~€~}~€€~€~z}ƒ~|€€}u~}v~~€w~~x}~€x}~€z}~€|}~€}~€}~€€}€€€}€€}|}ˆ||ˆ||ˆ||€ˆ||€ˆ}{€‡}{†~{…~{…~{‚{€{yz‡yy†xx†yx†yx†zw…zw€…|v€ƒ|v€ƒ}v€‚~v€€v€z}~…z|~…z|~„z{~„z{~„||„}|…~}€„~}€„~}€}€~}v{~ƒw{~„wz~ƒxz~ƒxz~ƒyy~‚yy~{y~€{y~€|y~€~z~€z~x~~w~~w~~x}~€x}~€z}~€}}~€~~z€…€€~u~}€v~}€w~~€x}~x}~z}~€|}~€~}~€~}~€}~€|€{ƒ~‡ƒ‚~‡ƒ‚ˆƒ‚ˆƒ‚ˆƒƒ€ˆ‚„€‡‚……‚……†‚€†€†||ˆ{|‡||‡|{‡|{‡}{€‡}{€†~{…~{…~{‚{€{„~†„~…„~†„‚‡„‚‡„‚†…„…‚†€„‚†€„~†€y}~„x|~„x|~„y{ƒy{ƒ{{‚}|‚~€ƒ~€ƒƒ}„}~…}~†~~†~~x~~w~~w~x~x~z~}€~‚€‚€‚~€€ˆ€ˆ€ˆ€ˆ€ˆ€€‡€€‡€…€…€‚€z|~†z{~‡z{‡zz‡zz‡{z†{y€†|y€„|y€„~x‚~x€x~…~~†}~…{~ƒ{~ƒ~~‚~€€‚€€‚‚w|~„w{~„w{~ƒxz~ƒxz~ƒzz~‚|z~‚}y€‚}y€‚}~€€~~~}~~|~z~~z~~|~€~‚‚€€€}‚~v}~v~v~x~x~z€~}~€€~€~€€~€~~ˆ}}ˆ~}ˆ~}€ˆ~}€ˆ~}€‡}€‡~…~…~‚~€~x{~†yz†yz†yy…yy…zx…zx€…|w€„|w€„}w€‚~w€€w€{~~…{}~…z}~„z|„z|„||ƒ}‚€ƒ€ƒ‚~v|~ƒv{~ƒw{~ƒxz~‚xz~‚zz~‚{z~}z~€}z~€|~€|~}z~~y~~x~y~y~{~~~~€€‚„‚}ƒ‚~€u}v~v€~x~x~z~|~€~~€~~€€||€|||ˆ{|‡||‡|{‡|{‡}{€‡}{€†~{…~{…~{‚{€{xz~…xz~…xy…xx…xx…yx„zw„{v‚{v‚}v~v€vy}~„x|~„x|~„y{ƒy{ƒ{{‚}|‚~€ƒ~€ƒv{~ƒv{~ƒw{~‚xz~‚xz~‚zz~|z~}z~€}z~€{~€{€€|x~~w~~w~x~x~z~}€~‚€‚€‚~u}v}w€~x€~x€~z~|~€~~~~}~€€|~€|~~‚‰‚‚‰‚‚€‰‚ƒ€‰‚ƒ€‰‚ƒˆ„‡„‚…„‚…€…‚ƒ€„‚…‚}}‰}}€Š}}€‰}|€‰}|€‰~|ˆ~|†~|‚…~|‚…~|‚ƒ|‚|‚„~†„‚~‡ƒ‚~ˆƒ‚ˆƒ‚ˆƒƒˆƒ„€‡‚……‚……†‚€†€†|}~‡{}~‡|}‡||ˆ||ˆ||ˆ}|€‡}{…}{…~{‚{€{…~††€}†€}‡€}‚‡€}‚…€}ƒ†‚~„‚†€„‚†€„~†€~x~~‚x}~x~~€y~~€y~~€z~~€}~~‚€„€„‚€€‰ЀЀ€‰€€‰€ˆ€‡€‚…€‚…‚ƒ‚‚‚{|‰||€‰|{€‰|{€ˆ|{€ˆ|zˆ}z†}z…}z…~y‚ƒ~y‚y‚€~‡€€~ˆ€€ˆ€ˆ€ˆ€€ˆ€€‡€…€…€‚€z|~†z|~†z{~†z{‡z{‡zz‡{y€†|y€…|y€…}x‚~x€x~~ƒ{~~{~y~€y~€~~€~€€ƒ€€ƒ‚v}~w}~w}~x}~€x}~€y}~€z}~‚|y€ƒ|y€ƒ}~€€‰€Š€Š€‰€‰ˆ‡~‚…~‚…‚ƒ‚‚z{ˆzzˆzz€ˆ{z€ˆ{z€ˆ{y€‡|x†}x„}x„}x‚~ww~~~‡}~~‡~~ˆ~~ˆ~~ˆ~~ˆ~€‡~…~…~‚~€~x|~†y{~†x{~†yz~†yz~†yy†zx…{w€„{w€„}w€‚~w€€w€y~~{~~‚x~~€z~~€z~~€|~~€~~‚€ƒ€ƒ‚~v}~w}~x}~x}~€x}~€z}~‚y|~|{~|{~|~}~}}}‰}}€Š}}€‰}|€‰}|€‰~|ˆ~|†~|‚…~|‚…~|‚ƒ|‚|‚yzˆyyˆyy€‡zx€‡zx€‡zw€†{w€…|w„|w„}v‚~vv|}~‡{}~‡|}‡||ˆ||ˆ||ˆ}|€‡}{…}{…~{‚{€{x{~…w{~…wz~…xy~…xy~…xx…yw„{wƒ{wƒ}v~v€vx~~‚x}~x~~€y~~€y~~€z~~€}~~‚€„€„‚v}~w}~‚w}~x|~x|~y}~z{~||~€||~€~{€{|‚‰ƒ‚‰ƒ‚‰‚ƒ€‰‚ƒ€‰‚ƒ€ˆ‚„‡…………€…‚ƒ€…‚…‚}}‰}}‰}}€‰}|€‰}|€‰}|ˆ}|‡~|…~|…~|‚ƒ|‚|‚ƒ~……~……~†„‚~‡„‚~‡„‚‡„„‡ƒ…€…ƒ…€…†‚…€€€†€€{}~…{}~…{}~†{|~†{|~†||‡}|‡}|€…}|€…~|‚||€„}€‚€~„}~‡‚~‚‡‚~‚‡‡~w~~€v~~€x~€y~~y~~{~~€„~~„~~~~…€€‰€‰€‰€‰€‰€ˆ€‡€‚…€‚…€‚‚ƒ‚‚‚‚{|ˆ{{‰{{€‰|{€ˆ|{€ˆ|z€‡|z†}y…}y…~yƒ~yy€~…€~…€~†~†~†€†€†€€€…€€€…€‚€y}~…x|~„y|~…y|~…y|~…z{†zz†|y€„|y€„}x€‚y€y€|~€{~€yzz~€€~„„z€ƒ‚v~~€v~~w~~y~~€y~~€|~€ƒ}~ƒ}~~€€~‰~‰€‰€‰€‰~ˆ~‡‚…‚…‚ƒ‚~‚y{ˆz{ˆzzˆzy€ˆzy€ˆ{y€‡{x€†|w„|w„}wƒ~ww~~~…}~~…}~~†~~~†~~~†~}†~‡~€…~€…~‚~€x|~„y|~…x{~„x{~…x{~…xz~…yy…{wƒ{wƒ}w~w€wy~~€y~€w~~{~€{~€|~€€~„„|€€‚‚€v~~€w~~€x~~y~~y~~{~~€|}||||~€€}}‰}}‰}}€‰}|€‰}|€‰}|ˆ}|‡~|…~|…~|‚ƒ|‚|‚y{ˆxy‡yy‡yx€‡yx€‡zw€†{w€…|v€„|v€„}v€‚~v€u€{}~…{}~…{}~†{|~†{|~†||‡}|‡}|€…}|€…~|‚||€w|~„w|~„w{~„wz~„wz~„xz~„xy~ƒzw~‚zw~‚|w}w€ww~~€v~~€x~€y~~y~~{~~€„~~„~~~~…€v~~€w~~x~~y~~€y~~€z}~{|~‚}|~€}|~€~}~€{€~|€ƒ~ˆ„‚ˆƒ‚‰ƒƒ‰ƒƒ‰ƒ„€ˆ‚„‡…………€…ƒ€……|}ˆ|}ˆ|}‰||ˆ||ˆ}|€ˆ}|‡~{…~{…~{ƒ{{„~ƒ…€}ƒ…~„…~„…~„‚€‚†„~‡„†€†„†€†‚‰‚~‰€}„„‡{~~‚z~~ƒz}~ƒz}~ƒz}~ƒ|}~„|}…}}€…}}€…~}€}€~}ƒ€~‚„~~|ƒ~}†~†~€}‡w~v~w~y~~y~~}€€€ƒƒ|€€‚~€€€€€ˆ€‰€€‰€‰€‰€€‰€‡€…€…€‚‚ƒ‚‚‚‚z|~‡{|ˆz{ˆ{{ˆ{{ˆ{z€ˆ|y€‡}y…}y…~y‚~xx~ƒ€~ƒ~ƒ~~ƒ~~ƒ~ƒ€„€€€„€€€„€€€€~€x}~ƒx}~ƒx}~‚y}~ƒy}~ƒy|~„z{~…{z„{z„}y€y€~z|~€{~y~yy}€……~y€€v~v~x~y~y~|~‚~€ƒ~~€~€€~~ˆ‰~~‰~~€‰~~€‰~€ˆ~‡~…~…~‚ƒ~‚~‚y{~‡y{~‡yz‡zy‡zy‡zy‡{x€†|w€„|w€„}w€‚~w€w{~~ƒ{~~ƒ|~~ƒ|~~ƒ|~~ƒ~~~„~~…€…€…€€~w}~‚x}~‚w|~‚x|~ƒx|~ƒx|~ƒxz~ƒzy~‚zy~‚}x~€x~y~y~x~w~zz|€„„}}~‚~v~~€v~x~€y~€y~€{~€|~}~}~€}€€}€}€|}ˆ|}ˆ|}‰||ˆ||ˆ}|€ˆ}|‡~{…~{…~{ƒ{{y{‡xz†xy†yx†yx†yx†zw…{v€ƒ{v€ƒ|v€‚~v€€v€{~~‚z~~ƒz}~ƒz}~ƒz}~ƒ|}~„|}…}}€…}}€…~}€}€~}w|~‚w|~ƒw|~‚w|~ƒw|~ƒw{~‚xz~‚zy~zy~|y~€~z~z~w~v~w~y~~y~~}€€€ƒƒ|€€‚~€€€v~€w~~€x~y~~y~~z~€{~~€|~~|~~~}€|€{„~†„‚~‡ƒ‚~ˆƒ‚ˆƒ‚ˆƒƒˆƒ„€‡‚……‚……†‚€†€†|}~‡{}~‡|}‡||ˆ||ˆ||ˆ}|€‡}{…}{…~{‚{€{…~††€}†€}‡€}‚‡€}‚…€}ƒ†‚~„‚†€„‚†€„~†€~x~~‚x}~x~~€y~~€y~~€z~~€}~~‚€„€„‚ƒ}€‚~|ˆ€}€„~„~}w~~v~w~y~y~}~€~‚€~‚€~ƒ‚~ƒ€~ƒ€~€~‡€€~ˆ€€ˆ€ˆ€ˆ€€ˆ€€‡€…€…€‚€z|~†z|~†z{~†z{‡z{‡zz‡{y€†|y€…|y€…}x‚~x€x~~ƒ{~~{~y~€y~€~~€~€€ƒ€€ƒ‚v}~w}~w}~x}~€x}~€y}~€z}~‚|y€ƒ|y€ƒ}~€€|~}z~yyy}€„„‚~€z~€~„~v~~v~~w€~~y~y~|~~€€~€„€~€„~~€~€~~~‡}~~‡~~ˆ~~ˆ~~ˆ~~ˆ~€‡~…~…~‚~€~x|~†y{~†x{~†yz~†yz~†yy†zx…{w€„{w€„}w€‚~w€€w€y~~{~~‚x~~€z~~€z~~€|~~€~~‚€ƒ€ƒ‚~v}~w}~x}~x}~€x}~€z}~‚y|~|{~|{~|~}~}y~~x~~w~~yy|€ƒƒ‚|†€ƒ€v~x€~x€~z~z~{~€|~~€|}|}{€€{€€{€|}~‡{}~‡|}‡||ˆ||ˆ||ˆ}|€‡}{…}{…~{‚{€{x{~…w{~…wz~…xy~…xy~…xx…yw„{wƒ{wƒ}v~v€vx~~‚x}~x~~€y~~€y~~€z~~€}~~‚€„€„‚v}~w}~‚w}~x|~x|~y}~z{~||~€||~€~{€{|w~~v~w~y~y~}~€~‚€~‚€~ƒ‚~ƒ€~ƒ€~v€~~w€~~x€~~y€~y€~{~{~~€}~~€}~~€}|~{€€{~‚‰‚‚Šƒƒ€Šƒƒ€Š‚‚€Š‚„‰‚ˆ‚ˆ‚ƒ‚~{‚…||€Š||€Š~z‚‚~z‚€|y‡|y‡}x‚„|wƒy‚~‚€~†ƒ~ˆƒ~ˆ‡„~‡„ƒ‰ƒ‚€‰ƒ‚€‰‚„ˆ€ƒ‚…‡‚}|Š~z…{~~‡w{~†w{~†z|~ˆ~y‚‚€‰€‰zx€†}wƒx‚€€‰†…ˆ†…ˆ‰‚}„Š}~€…{z€ˆ|}‰yz‰yz‰}x„€w{x‚}x‚}v}~yƒ}~{~~Š}~Š~~€Š~~€Š~‚‚€€‰€‚ˆ€‚ˆ~‚†~|‚ƒ}ƒz|ˆ~~Š~y‚‚~x‚€}{ˆ}{ˆ}w„}vƒx‚€~†~}‰ƒ~‡€€~‡€€~‡€‰‰€‰€‰}}€‰‚…|‚~{z‰{x†}w‚ƒw{~†w{~†y|~‡}x‚zy‡zy‡|w€‚|wƒw‚€~|ˆ~}ˆ‰~~€‰~~€‰}‚„{ƒy‚~xy‚~xu‚~yu„~{|€zz€‰zx€ˆ}z€…|vƒu~€v{€v{z†~y€}x€‰{}~ˆ€€ˆ€€ˆ€Š}|‰}|ˆ}|ˆ~{‚…z‚{{ƒ~}x‚„}x‚ƒ}x‚„x‚€}x‚‚{v†{v†|w„~{‚„w‚z~}‚|~~†{‚€{‚€ƒ‚€ˆ}~Š{{€‰{{€‰{z€ˆ~|‚„y‚{w†|w…yy€…yy€…~v‚}wv~v~yw…}w‚‚u€z|‰}}€ˆ~z‚~z‚~y‚€vƒ~y‚yw‚ywtƒ}|y…~}yyx‡yx€ˆ|t€ƒyy†yy†|u€ƒ|{€ˆvv|uƒ}u‚v~{‚…||€Š||€Š~z‚‚~z‚€|y‡|y‡}x‚„|wƒy‚~vz~†|w…}{ˆ}{ˆ}{ˆyx€‡}z‚…}z‚…v~~uv‚€}|Š~z…{~~‡w{~†w{~†z|~ˆ~y‚‚€‰€‰zx€†}wƒx‚{x€…|x€…u€u€uz~„xx†u~u~zwƒ}v‚u{z€ˆ|}‰yz‰yz‰}x„€w{x‚}x‚}v}~yƒ}~{yv€†yw€…zu€„zu€„zu€„yzˆ{w€†t€t€{u€ƒ}v€t€‚€~ˆ‚‰‚‰„ƒ‰„ƒ‰„„€‰‚ƒ€Š‚ƒˆ‚ƒˆ‚‚‡€…‚ƒƒ‚~|}~ˆ}{ˆ~z‚‚~z‚‚{{€‰zy€ˆy‚y‚|x†~x‚|ƒ€€‰‚€†‚€†ˆƒ~…ˆ„~…ˆ†~†ˆ†~†ƒƒ€‰„‡„‚~|z‡|y‡|y†x‚€x‚€y}~†~x‚€~x‚€~x‚€{{‡|x€…x‚…‚~†‚‚€Š‚‰‚‰…„‰z{‡x|~†{w‡{x€…{x€…zx€†}|‚ƒw|w|~}€€x~~‚†‰}~Š€‚…€‚…ƒƒ€Š~Š~}‰~}‰‚ˆ‚„}ƒ}~~‰x{~‡w{~‡~x‚‚~x‚‚yz€†}x‚|{ˆ|{ˆ{v…~z‚‚x‚~~|‚ˆ}~}„…~…}}}€|~~‡|~~‡~~ˆ||†‚|w†{x‡|x†~w‚‚~w‚‚}w~w€w‚w‚yx†{w€„w‚€„~†|~~…~|‡€‡€‡~~€Š~{‚‚{ƒ~{ƒ~~~€€|€~xz†{y€‡{t€ƒzv€…zv€…|v€ƒu}t€|t€|v€€€‚ˆ~{‚„ŠŠ}|€‰~~‰~~‰~{‚†~z‚ƒ{‚~x{~ˆ}|‰wy‡wy‡zzˆ~w‚€~z‚„~y‚‚t|{‰€}„}{‚…{~}…{~}…~z‚|€z}~‡z}~‡}}ˆ|y€…w€y{ˆ{y€‡|vƒ|vƒ}v‚}v€}z†}z†xx„{x~u||Š}‡{y…€z‚€z‚}}‰~x‚‚x‚yx‚y~~€z€~wx‡xx€‡yv€…zv€…zv€…zy‡t€}x€„}x€„zv€„}u€u€|}~ˆ}{ˆ~z‚‚~z‚‚{{€‰zy€ˆy‚y‚|x†~x‚|ƒ€|}‰}wƒ{|‰yw€†yw€†xx‡~v~y‚ƒ~y‚ƒ}x…}t€x‚€|z‡|y‡|y†x‚€x‚€y}~†~x‚€~x‚€~x‚€{{‡|x€…x‚xzˆv}}ƒ{u€…{z€ˆ{z€ˆ|u‚v{~„uu}w„{wƒ€t€~z{‡x|~†{w‡{x€…{x€…zx€†}|‚ƒw|w|~}€€x~wx†yv€…xw†wx~„wx~„zw…xw†zx~€zx~€zu‚|x~x~€€~ˆƒ~ˆ€€‰€€‰‚ƒ€Š‚€‰‚€‰‚††‚‰„€‰y}~†}z‚‡}{†{}~ˆ{}~ˆ}~Š{z€ˆ{z€ˆ{w†}x„w‚~‚‰ƒ€}‚„…€ˆ„…€ˆ|…„‰…Œ‘„|‰‘„|‰Š…}ˆ‰‘†…y~}€€€Š|z‚|z‚~x}y~x~xx}~„zx…w‚~€}ƒ„€}„‡††‡††„~‡ˆvx‚€€ƒ€}€€y{‰yzˆzy€ˆx{~„x{~„}v‚}z€†‚v€|‚v€|x|}|€z€~~~‡€‰}‚„}‚„‚‚€Šƒƒ€Š~}Š~}Š~}ˆ}‚„ƒ€v|~„}|ˆ}y„}y„vy~†yy€ˆx}x}{v…~y‚‚v‚Š‚}‚„~ƒ„~ƒ…~ƒ}‚~|€}‚|€}‚~€~…}~†}~zw€‡~~Š}{€ˆ}vƒ}vƒ}wƒ}x€~w}w}x{~„yy„u}}‰}~Š}|‰ƒ}€‚ƒ}€‚}|…€‰€yƒ|€yƒ|}|€~|ƒ{€~x{ˆxy†yv†yw€†yw€†ywƒ€u€~z{€~~€y€~‡}~~ˆ€ƒ‚†€ƒ‚†||‰ƒƒ€Š||€‰||€‰~{…}ƒƒy‚|w†}v‚ƒw{~‡~w‚~w‚{w€ƒ~wxw~ƒxw~ƒ{x†}w‚t€~~‰{~}‚}z…}z…}‚~z~€|€}€|€}y~~„{{…z‚zw€†zv€†yyˆ|uƒ|uƒ}u‚{|€ˆ|x…|x…x{~…|yƒt€z}~ƒ{{€‰{{€‰}xƒ}xƒz{…€{€ƒ€x|€x|{{…}|}€~w~|wx‡zu€…zu€„zu€„yx‚zy„zx‚zx‚x|‚{|€~yy}~†}z‚‡}{†{}~ˆ{}~ˆ}~Š{z€ˆ{z€ˆ{w†}x„w‚~zz€ˆ|v„xzˆxzˆ}z†}y†xx†xx†}v€~ut€y~}€€€Š|z‚|z‚~x}y~x~xx}~„zx…w‚~zw…zy€‡|v€„|v€„|v€ƒzw€‡{v€†{v€†zw€…}t€uy{‰yzˆzy€ˆx{~„x{~„}v‚}z€†‚v€|‚v€|x|}|€z€wx†xx~ƒyvƒxwƒxwƒ{xƒwz~„y{~y{~ywƒ}z~€~w€‚€~†ƒ~ˆƒ~ˆ‡„~‡„ƒ‰ƒ‚€‰ƒ‚€‰‚„ˆ€ƒ‚…‡‚}|Š~z…{~~‡w{~†w{~†z|~ˆ~y‚‚€‰€‰zx€†}wƒx‚€€‰†…ˆ†…ˆ‰‚}„Š}~€…{z€ˆ|}‰yz‰yz‰}x„€w{x‚}x‚}v}~yƒ}~{€€~ˆ„‚‰yw~‚yw~‚~€y|~ˆx{~†xw†zu€ƒzu€ƒzx‚{w€{}~{}~{~€‚||€‚{€€~†~}‰ƒ~‡€€~‡€€~‡€‰‰€‰€‰}}€‰‚…|‚~{z‰{x†}w‚ƒw{~†w{~†y|~‡}x‚zy‡zy‡|w€‚|wƒw‚€~|ˆ~}ˆ‰~~€‰~~€‰}‚„{ƒy‚~xy‚~xu‚~yu„~{|€zz€‰zx€ˆ}z€…|vƒu~€v{€v{z†~y€}x€|}‰||€Š}}„||€‰||€‰}|‡}{‚}~}}~}~€‚}}†x‚~vz~…wy‡vz~…xw…xw…{u‚|wx|~x|~y|‚{|zz~}‚|~~†{‚€{‚€ƒ‚€ˆ}~Š{{€‰{{€‰{z€ˆ~|‚„y‚{w†|w…yy€…yy€…~v‚}wv~v~yw…}w‚‚u€z|‰}}€ˆ~z‚~z‚~y‚€vƒ~y‚yw‚ywtƒ}|y…~}yyx‡yx€ˆ|t€ƒyy†yy†|u€ƒ|{€ˆvv|uƒ}u‚v{{ˆy|~ˆz{‡{y€‡{y€‡~y€‚{y{{{{{|ƒ{z„x‚xv…vz~†vy~„xw…xw…yw‚zy~w}~€w}~€xz~‚|y‚€}|Š~z…{~~‡w{~†w{~†z|~ˆ~y‚‚€‰€‰zx€†}wƒx‚{x€…|x€…u€u€uz~„xx†u~u~zwƒ}v‚u{z€ˆ|}‰yz‰yz‰}x„€w{x‚}x‚}v}~yƒ}~{yv€†yw€…zu€„zu€„zu€„yzˆ{w€†t€t€{u€ƒ}v€t€y|~ˆx{~†xw†zu€ƒzu€ƒzx‚{w€{}~{}~{~€‚||€‚{€vz~…vz~‚vy~†xz~‚xz~‚zz~zz~€x}~x}~x‚~~{~y~‚‚Í‚‚Í‚ÍÍÍ€€Í€€€Í€Í€ÍÍÍÍ‚‚€Í‚ÍÍÍÍ€€Í€€ÍÍÍÍÍ̓ƒ„Í‚ƒÍ‚‚Í‚‚ƒÍ‚‚ƒÍÍ€€‚ÍÍÍ€ÍÍ~Í‚ƒÍ‚‚€Í‚‚ƒÍ‚͂̀‚Í€€ÍÍÍÍ~Í~̓ƒ̓ƒÍ‚ƒƒÍ‚‚Í‚‚̓̀€Í~~Í~~ÍÍ~ÍÍ‚‚€ÍÍ€€ƒÍ~Í~Í~Í€~Í~~~Í~~~Í|ÍzÍ}}~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚‚ƒÍ‚‚͂͂̀€Í€€Í€€€Í€€€Í€ÍÍÍ‚‚‚Í͂̀€Í€€Í€€Í€Í€Í€Í~Í~Í~̓ƒ„̓ƒ€Í‚ƒƒÍ‚‚„Í‚‚„̓̀€ƒÍ€€Í€€ÍÍÍÍ‚ƒ€Í‚‚Í~̀̀̀€‚Í̀̀Í~Í~~~Í~̓ƒ€ÍƒƒÍ‚‚ƒÍ€€‚Í€€‚Í~ÍÍ~~ƒÍ~~ƒÍ‚ÍÍ~~~̀̀€€Í€Í~}Í~}Í}~~Í~}Í}~~Í}~~Í}ÍzÍ}}~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ƒÍ‚‚ƒÍ‚̀̀̀€‚Í€€Í€€€Í€€€ÍÍÍÍ‚Í̀̀€Í€€Í€~ÍÍ~Í~Í~~~Í~~Í~~~̓ƒÍ‚ƒ„Í‚‚„͂͂͂̀€‚Í€€Í€€Í€ÍÍ~Í‚Í̀̀€€Í€€€Í~Í~Í~~~Í~~~Í~~~Í~~~Í~~~̓ƒÍ‚‚‚͂̀Í€ÍÍÍ~~Í~~ÍÍ|Í}}~Í€€€Í€Í~}Í}~€Í}~€Í}~}Í}}Í||~Í||~Í}}~Í}}}Í~~|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚€Í‚ÍÍÍÍ€€Í€€ÍÍÍÍÍ̀̀€Í€€Í€Í€Í€ÍÍ~~Í~~Í~~~Í~~~Í~~~Í‚ƒÍ‚‚€Í‚‚ƒÍ‚͂̀‚Í€€ÍÍÍÍ~Í~Í̀̀€Í}Í}Í~~Í~~Í}}~Í}}~Í}}}Í}}~Í}}}Í‚‚€ÍÍ€€ƒÍ~Í~Í~Í€~Í~~~Í~~~Í|ÍzÍ}}~Í~ÍÍ~}Í}}~Í}}~Í|}Í|}Í||}Í||}Í||}Í}}|Í}}|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒ„Í‚‚ƒÍ‚‚͂͂̀€Í€€Í€Í€Í€ÍÍÍ‚‚ƒÍ‚‚€Í‚ÍÍÍ€€Í€€€Í€Í€ÍÍ~Í̓ƒƒÍƒƒÍ‚ƒÍ‚‚Í‚‚͂̀€€ÍÍÍ~~Í€Í~Í‚ƒ€Í‚ƒ€Í‚Í~Í~Í€ƒÍ€€ÍÍÍ€Í~Í~̓„ƒÍƒ„‚̓„Í‚€ƒÍ‚€ƒÍÍÍÍÍÍ€€ÍÍ‚‚Í€ƒÍ€Í}Í}Í~|€Í}|Í~|~Í~|~ÍÍ~~~Í~~~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚€Í‚‚ƒÍ‚‚ƒÍÍ̀̀€Í€€Í€€Í€ÍÍÍ‚‚ƒÍ‚‚Í̀̀̀€€Í€Í€Í€Í~ÍÍ~̓„€Íƒ„„Í‚ƒƒÍ‚€Í‚€Í€Í€€€ÍƒÍƒÍÍÍÍ‚‚͂͂̀~Í€~Í€€~Í€Í~Í~Í~~Í~~}Í~Í„ƒƒÍƒƒ„Í‚‚€Í€‚Í€‚Í~‚Í~Í~Í~ÍÍÍ}}~̀̀€Í~}Í~}~Í~}~Í}}~Í||}Í||}Í||}ÍÍÍ~~}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒÍ‚‚€Í‚͂͂ÍÍ€€Í€€€Í€€€ÍÍÍÍ͂̀̀€€Í€€€Í€Í~ÍÍÍ~~Í~~Í~~}̓ƒ€Íƒƒ„Í‚ƒ€Í‚„Í‚„ÍÍ€€€Í‚͂̀Í~Í~Í‚͂̀€Í€~Í€~Í~Í~~Í~~Í~~Í}}}Í}}{Í~~~̓‚‚Í‚‚‚Í€€Í€Í€Í}‚Í~}Í~}Í~}ÍÍ~Í~~~Í€€ÍÍ~~~Í}}~Í}}~Í|}€Í|~}Í|}Í|}Í}}}Í~~}Í~~|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ƒÍ‚‚€Í‚ÍÍÍ€€Í€€€Í€Í€ÍÍ~Í̓̀€~Í€€‚̀̀̀Í~~~Í~~Í~~Í~~Í~~|Í}}~Í‚ƒ€Í‚ƒ€Í‚Í~Í~Í€ƒÍ€€ÍÍÍ€Í~Í~̀̀‚Í€~̀̀Í~}Í}~€Í}}}Í}}}Í|}Í|||Í|||Í‚‚Í€ƒÍ€Í}Í}Í~|€Í}|Í~|~Í~|~ÍÍ~~~Í~~~ÍÍ~~Í}~~Í|}~Í|}~Í|~Í|}Í|||Í|||Í}|}Í}}|Í}}{ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒÍ‚‚ƒÍ‚‚ƒÍƒÍƒÍ€Í€€ÍÍÍÍ~Í}Í‚ƒƒÍ‚‚Í‚€ÍƒÍƒÍ€‚Í€€Í€Í€ÍÍ~Í~̓ƒƒÍƒƒÍ‚ƒ„Í‚ƒ€Í‚ƒ€Í€€}Í€€Í„Í„Í~~„Í~~Í€€~Í‚ƒ„Í‚‚Í‚‚Í€€Í€€Í€Í€€ÍÍÍÍ~Í€€~Í„„̓ƒ„̓ƒ„̓‚̓‚Í„Í~ÍÍÍ~~€Í}Í͂̀̀~€Í}Í}Í~|~Í~}€Í~|}Í~|}ÍÍ~Í~~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒ„̓ƒÍ‚‚ƒÍ‚€Í‚€Í‚Í€€Í€€Í€€Í€ÍÍÍ‚‚Í‚‚‚ÍÍÍÍ€€€Í€€ÍÍÍ~ÍÍ~̓„̓ƒ‚Í‚ƒ„̓̓̀€ƒÍ€€€ÍƒÍƒÍ‚ÍÍ€€~͂͂ƒÍ€Í€€~Í€€~̀̀~Í~Í~Í~~Í~~}Í}Í„ƒƒÍƒƒ‚̓‚ÍÍÍ}Í~‚Í~Í~Í€€ÍÍ~|Í€‚Í€€Í~~Í~|Í~|Í}|~Í|}}ÍÍÍÍ}Í~}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒ„Í‚ƒƒÍ‚‚͂͂͂̀€Í€€Í€€Í€ÍÍ͂͂~̀̀€Í€€Í~Í~Í~~|Í~~|Í~~Í~~~Í~~}̓ƒƒÍ‚ƒÍ‚‚„̀̀̀‚Í€€Í€Í€ÍÍ~Í€€~ÍÍ€~Í€€Í€~Í€~Í€}Í~~‚Í}}Í}}Í}}Í}}~Í}}}̓‚ƒÍ‚̀̀~Í€~Í}Í~}€Í~}Í~}Í~Í~~Í~}~Í€‚Í~€Í~~}Í}}}Í}}}Í|}~Í|~Í|}~Í|}~Í~~}Í~|Í~|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒƒÍ‚‚Í‚€ÍƒÍƒÍ€‚Í€€Í€Í€ÍÍ~Í~̀̀~Í€ÍÍÍÍ~Í~~~Í~~~Í}~}Í}}~Í}}|Í‚ƒ„Í‚‚Í‚‚Í€€Í€€Í€Í€€ÍÍÍÍ~Í€€~Í€€Í€€Í€€Í~~Í~~Í}~~Í}}Í||~Í||~Í||~Í||}Í|||͂̀̀~€Í}Í}Í~|~Í~}€Í~|}Í~|}ÍÍ~Í~~ÍÍ~~~Í}}}Í}~}Í}~}Í|}~Í|}Í|}}Í|}}Í|}}Í}~{Í~~{ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒ„Í‚ƒÍ‚‚Í‚‚ƒÍ‚‚ƒÍÍ€€‚ÍÍÍ€ÍÍ~Í‚ƒÍ‚‚€Í‚‚ƒÍ‚͂̀‚Í€€ÍÍÍÍ~Í~̓ƒ̓ƒÍ‚ƒƒÍ‚‚Í‚‚̓̀€Í~~Í~~ÍÍ~ÍÍ‚‚€ÍÍ€€ƒÍ~Í~Í~Í€~Í~~~Í~~~Í|ÍzÍ}}~Í„„Í„ƒ„̓‚Í‚ƒÍ‚ƒÍÍÍ|Í|ÍÍÍÍ‚‚Í€‚Í€~Í}}Í}}Í~|Í}|~Í}}Í}}Í~Í~Í}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒ„̓ƒ€Í‚ƒƒÍ‚‚„Í‚‚„̓̀€ƒÍ€€Í€€ÍÍÍÍ‚ƒ€Í‚‚Í~̀̀̀€‚Í̀̀Í~Í~~~Í~̓ƒ€ÍƒƒÍ‚‚ƒÍ€€‚Í€€‚Í~ÍÍ~~ƒÍ~~ƒÍ‚ÍÍ~~~̀̀€€Í€Í~}Í~}Í}~~Í~}Í}~~Í}~~Í}ÍzÍ}}~Í„ƒƒÍ„ƒ‚̓‚̀̀Í}Í~}€Í~~‚Í~~‚̀̀Í|z|̀̀€Í}€Í}|Í}|Í}|}Í|}}Í}~Í}~Í€~Í}Í|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒÍ‚ƒ„Í‚‚„͂͂͂̀€‚Í€€Í€€Í€ÍÍ~Í‚Í̀̀€€Í€€€Í~Í~Í~~~Í~~~Í~~~Í~~~Í~~~̓ƒÍ‚‚‚͂̀Í€ÍÍÍ~~Í~~ÍÍ|Í}}~Í€€€Í€Í~}Í}~€Í}~€Í}~}Í}}Í||~Í||~Í}}~Í}}}Í~~|̓‚Í‚‚Í€Í~€Í~€Í~|€Í~|€Í}}Í}}Í€Í}~Í}~Í€}Í€Í~}Í}}~Í}}~Í|~}Í|~}Í|}~Í|}~Í}~}Í~|Í{ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒÍ‚‚€Í‚‚ƒÍ‚͂̀‚Í€€ÍÍÍÍ~Í~Í̀̀€Í}Í}Í~~Í~~Í}}~Í}}~Í}}}Í}}~Í}}}Í‚‚€ÍÍ€€ƒÍ~Í~Í~Í€~Í~~~Í~~~Í|ÍzÍ}}~Í~ÍÍ~}Í}}~Í}}~Í|}Í|}Í||}Í||}Í||}Í}}|Í}}|Í‚‚Í€‚Í€~Í}}Í}}Í~|Í}|~Í}}Í}}Í~Í~Í}Í€Í~~~Í}}Í|}Í|}Í|}~Í|}}Í{|}Í{|}Í|}|Í}~{Í}}{ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓}„}~…}~†~~†~~x~~w~~w~x~x~z~}€~‚€‚€‚~„}~wƒ}v„|v„{v„{v€~€~€€€y‚~yxƒ~yyƒyy„zy„z|…{…}ƒ…ƒ…‚|~~|~~~‚|€t‚|€t‚|€u‚{v‚{vz‚x€z‚{|€v|€vyyz‚~w‚€zƒvz„€vz…€x{†€z{†€z}‡|ˆ€‡€‡€†‚†‚€†€~~~}~~|~z~~z~~|~€~‚‚€€€}‚~v}~v~v~x~x~z€~}~€€~€~€€~€~~x~~x|€x{€z{€z~€|€€€}„„…z}{yy~‚wƒ~zwƒ~zx„~zy…{y…{{…|~†~ƒ…~ƒ…~€ƒ€ƒ~~€u~€€u~v}ƒx}ƒx~„|€„…ƒ…ƒƒ€„„€€…€€y„vz…€wz‡€x{‡€z{‡€z}ˆ€|ˆ€ˆ€ˆ€‚‡‚†€†€z~~y~~x~y~y~{~~~~€€‚„‚}ƒ‚~€u}v~v€~x~x~z~|~€~~€~~€€||€|{~xzxz‚yz‚zz‚z}‚{ƒ€}ƒ„ƒ„ƒ{~}{~€vƒ~zwƒ~zx„~{y…~{y…~{{…|}…~…~~…~~„~ƒ~€‚~|€u|ƒ€v|„€w|…y|…y}†|†‡€‚‡€‚‚†€ƒ€…€†€y…wy†xz‡€y{ˆ€{{ˆ€{}ˆ€|ˆ€~€ˆ€€€ˆ€€†€†€†x~~w~~w~x~x~z~}€~‚€‚€‚~u}v}w€~x€~x€~z~|~€~~~~}~€€|~€|~~y‚~yxƒ~yyƒyy„zy„z|…{…}ƒ…ƒ…‚|~~|~~~vƒ~{w„~{x…~{y…~|y…~|{…~}}…~~…~…~„~€ƒ~ƒ~zƒvz„€vz…€x{†€z{†€z}‡|ˆ€‡€‡€†‚†‚€†€x†xy‡yy‡y{ˆ{{ˆ{|ˆ}~ˆ~€ˆ€ˆ‡€†€†„~}|„~~{…~~{…~~{…~~{€~€„„}}~ƒx€~|w~|w~|x~}x~}z‚~}}‚~~€€…‚…€€„€‚}uƒ|uƒ|uƒ{€uƒ{€u~~ƒy{‚z€yyƒwyƒxy„yz…zz…z|…|†€~ƒ†ƒ†„ƒ~~€ƒ~}€t|u|v{‚w{‚wy‚y€{‚{yzyz€z‚|€|‚yz‚{ƒ€u{„€v{…x|†z|†z}‡|ˆ€‡€€‡€‡€‚€†€€†€€~~|~~{|~|{€~|{€~|}}€~€€€€yˆ~{~‚€€€v€~}v~|w~}x‚~}x‚~}z‚~}}‚~~~~€~~€v~€v}€w{€z{€z~|€ƒ‚ƒ‚„~‚{€~€xƒxx„xy…yz†{z†{|†|‡~‚†‚†„ƒ~~€‚~€t~€€u~€v~‚‚x~‚‚x‚‚{ƒ‚€„‚€„‚€ƒ„ƒ€ƒz…€vz…€w{‡€x|‡z|‡z}ˆ|~ˆ~€ˆ€€€ˆ€€ˆ€‚‡€‚€‡€z€~|y€~|x€~|y~|y~|{~}~~~€€€€~‡~€„~€‚~€u~}v~}w~}x‚~}x‚~}z‚~~}‚~~~€~~€~|€{|~{w{‚wz‚x{ƒy{ƒy}ƒ€|€„€~ƒ„ƒ„„‚~‚~€‚~w„~yw…yx…zy†{y†{|†|~‡~€†€†„„„}€u}u|„w}„x}„x~…‚{†€†‚€†‚…€ƒ€…€‚€…€y†€wz†€xz‡€y|ˆ€{|ˆ€{}ˆ€|~ˆ€~€ˆ€€ˆ€‡€‡€‡€x€~|w~|w~|x~}x~}z‚~}}‚~~€€…‚…€€„€u}}v~}w~~x‚~~x‚~~z~|~€~€€~€~€}~‚~~yƒwyƒxy„yz…zz…z|…|†€~ƒ†ƒ†„ƒ~~€ƒ~w„~yw…~zx†~{z†|z†||‡}~‡~††€…~€„~…{ƒ€u{„€v{…x|†z|†z}‡|ˆ€‡€€‡€‡€‚€†€€†€€y†xy‡€yz‡€y{ˆ€{{ˆ€{}ˆ€|~ˆ€~€ˆ€€€ˆ€€€ˆ€€‡€‡€ƒ~~y„}~y„}~x…|~x…|~x€~~€~~|‚}€x~zx~zx‚~{yƒ~{yƒ~{{„|~„}‚‚€‚‚€y†~{}„€€‚€‚}u‚|€tƒ{€u‚{u‚{uƒ~‚‚~‚~z€z€y{„zƒvy„wy…x{†€z{†€z}†€|‡€‚‡€‚‚‡€‚ƒ…ƒ‚…~€„~€}t€}u|v€|‚w€|‚w€|‚z€|‚{{w{w€y{€{‚{~{‚€|ƒ€u|„v|…w}†z}†z~†|†‚~€‡€‡€‡€†‚€†€‚~~y}~y|€~z{€{{€{~|€}€€{ƒ€w{ƒ€€v‚~{v‚~{wƒ~{xƒ~|xƒ~|z„~|}„~~{{~€ƒ~€u~€€u|€€v|‚€x|‚€x~„€|€„€ƒ„€‚ƒ„€‚ƒƒƒ|ƒ~…€x„wy…xy†yz‡zz‡z|‡€|‡€‡‡‚†‚„~€€…~€u€v~‚w‚y‚y‚{‚~€‚‚€‚‚€‚‚‚€‚€{„€v{…€w{†y|‡z|‡z}ˆ|ˆ~ˆ€ˆ€€ˆ€€‡€€‡€€{€~zz~zy~zz‚{z‚{|‚{‚}€€y†x}ƒ€€v‚~{v‚~{wƒ~|xƒ~|xƒ~|z„~}}„~~‚~‚~~€~~€€~|v{‚€vzƒ€w{„€y{„€y}…€|€†€‚†‚‚†‚ƒ„ƒ€„~„€x…xx†yy†zz‡{z‡{|‡|~ˆ~€‡€€‡€‚†„€€„€}u}‚v}‚w}„‚y}„‚y~„‚{…‚€…€€…€€…‚€„ƒ€„z†€wz‡€x{‡y|ˆ{|ˆ{}ˆ|~ˆ~€ˆ€€€ˆ€€ˆ€€ˆ€‡€x~zx~zx‚~{yƒ~{yƒ~{{„|~„}‚‚€‚‚€y†~{}„€€‚€u‚~|vƒ~|wƒ~|x„~}x„~}{„~}}ƒ~~ƒ~ƒ~~~~zƒvy„wy…x{†€z{†€z}†€|‡€‚‡€‚‚‡€‚ƒ…ƒ‚…~€„~€w…~yx†yy‡zz‡{z‡{|ˆ|~‡~‡‡€†€…€…|ƒ€u|„v|…w}†z}†z~†|†‚~€‡€‡€‡€†‚€†€‚z†€wz‡€x{ˆ€z|ˆ€{|ˆ€{}ˆ€|~‰€~‰€‰€€ˆ€€ˆ€€ˆ€€„}~wƒ}v„|v„{v„{v€~€~€€€y‚~yxƒ~yyƒyy„zy„z|…{…}ƒ…ƒ…‚|~~|~~~‚|€t‚|€t‚|€u‚{v‚{vz‚x€z‚{|€v|€vyyz‚~w‚€zƒvz„€vz…€x{†€z{†€z}‡|ˆ€‡€‡€†‚†‚€†€|u€}u|v€{‚x€{‚x€|‚z€z‚|€}‚w€}‚w€y‚{€}‚|z‚€|ƒv|ƒv}„x}…‚y}…‚y~…‚|~†‚}†€†€€†€†€†~~x~~x|€x{€z{€z~€|€€€}„„…z}{yy~‚wƒ~zwƒ~zx„~zy…{y…{{…|~†~ƒ…~ƒ…~€ƒ€ƒ~~€u~€€u~v}ƒx}ƒx~„|€„…ƒ…ƒƒ€„„€€…€€y„vz…€wz‡€x{‡€z{‡€z}ˆ€|ˆ€ˆ€ˆ€‚‡‚†€†€uu€‚x€‚y€‚y‚{‚}‚‚‚‚€‚ƒ€‚‚ƒ‚‚{…v|…w|†x}‡z}‡z~‡}~ˆ~‡€‡€€‡€‡‚‡‚{~xzxz‚yz‚zz‚z}‚{ƒ€}ƒ„ƒ„ƒ{~}{~€vƒ~zwƒ~zx„~{y…~{y…~{{…|}…~…~~…~~„~ƒ~€‚~|€u|ƒ€v|„€w|…y|…y}†|†‡€‚‡€‚‚†€ƒ€…€†€y…wy†xz‡€y{ˆ€{{ˆ€{}ˆ€|ˆ€~€ˆ€€€ˆ€€†€†€†}u~‚v}‚w~ƒ‚y~ƒ‚y~„‚{ƒ‚}…‚…‚€„€„„{†€w{†x{‡y}‡{}‡{}ˆ|~ˆ~ˆˆ€ˆ€‡€‡€y‚~yxƒ~yyƒyy„zy„z|…{…}ƒ…ƒ…‚|~~|~~~vƒ~{w„~{x…~{y…~|y…~|{…~}}…~~…~…~„~€ƒ~ƒ~zƒvz„€vz…€x{†€z{†€z}‡|ˆ€‡€‡€†‚†‚€†€x†xy‡yy‡y{ˆ{{ˆ{|ˆ}~ˆ~€ˆ€ˆ‡€†€†|ƒv|ƒv}„x}…‚y}…‚y~…‚|~†‚}†€†€€†€†€†z‡€x{‡€x{ˆ€z|ˆ{|ˆ{}ˆ€|~‰~ˆ€ˆ€€ˆ€€€ˆ€€ˆ€€ƒ}€‚~|ˆ€}€„~„~}w~~v~w~y~y~}~€~‚€~‚€~ƒ‚~ƒ€~ƒ€~„}~wƒ}~xƒ}~x„}~x„}~x€€„z{„z{€w~|w~|w‚~}y‚~}y‚~}|‚~~€‚~ƒ~€ƒ~€|~€|~€~}t‚|u}€u}€u}€u|€v|w‚{€v‚{€vyy€y}x‚€x„xx…xy†yz‡{z‡{}ˆ€}ˆ€‡€€‡€€†€€†€†|~}z~yyy}€„„‚~€z~€~„~v~~v~~w€~~y~y~|~~€€~€„€~€„~~€~€{€~|z€~|x€}x~x~}€„€€„€€ƒz~}yy~‚v‚~|w‚~|w‚~}y‚~~y‚~~|‚~~€‚~‚‚~€‚‚~€ƒ€ƒ~|v|€v{ƒ€v{…€x{…€x~†|€†€…€ƒ…€ƒ€ƒ€‚~„€~…€x…xx†yy‡zz‡|z‡||‡}‡€‡€€‡€†€††y~~x~~w~~yy|€ƒƒ‚|†€ƒ€v~x€~x€~z~z~{~€|~~€|}|}{€€{€€{€y~{w~|w~}y~~y~~|~€„€~€„€~€‚{~~~|~€~v‚~|w‚~|x‚~}zƒ~}zƒ~}|‚~}}ƒ~}}„~}}„~}~„~ƒ~€‚~zƒwz„wz…€x{‡€z{‡€z}ˆ€}€ˆ€€‡€‡€……†w…yx†zy†{{‡|{‡|}‡}~‡~‡‡€…€…€…w~~v~w~y~y~}~€~‚€~‚€~ƒ‚~ƒ€~ƒ€~v€~~w€~~x€~~y€~y€~{~{~~€}~~€}~~€}|~{€€{~w~|w~|w‚~}y‚~}y‚~}|‚~~€‚~ƒ~€ƒ~€|~€|~€~v‚~|wƒ~|xƒ~}zƒ~}zƒ~}{ƒ~}|ƒ~~}„~~}„~~~ƒ~~€ƒ~ƒ~x„xx…xy†yz‡{z‡{}ˆ€}ˆ€‡€€‡€€†€€†€†x…yx†zy…z{†{{†{|‡|~‡}~†~~†~†††ƒ~~|„~~„~~„~~}„~~}‡‡}€~w€~}v€~~w€~~y€~~y€~~|€~€€~„€~„€~„‚~†„‚}wƒ}~wƒ}~wƒ|vƒ|vƒ{zƒ{z||€}}w‚~zwƒ~{wƒ~|yƒ~}yƒ~}|„~~€„~‚ƒ~€‚ƒ~€‚~€~ƒ~‚|u}€u‚{€u|v|v|€v‚zwzxzx€z‚z€z‚zz‚~y„wz…€wz†€y{‡€z{‡€z}ˆ€|ˆ€~€‡€€€‡€€€‡€€†€‡€|~}z~~y~yy}€„„}~~|~€v€~~v~~w€~~y€~~y€~~|€~€€~ƒ€~ƒ€~}~~€{€~y{€~yy~{x}x}}~€„€„€‚€~€z€~~€wƒ~zwƒ~{w„~|y„~}y„~}|„~~„~‚„~€‚„~€‚‚~€€}‚~}€u}€u|‚€v}„x}„x~„‚|„‚€„‚€„‚€ƒƒƒ~x…xy†€xz‡€z{ˆ€{{ˆ€{}ˆ€}~ˆ€~ˆˆ€‡€‡€‡x~~w€~~w~~yy|€„„ƒ~€|ƒ~‚~v~}w~}x€~~z€~z€~|€~|~€|~~|~~~{€y~{y~zx‚~zw‚~{yƒ~}yƒ~}|‚~~€ƒ~ƒ‚~€ƒ‚~€‚~€~~‚~wƒ~{w„~{x„~|z„~}z„~}|„~}~„}…~…~„~€„„{ƒ€v{„€v{…€w|†y|†y}‡|‡€†€€†€€…€…€†€x…xy†yz‡z{‡{{‡{|ˆ€|~‡~‡~‡~‡†‡w€~}v€~~w€~~y€~~y€~~|€~€€~„€~„€~„‚~†„v~}w€~~x€~~z~~z~~z€~{€~|~€|~€~}~€~|~€}~~w‚~zwƒ~{wƒ~|yƒ~}yƒ~}|„~~€„~‚ƒ~€‚ƒ~€‚~€~ƒ~w„~{x„~{y„~|z„~|z„~||…~}}…~}~…~~…~~…~„~…y„wz…€wz†€y{‡€z{‡€z}ˆ€|ˆ€~€‡€€€‡€€€‡€€†€‡€x†yy†zz‡z{‡{{‡{|‡|}‡}~‡~~‡~‡‡‡ƒ~~yƒ}~z„~~{„~~{„~~{~y}~w~|w~}w~~y~~y~~|~~€€~„€€„€€x…~z|ƒ~~‚}vƒ}vƒ|vƒ{€vƒ{€v„„‚|€y‚|€y|€z€|€|„xƒxw„yx…zz†|z†||†}†‚…‚…‚„~€„~€„~‚|u‚|€u}€u|€v|€v|v‚{v{v{v€zz€z‚{z‚z…€vz…€w{†€x|‡z|‡z}‡|~‡~€‡€€‡€‡€€†€†€{~|{~~y~y~y~}€„„yƒ€vy„{v~}v~}w~}y~~y~~|~~€~{{~‚~|w{xy‚xy„zy„z}…~€…€„„‚„„‚‚‚|ƒ}…w„~zw…zx…{z†|z†||†~††€†€…~€€„~€…~~€u}v~‚w~ƒ‚y~ƒ‚y~ƒ‚{ƒ‚‚‚€‚‚€‚€‚‚y…€wz†€x{‡€y{ˆ€{{ˆ€{}ˆ€|~ˆ€~ˆ€ˆ€ˆ€‡€€‡€~y€~|w€~}w€~~y€~y€~|€€€„€„€x…x|ƒ~~€v~}w~}x‚~}z~~z~~|~~|~~|~|~~€~~~y‚xxƒxx„yy…{y…{}†}€†€ƒ…ƒ…‚„~~„~…w„~zw…~{y…{z…|z…||†}~†~…~…~€…€„€„|ƒ€v{„€v|…w}…y}…y~†|†~………€€…€„y†xz‡€y{‡€y{‡€z{‡€z}ˆ€|~ˆ€~ˆ€~ˆ€~‡€‡€‡€w~|w~}w~~y~~y~~|~~€€~„€€„€€x…~z|ƒ~~v‚~|w~}x‚~}z‚~~z‚~~{‚~~|‚~~}‚~}‚~~€€~~€~xƒxw„yx…zz†|z†||†}†‚…‚…‚„~€„~€„~w„~zx…~{y…~{z…|z…||…|}†}~†}~†}…~…†z…€vz…€w{†€x|‡z|‡z}‡|~‡~€‡€€‡€‡€€†€†€y†xy‡y{‡€z{‡€{{‡€{|ˆ€|~ˆ€}ˆ€~ˆ€~‡€~‡€‡€„}~wƒ}~xƒ}~x„}~x„}~x€€„z{„z{€w~|w~|w‚~}y‚~}y‚~}|‚~~€‚~ƒ~€ƒ~€|~€|~€~}t‚|u}€u}€u}€u|€v|w‚{€v‚{€vyy€y}x‚€x„xx…xy†yz‡{z‡{}ˆ€}ˆ€‡€€‡€€†€€†€†}€t‚|€u|u}u}u{w{x€|‚w€|‚w€z‚|€|‚|z‚€{„€v{…w|†x}†z}†z}‡|~‡}†††††{€~|z€~|x€}x~x~}€„€€„€€ƒz~}yy~‚v‚~|w‚~|w‚~}y‚~~y‚~~|‚~~€‚~‚‚~€‚‚~€ƒ€ƒ~|v|€v{ƒ€v{…€x{…€x~†|€†€…€ƒ…€ƒ€ƒ€‚~„€~…€x…xx†yy‡zz‡|z‡||‡}‡€‡€€‡€†€††~€v}u~x~‚y~‚y~‚‚{‚‚}‚‚‚‚€‚‚‚€‚z…€w{†€x{‡€y|‡z|‡z}ˆ|~ˆ~~ˆ~~ˆ~‡€‡€‡€y~{w~|w~}y~~y~~|~€„€~€„€~€‚{~~~|~€~v‚~|w‚~|x‚~}zƒ~}zƒ~}|‚~}}ƒ~}}„~}}„~}~„~ƒ~€‚~zƒwz„wz…€x{‡€z{‡€z}ˆ€}€ˆ€€‡€‡€……†w…yx†zy†{{‡|{‡|}‡}~‡~‡‡€…€…€…|‚€v|„v|„x}„y}„y~„{…}…~…~€„€„„~z†€wz‡€x{†€y|‡€z|‡€z}ˆ€|~ˆ€}~‡€}~‡€}ˆ€ˆ€‡€w~|w~|w‚~}y‚~}y‚~}|‚~~€‚~ƒ~€ƒ~€|~€|~€~v‚~|wƒ~|xƒ~}zƒ~}zƒ~}{ƒ~}|ƒ~~}„~~}„~~~ƒ~~€ƒ~ƒ~x„xx…xy†yz‡{z‡{}ˆ€}ˆ€‡€€‡€€†€€†€†x…yx†zy…z{†{{†{|‡|~‡}~†~~†~†††{„€v{…w|†x}†z}†z}‡|~‡}†††††z†€xz‡€yz‡€y|‡€z|‡€z|ˆ€|}ˆ€}~ˆ€}~ˆ€}‡€~ˆ€ˆ€€€~ˆ„‚‰yw~‚yw~‚~€y|~ˆx{~†xw†zu€ƒzu€ƒzx‚{w€{}~{}~{~€‚||€‚{€‚}u‚}|‚}|€€€€€€w}u~}€w~}v~}v~}u|}‚v|}x{}x{}|}~~~~€~y~~xƒ}~wƒ|uƒ|u‚}v‚|€u‚z€v‚z€v‚yx€y{y‚€y~yx‚~xx‚~xy‚~xy‚~xy‚~wy„wz„xz„xz†€y}‡€|‡€|}‰||€Š}}„||€‰||€‰}|‡}{‚}~}}~}~€‚}}†x‚~vz~…wy‡vz~…xw…xw…{u‚|wx|~x|~y|‚{|z{~}ƒ|}{~}y}~‚y}~‚{}~‚{}~‚{{~ƒ{{~ƒ|{‚~}}~v~}t}}u~}v~}v~}u|}‚v|}w|}w|}~~~~~~w~w~w~v~v€w}€€u€w€w}€x~{„x~zu‚}{vƒ~yx‚~yx‚~ywƒ~yw…~yy†yy†yz‡{|‡}ˆ€{{ˆy|~ˆz{‡{y€‡{y€‡~y€‚{y{{{{{|ƒ{z„x‚xv…vz~†vy~„xw…xw…yw‚zy~w}~€w}~€xz~‚|y‚€z~}‚x~}€x~}w|~‚w|~‚x|~‚x|}‚x{~ƒx{~ƒ}~€~~~t}}‚u}u~}€u}}u}}v|}v|}v}}€v}}€y|}€{}}~~}€~x|€~x|€~w{~w{~w|w{ƒw{ƒ€x{ƒ€x|„€y}„|†~w}zvƒ~yvƒ~zwƒ~xwƒ~xw…~zw…~yx†{x†{zˆ{|ˆ}ˆy|~ˆx{~†xw†zu€ƒzu€ƒzx‚{w€{}~{}~{~€‚||€‚{€vz~…vz~‚vy~†xz~‚xz~‚zz~zz~€x}~x}~x‚~~{~y~w}u~}€w~}v~}v~}u|}‚v|}x{}x{}|}~~~~u}t~}€t}}u|}u|}u}}€w|}€w}}€w}}€y~}{~~~}y~yx‚~xx‚~xy‚~xy‚~xy‚~wy„wz„xz„xz†€y}‡€|‡€v‚~zvƒ~yvƒ~zv„~zv„~zw…~yw…~{x‡~{x‡~{z†~|}‡~~‡~ˆ}}{„€}„ˆz~w‚~v„„€‡y|~†w{~…x{~†zw„zw„yy‚|y~‚u}‚u}y~z{ƒx€…~~z‚}|~~z‚~}z‚~}z€~~~}‚~|‚~|€}}~~|}}z}}w}w€}}w€}}v€}~w€}}x~{x~{y‚~||ƒ~ƒ~~w‚}~vƒ|uƒ|uƒ|uƒ{u|€u‚{v‚{vzy€y‚{y‚~y~x|~vz‚~wy‚~wy‚~wzƒvz„€w{…€x{…€x{†€y~†|†~|}‰|}ˆ{z~…|y€…|y€…}yƒy€~‚yz‚yz}€„|~…|v{~…vz~…vz~ƒxxƒxxƒyx„|w€‚v~}‚v~}z|‚y|}}{}}}}|z€~~z€~~|~}}~|}~{}~{}~{}~z€}}x}~v}~u€}~u€}~v€}~u€}~v‚~|v‚~|yƒ~}|ƒ~~~‚~~v~v~€uuu~€u~€€u~€v~€v~€x~€‚|€‚z‚~wy‚~wyƒ~wx„wx„wy…wx…xy†xy†x{ˆ€{}ˆ€|ˆ€y|~†y{‡yw…yw…|w€}w€‚w|‚w|x€‚{|ƒz€€v{~…vy~„vy~…xw~ƒxw~ƒxw~ƒ{~~{y€~}y€~}y~~zy~~{~y}}~}}x}x}~x}~y€}}y€}}y€~|y€~|z~{}‚}‚v}~u€}~u}u€}~u€}~u}~w}}w}}w}}y‚}~{}~ƒ~}€~w~v{~w{‚v{‚v|‚u|‚€v|ƒ€v|ƒ€v}ƒy~„|…‚vƒ~xv‚~zwƒ~xx„~wx„~ww…xx†xzˆzzˆzzˆ{~‰€}‰€y|~†w{~…x{~†zw„zw„yy‚|y~‚u}‚u}y~z{ƒx€u|}u{~ƒvz~ƒvy~ƒvy~ƒzy~yz~€x~~|x~~|x~~{€~~y~|}}z}}w}w€}}w€}}v€}~w€}}x~{x~{y‚~||ƒ~ƒu}u€}}t~}€u€}~u€}~u}}v}~w}~w}~y€}|}}y~x|~vz‚~wy‚~wy‚~wzƒvz„€w{…€x{…€x{†€y~†|†~vƒ~yuƒ~zwƒ~xv…~yv…~yw†~yy‡yy‡{y‡{{ˆ|~‰~‰…}~x…}~x€~€†€~„~€~€x}}„w{~ƒw|~…v{~ƒv{~ƒwy~…zw„ƒw~~ƒw~~x„{|ƒ€}{‚~}z~~x~~x‡|~x‡|~xƒ~~yƒ~yƒ}zƒ}z}€{€}~€€x€}}v‚}{x€}{y‚~zy‚~zy~ywƒ~zyƒ~zyƒ~zz„{}…}…€~~vƒ|u‚}uƒ{€uƒ{€u€}€t‚|u‚zw‚zw{x€y‚}z‚}€u}€~wz‚vzƒuzƒu|„€v{„€v|…x|…x}†z}‡|†{}~‡z|~…|~~„{}~…{}~…|y‚}w€ƒƒx€{ƒx€{y€yw„{}€v|}ƒv}}ƒu{~ƒvz~„vz~„wx~ƒ~x~z…€y~z~~~y}€~y}€~z~€~x~€~x~€~y€~x~€x~€x}‚€z}‚€|ƒ€x€}|w€}|v}{v}{v}{vƒ~{vƒ~{y„~zy„~zz†{|†}†~€ut€~v€t€t€~u}vww~€‚x‚{}‚~z‚~vyƒvyƒvy„vy„vz„€v{†€xz‡€xz‡€x}‡z}ˆ|ˆx~}ƒy|~…x|~ƒx{~„x{~„zy~„zx…„w|„w|wƒy{‚}~|u}}t|}ƒu|}‚u|~‚u|~‚wy~‚{z~~}|}|x‚~~y‚~z~z€}z|€~z{€~zz€}zz€}zz~y{~y{‚x{‚x|‚€z}„€|„€u‚}{w~{v‚~|v‚}{v‚}{u‚~{v„~{w„~{w„~{y…~||…~~…~}€~v}u~€t~€t~€t}€u}‚v}‚w}‚w~‚‚x~„‚|„‚€y„vx„~wy„vx…wx…wy†wy‡yzˆ€yzˆ€y|ˆ€{}ˆ€}‰€x}}„w{~ƒw|~…v{~ƒv{~ƒwy~…zw„ƒw~~ƒw~~x„{|ƒ€}{uz~ƒv|~€vz~ƒu{}‚u{}‚wz~{{~z~~z~~x€~y}~€|~x€}}v‚}{x€}{y‚~zy‚~zy~ywƒ~zyƒ~zyƒ~zz„{}…}…u}|u}|t}|uƒ}|uƒ}|u‚}|v‚}|w„~|w„~|y…~}}…~~…~}€u}€~wz‚vzƒuzƒu|„€v{„€v|…x|…x}†z}‡|†x„~wyƒ~ww„~xw…ww…ww‡yy‡y{ˆ€{{ˆ€{{ˆ|}‰~‰‚}u‚}|‚}|€€€€€€w}u~}€w~}v~}v~}u|}‚v|}x{}x{}|}~~~~€~y~~xƒ}~wƒ|uƒ|u‚}v‚|€u‚z€v‚z€v‚yx€y{y‚€y~yx‚~xx‚~xy‚~xy‚~xy‚~wy„wz„xz„xz†€y}‡€|‡€€tƒ|u}€t|€t|€t€}€t|v€}‚x€}‚x{‚|€|‚z{‚|u|t{‚u{ƒ€u{ƒ€u{„€v{„v|„x|„x}„‚z†‚~…‚~{~}ƒ|}{~}y}~‚y}~‚{}~‚{}~‚{{~ƒ{{~ƒ|{‚~}}~v~}t}}u~}v~}v~}u|}‚v|}w|}w|}~~~~~~w~w~w~v~v€w}€€u€w€w}€x~{„x~zu‚}{vƒ~yx‚~yx‚~ywƒ~yw…~yy†yy†yz‡{|‡}ˆ€€u~t}€t€€t€€t€~t€}v€~‚x€~‚x~‚z‚{€ƒ~z‚v{ƒuzƒuy…vy…v{„€vz†€w{†x{†x|‡y}‡|ˆ~z~}‚x~}€x~}w|~‚w|~‚x|~‚x|}‚x{~ƒx{~ƒ}~€~~~t}}‚u}u~}€u}}u}}v|}v|}v}}€v}}€y|}€{}}~~}€~x|€~x|€~w{~w{~w|w{ƒw{ƒ€x{ƒ€x|„€y}„|†~w}zvƒ~yvƒ~zwƒ~xwƒ~xw…~zw…~yx†{x†{zˆ{|ˆ}ˆu€t~€€t~€€t~€€t|‚€u}ƒw~‚w~‚w~‚‚z~‚‚|ƒ‚zƒvy„vx…wx†wx†wy…wy‡x{ˆ€y{ˆ€y|‰{~‰€}‰~w}u~}€w~}v~}v~}u|}‚v|}x{}x{}|}~~~~u}t~}€t}}u|}u|}u}}€w|}€w}}€w}}€y~}{~~~}y~yx‚~xx‚~xy‚~xy‚~xy‚~wy„wz„xz„xz†€y}‡€|‡€v‚~zvƒ~yvƒ~zv„~zv„~zw…~yw…~{x‡~{x‡~{z†~|}‡~~‡~|u|t{‚u{ƒ€u{ƒ€u{„€v{„v|„x|„x}„‚z†‚~…‚~x„ww„~xw…xx‡xx‡xx‡xyˆz{‰€{{‰€{{‰€{}Š€}‰€„„Í„ƒ„̓‚Í‚ƒÍ‚ƒÍÍÍ|Í|ÍÍÍÍ‚‚Í€‚Í€~Í}}Í}}Í~|Í}|~Í}}Í}}Í~Í~Í}̓ƒ̓ƒÍ‚‚ƒÍ‚„Í‚„ÍÍÍ~Í~ÍÍÍÍ‚ƒÍ€Í~‚Í~}‚Í~}‚Í}|€Í}|Í||}Í||}Í~~~Í~~~Í}}}Í‚‚„Í‚„Í‚ƒÍ€‚Í€‚͂̀‚̀̀ÍÍÍ~Í€ƒÍ€€‚Í‚Í~~‚Í~~‚Í~}‚Í}}€Í~~€Í~~€Í~~~Í~Í}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ„ƒƒÍ„ƒ‚̓‚̀̀Í}Í~}€Í~~‚Í~~‚̀̀Í|z|̀̀€Í}€Í}|Í}|Í}|}Í|}}Í}~Í}~Í€~Í}Í|̓ƒ„̓ƒ„Í‚„Í€‚Í€‚Í~}‚Í~}Í~~€Í~~€ÍƒƒÍ€€~Í}}Í€‚Í€Í~}Í}|€Í}|€Í}{Í|{~Í||}Í||}Í~ÍÍ|||Í‚ƒ„Í‚„̓̀ƒÍ€ƒÍ‚ÍÍ€€Í€€Í€Í€Í€Í€€ƒÍÍ~~Í~}Í~}Í}}€Í}}Í}}~Í}}~Í~}}Í~~|Í~~|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓‚Í‚‚Í€Í~€Í~€Í~|€Í~|€Í}}Í}}Í€Í}~Í}~Í€}Í€Í~}Í}}~Í}}~Í|~}Í|~}Í|}~Í|}~Í}~}Í~|Í{̓‚„Í‚ƒÍ‚Í}€Í}€Í~|€Í}|€Í}}Í}}ÍÍÍ}}Í€€Í~Í~}€Í}|Í}|Í||}Í|}}Í|}|Í|}|Í}}{Í}}{Í~~zÍ‚‚„̈́̀€ƒÍ~ƒÍ~ƒÍ~}‚Í~~Í~~€Í~~€ÍÍ€Í~Í€‚Í~Í~}Í}}Í}}Í}}~Í}}Í}}}Í}}}Í}}}Í~~|Í~~|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚Í€‚Í€~Í}}Í}}Í~|Í}|~Í}}Í}}Í~Í~Í}Í€Í~~~Í}}Í|}Í|}Í|}~Í|}}Í{|}Í{|}Í|}|Í}~{Í}}{Í‚ƒÍ€Í~‚Í~}‚Í~}‚Í}|€Í}|Í||}Í||}Í~~~Í~~~Í}}}Í~Í~~€Í}}€Í}}~Í}}~Í|}~Í|}|Í|||Í|||Í||{Í}}{Í}}zÍ€ƒÍ€€‚Í‚Í~~‚Í~~‚Í~}‚Í}}€Í~~€Í~~€Í~~~Í~Í}ÍÍ~~Í~~€Í}}Í}}Í|}Í}}}Í}}}Í}}}Í}}|Í}}{Í}}{ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ„„‚̓ƒ„̓ƒÍ‚‚Í‚‚Í̓ÍÍÍÍ€€ÍÍ‚ƒÍ€Í€~Í~}~Í~}~Í}|Í}|~Í~||Í~||ÍÍ~~~Í}Í‚ƒƒÍ‚ƒ„Í‚ƒ„̈́̈́̀̀̀̀ÍÍ€Í̓̀€ƒÍ~‚Í~}‚Í~}‚Í}|Í}|€Í}}Í}}Í~~~Í~~}Í}}}Í‚„Í‚ƒÍ€‚Í€€‚Í€€‚Í̀̀€Í€€ÍÍÍ̓̀€ƒÍ‚Í~‚Í~‚Í~~Í~~€Í~~Í~~Í~Í~Í~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ„ƒƒÍƒƒƒÍƒÍ€€Í€€Í}€Í~}€Í~Í~Í€…ÍÍ~}~̀̀~Í}Í}|~Í}|~Í}{~Í|{}Í||{Í||{ÍÍ€}Í€|̓ƒ„Í‚‚„Í‚„Í~Í~Í~}‚Í}}Í~~€Í~~€ÍÍ€€~Í}}~Í€„Í€ƒÍ}‚Í}|€Í}|€Í}|€Í||Í||Í||Í}}}Í}}|Í}}{̓̓̀‚Í€€‚Í€€‚Í‚ÍÍ€€Í€€Í€€Í€€Í€€Í€€‚Í‚Í~‚Í~~€Í~~€Í~}€Í~}Í~~Í~~Í~~~Í~~}Í~}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓‚Í‚ƒÍ€Í}Í}Í~|~Í~|~Í~}~Í~}~Í~~‚Í~}Í~}}Í€Í~~Í~~Í}}}Í}}}Í||}Í|~~Í|}€Í|}€Í}}|Í}~|Í{Í‚‚ƒÍ‚ƒÍ€ƒÍ}ƒÍ}ƒÍ}|Í}|‚Í}}€Í}}€ÍÍ~Í}}~Í€‚Í~Í~~€Í}}Í}}Í||~Í||~Í|}|Í|}|Í}~|Í~~{Í~~{̓̀ƒÍ€€ƒÍ‚Í‚Í~‚Í~~̀̀̀̀€Í€€~Í€ÍÍ~~Í~~Í~~Í}}Í}}Í}}}Í}}}Í~~}Í~~}Í~~|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒÍ€Í€~Í~}~Í~}~Í}|Í}|~Í~||Í~||ÍÍ~~~Í}Í~}Í~~€Í}}~Í||~Í||~Í|}|Í{}}Í||Í||Í|||Í}}{Í}}z̓̀€ƒÍ~‚Í~}‚Í~}‚Í}|Í}|€Í}}Í}}Í~~~Í~~}Í}}}ÍÍ~~Í}}~Í}}Í}}Í||}Í|}|Í|}|Í|}|Í}}{Í}}{Í}}z̓̀€ƒÍ‚Í~‚Í~‚Í~~Í~~€Í~~Í~~Í~Í~Í~ÍÍ~~€Í~~Í}}Í}}Í}}~Í}}~Í}}}Í}}}Í}}|Í}}|Í~}|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ„ƒ̓ƒ̓ƒÍ‚‚‚Í‚‚‚͂͂ÍÍÍ~~€ÍÍÍ‚ƒÍ€€Í€~‚Í~}Í~}Í}|Í}|}Í}||Í}||Í}Í~~~Í~}~Í‚ƒ„Í‚‚„Í‚„Í€‚Í€‚Í‚ÍÍ€€Í€€Í€€ÍÍ̓̀€Í~ƒÍ~}Í~}Í}|Í}|€Í}}Í}}Í~~~Í~~}Í~~}Í‚ƒÍ€‚Í€‚̀̀Í̀̀€€Í€€€Í€ÍÍÍ€€ƒÍ€€ƒÍ‚ÍÍÍ~~€Í~~€Í~Í~ÍÍ~Í~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ„ƒƒÍƒƒ‚Í‚„Í€‚Í€‚Í}Í~}Í~~Í~~ÍÍ~Í}}̀̀Í}~Í}|~Í}|~Í}{}Í|{{ÍÍÍ~~~ÍÍ~}|Í‚ƒ„Í‚‚„̈́̓̓Í~}‚Í~}‚Í~~Í~~ÍÍ€€~Í}}~Í€€ƒÍ‚Í~‚Í}}Í}}Í}|Í}|Í}}~Í}}~Í}}}Í~~|Í~~|Í‚ƒÍ€ƒÍ€€ƒÍ€€‚Í€€‚ÍÍÍ€€Í€€Í€€€Í€€Í€Í€€ƒÍ‚Í‚Í~~Í~~Í~~€Í~~Í~~Í~~Í~~~Í~~~Í}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓‚ƒÍ‚‚Í‚Í}Í}Í~|Í~|Í~}}Í~}}Í€€Í~}Í~}Í€Í~€Í~}Í}}€Í}}€Í||}Í|}|Í|}|Í|}|Í}}|Í}}}Í~zÍ‚‚„̓̀€ƒÍ~ƒÍ~ƒÍ~}‚Í}}Í~~€Í~~€ÍÍ~Í~~~Í€Í~Í~}€Í}}€Í}}€Í}|€Í|}~Í}}~Í}}~Í}}|Í~~{Í~~{̓̀€ƒÍ€€‚͂͂Í̀̀̀̀€Í€€Í€€Í€Í~Í~Í~~€Í~~€Í~~€Í}}~Í}~~Í}~~Í~~}Í~~}Í~~}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒÍ€€Í€~‚Í~}Í~}Í}|Í}|}Í}||Í}||Í}Í~~~Í~}~Í}Í~~Í}}~Í|}~Í|}~Í|||Í{}{Í{|Í{|Í||}Í}}{Í}}z̓̀€Í~ƒÍ~}Í~}Í}|Í}|€Í}}Í}}Í~~~Í~~}Í~~}Í~Í~~€Í}}€Í}}~Í}}~Í}}~Í|}}Í}}}Í}}}Í}}|Í}}{Í}}{Í€€ƒÍ€€ƒÍ‚ÍÍÍ~~€Í~~€Í~Í~ÍÍ~Í~ÍÍ~Í~~€Í~~€Í~~€Í}~~Í}}~Í}}}Í}}}Í}~}Í~}|Í~~|ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒ̓ƒÍ‚‚ƒÍ‚„Í‚„ÍÍÍ~Í~ÍÍÍÍ‚ƒÍ€Í~‚Í~}‚Í~}‚Í}|€Í}|Í||}Í||}Í~~~Í~~~Í}}}Í‚‚„Í‚„Í‚ƒÍ€‚Í€‚͂̀‚̀̀ÍÍÍ~Í€ƒÍ€€‚Í‚Í~~‚Í~~‚Í~}‚Í}}€Í~~€Í~~€Í~~~Í~Í}Í‚ƒÍ€‚Í€‚ÍÍ̀̀€Í€€€Í€€€ÍÍÍÍ€€‚Í€€‚Í‚ÍÍ̀̀̀̀ÍÍ~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓ƒ„̓ƒ„Í‚„Í€‚Í€‚Í~}‚Í~}Í~~€Í~~€ÍƒƒÍ€€~Í}}Í€‚Í€Í~}Í}|€Í}|€Í}{Í|{~Í||}Í||}Í~ÍÍ|||Í‚ƒ„Í‚„̓̀ƒÍ€ƒÍ‚ÍÍ€€Í€€Í€Í€Í€Í€€ƒÍÍ~~Í~}Í~}Í}}€Í}}Í}}~Í}}~Í~}}Í~~|Í~~|̓̀‚Í€€Í€€Í€€Í€Í€€Í€€Í€€Í€€Í€€Í€€Í€€‚Í‚ÍÍ~~Í~~Í~~€Í~~Í~~Í~~Í~Í~Í~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̓‚„Í‚ƒÍ‚Í}€Í}€Í~|€Í}|€Í}}Í}}ÍÍÍ}}Í€€Í~Í~}€Í}|Í}|Í||}Í|}}Í|}|Í|}|Í}}{Í}}{Í~~zÍ‚‚„̈́̀€ƒÍ~ƒÍ~ƒÍ~}‚Í~~Í~~€Í~~€ÍÍ€Í~Í€‚Í~Í~}Í}}Í}}Í}}~Í}}Í}}}Í}}}Í}}}Í~~|Í~~|̓̀€‚Í€€‚̀̀Í̀̀̀̀€Í€€Í€€Í‚ÍÍ€Í~~Í~~Í~~€Í~~~Í~~~Í~~~Í~~}Í~~}Í~~}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚ƒÍ€Í~‚Í~}‚Í~}‚Í}|€Í}|Í||}Í||}Í~~~Í~~~Í}}}Í~Í~~€Í}}€Í}}~Í}}~Í|}~Í|}|Í|||Í|||Í||{Í}}{Í}}zÍ€ƒÍ€€‚Í‚Í~~‚Í~~‚Í~}‚Í}}€Í~~€Í~~€Í~~~Í~Í}ÍÍ~~Í~~€Í}}Í}}Í|}Í}}}Í}}}Í}}}Í}}|Í}}{Í}}{Í€€‚Í€€‚Í‚ÍÍ̀̀̀̀ÍÍ~ÍÍÍ€Í~~€Í~~Í~~Í~~~Í}}~Í~~}Í~~}Í~~}Í~~}Í~~}ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍŠ€}Š€}}Š€|{‰€{{‰€{z‰€zy‡xx‡xx‡xx†xx…ww…wu„~zD›xc‰~‰}|‰{|ˆz|ˆzzˆ€yz‡€xy‡€wy‡€wy†vy…vx„vv…~yvƒ~yt€}~t€}~‡~‡}}‡{|‡z|‡z|†x{†€w{…€v{…€vz„€uzƒuzƒu‰~‰~{‰|zˆ{zˆ{x‡zw‡yw„~xw„~xv„~ywƒ~xwƒ~xE˜xfvƒ~yv€}}…‚~„‚}~„‚{}„‚z}„‚z}„w|ƒv|ƒ€u|ƒ€u|ƒ€u|‚u|u†~†~}…||…y|…y{„€wzƒvzƒvzƒvz‚~wz~w{~w~†€|†€z|†€zvƒ~zz€}{z~{z~{x€}|y€}|z€}|~Š~~Š~{‰|{‰{{‰{z‰{xˆyw†xw†xw…~xw…~xv…~xtƒ~{=…tyŠ€~‰€~|‰€|{‰€{{‰€{zˆ€yy‡€xx†wx†wx†wx„wx„wu„~{u‚}{C›wbC‹unˆ~ˆ}}ˆ||ˆz|ˆz{‡€xz†€wy…vy…vy„vy„vyƒvuƒ~zv‚~zv‚~yE“xmv}€u}~…‚~…‚}~…‚{}„y}„y|ƒw|„€v|ƒ€u|ƒ€u|‚€u{‚u{‚u€†€€~†€~~†€}|…€y|…€yz„wzƒvz‚~wz‚~wz~x{€~y{€}z}€{x~}x~}wƒ~x{€~|z}~ƒ‰‰|ˆ}w‡~zw‡~zw‡~zw‡~zw‡~zw‡~zv†~yv…~yv„~yt‚}}>…ty€‰€}‰}|‰|yˆzyˆzyˆzw‡yw…~xw…~xw…~xwƒ~xw„~wu„~zt‚}|>†uwu~}‰€~‰€}}‰€|{ˆ€z{ˆ€zy‡€xy†wx…wx…wx„wxƒ~wxƒ~wt}|u}|w€}|Cƒwyv}}ƒv}}…~…}}…{}…y}…y|„€w{ƒ€v{ƒu{ƒu{‚u{‚vz‚~v„„‡€‰€}‰|y†€wy†€wxƒ~w|€|y~zy~zz}zy}z{€}{„~~vvz~z~y~~€y~~{}u„~zD›xc=ƒt{v…~yvƒ~yt€}~t€}~=ƒt{u|}ƒ‰~‰~{‰|zˆ{zˆ{x‡zw‡yw„~xw„~xv„~ywƒ~xwƒ~xE˜xfvƒ~yv€}}Cywƒv}~ƒw~}€†~†~}…||…y|…y{„€wzƒvzƒvzƒvz‚~wz~w{~w~†€|†€z|†€zvƒ~zz€}{z~{z~{x€}|y€}|z€}|€z~~z~~z~€{}z}Š€}Š€}}Š€|{‰€{{‰€{z‰€zy‡xx‡xx‡xx†xx…ww…wu„~zD›xc‰~‰}|‰{|ˆz|ˆzzˆ€yz‡€xy‡€wy‡€wy†vy…vy„vv…~yv„~xt€}~t€}}‡~‡}}‡{|‡z|‡z|†x{†€w{…€v{…€vz„€uzƒuzƒu‰~‰~{‰|zˆ{zˆ{x‡zw‡yw„~xw„~xv„~xwƒ~xwƒ~xF™ydwƒ~wx~y…‚~„‚}~„‚{}„‚z}„‚z}„w|ƒv|ƒ€u|ƒ€u|‚€u|‚€u|u†~†~}…||…y|…y{„€wzƒvzƒvzƒvz‚~w{~w{~w~†€~|†€z|†€zwƒ~zz‚~zz‚~yz‚~yz~yz~x{€~y~Š~~Š~{‰|{‰{{‰{z‰{xˆyw†xw†xw…~xw…~xv…~xtƒ~{†uwu}~‰€~‰€}}‰€|{ˆ€z{ˆ€zy‡€xy†wx…wx…wx„wx„~wxƒ~wt}|u}|w~z@‰vtv}w€}|…~…}}…{}…y}…y|„€w{ƒ€v{ƒu{ƒu{‚u{‚vz‚~v„„‡€‰€}‰|y†€wy†€wxƒw|€|y~yy~yz~zy~y{€~z}‰€yy}€~~y€~{y€~{y}}z}}{}}u„~zD›xc={tƒv…~yv„~xt€}~t€}}=ut‰u~}€‰~‰~{‰|zˆ{zˆ{x‡zw‡yw„~xw„~xv„~xwƒ~xwƒ~xF™ydwƒ~wx~yBww†v~}€w€}}†~†~}…||…y|…y{„€wzƒvzƒvzƒvz‚~w{~w{~w~†€~|†€z|†€zwƒ~zz‚~zz‚~yz‚~yz~yz~x{€~yy~y~y}€z}{}yˆ€xy†€vx†vx†v|Š€|~†‚||‚t|‚tv…~xw‚~y}„‚x}„‚x|…w|…w{„€u|‚€t|‚€t|‚€t}€t|‚uz‚u‡‚~ƒ‚w{…€v{ƒ€u{ƒ€uz‚u{~v~vz~x€…~€ƒŒy‰yyƒvyƒvx„vz‰€zw‡yw†xw†x{‰zyˆ€xyˆ€xxˆxw†wB–wc~‡‚}|ˆ{|†x{†€v{†€vz…€vv}{ƒ‚~|‰{}ƒ‚x}ƒv}ƒv}‚t}€t|u|u{~v„‚~zˆz{ƒ€uz‚uz‚u}‰|y~yy~yw}z…‚~‚}„u}ux€~z{~wv„~xvƒ~yw…w~Š}|Š€{z‰€yy‡€wy‡€wx†ww…xz‡€wx„vw„w€‰}†‚z}ƒv|ƒ€u|ƒ€uy…€u~€€tzƒuzƒu|€~w†…w‡or†}oo†|uo†|uqƒ{tz„€ux€}|y†€v}u~z€yƒv}€~w{€}z{€}z{€~y>Žuot€}~v…~xw‚~y‡‚~ƒ‚w{…€v{ƒ€u{ƒ€uz‚u{~v~vz~x€…~€ƒŒy‰yyƒvyƒvx„v~}€‰€€‰€|~}‚|~}‚v~}‚{€}|}}Í}}Í}}Í}}Í}}Í~~~ÍÍ~~€Í~~€ÍÍ€€Í€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~Í~~}Í~~Í~~Í~~Í~~ÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~Í~~~Í~~ÍÍÍÍ€€Í€€Í€€͂͂͂‚Í||Í||Í}}Í}}Í}}Í~~Í~~€Í€€Í€€ÍÍÍ‚‚‚ÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€€Í€€Í€Í€Í‚Í‚‚‚Í‚‚‚Í~̀̀ÍÍÍ€€‚̓͂‚Í‚‚Í‚‚„̓ƒƒÍƒƒÍ͂̈́Í~~Í~~Í€€Í‚‚}̓‚̓‚̓ƒÍƒƒÍ„ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ||Í||Í}}}Í}}Í}}Í}}~Í~~ÍÍÍÍ€€Í€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}}~Í}}Í}}Í}}~Í}}~Í~~~ÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍ~~ÍÍÍÍÍÍÍÍÍÍÍÍ€€Í‹‰„ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~~Í~~~Í~~Í~~€Í~~€Í€Í€€Í€€Í€€ÍÍÍ‚‚ÍÍÍÍÍÍÍÍÍÍÍÍ‚‚‚ÍÍÍÍÍÍÍÍÍÍ~Í‚‚Í‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~Í̀̀̀€Í€€‚ÍÍÍ‚‚‚Í‚‚ƒÍ‚‚ƒÍ~Í}Í͂͂̀€~ÍÍ‚‚ƒÍ‚‚ƒÍƒƒ̓ƒƒÍ„„ÍÍ~~Í‚ÍÍ̀͂͂‚Í‚‚Í‚‚ƒÍ„ƒƒÍƒ„ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ||Í{{Í||Í}}Í}}Í}}Í}}Í}}Í}}Í~~ÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ||Í||Í||Í}}Í}}Í~~Í~~ÍÍÍ€€€ÍÍÍÍÍÍÍÍÍÍÍÍÍ~Í€€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}}}Í}}}Í~~~Í~~Í~~ÍÍ€€€Í€€Í€€ÍÍÍ‚‚ÍÍÍÍÍÍÍÍÍÍ€€Í̓‚ÍÍÍÍÍÍÍÍÍÍÍ‚‚Í‚‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}Í̀̀̀̀€Í‚͂͂͂‚Í‚‚Í‚‚„Í€€~Í~~Í~~„͇̓̓̀€‚̓‚̓‚̓ƒƒÍƒƒ€Í„ƒƒÍÍ€~~ÍÍÍ͂͂ͅƒ„Í‚ƒ„̓ƒ„̓ƒÍ„„ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~ÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍ€€Í€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ||Í||Í}}Í}}Í}}Í~~Í~~€Í€€Í€€ÍÍÍ‚‚‚ÍÍÍÍÍÍÍÍÍÍÍÍ‚‚ÍÍÍÍÍÍÍÍÍÍÍ‚‚̓ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~̀̀ÍÍÍ€€‚̓͂‚Í‚‚Í‚‚„̓ƒƒÍƒƒÍ͂̈́Í~~Í~~Í€€Í‚‚}̓‚̓‚̓ƒÍƒƒÍ„ƒÍÍÍÍ~Í~ÍÍ̓ƒ„̓ƒ„̓ƒƒÍ„„„Í„„ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ=ƒt{>quŒ=ƒt{u|}ƒH\z¤v{~„PR~©xyˆCywƒv}~ƒw~}€vx~…w{~†x|~†ƒu||v|t€‚ww…ww…ww…wx†wx†x{‡xy‡z{ˆ€z~~z~~z~€{}z}€zzƒzzƒ€€{|‡{|‡{}‡|}~‡{}~†w‚€x€~z„|{€ˆ|{€ˆ}z…}{‡|zˆ|zˆ}}€‰||€‰}}€ŠAgv—@iv–WP­<€t~t~}G[y¡Gixžyu„‚t}zu€„zu€„xv…S[}«yyˆFay v}~‚x}~…I^z¥wz~‡x|~†~t€€‚wy|w„}v„}v„{v€„yx‡zx€‡zx€‡{w‡{zˆzzˆ€~€z~~ƒz~~ƒz~~‚z~}‚{~~ƒ|y€…|y„zz…zz…{z€ˆ{z€ˆ{|‰{}~ˆ{}~‡z‚~|‚ƒ~z„}z†}z†~{†|z‡}{ˆ}{ˆ|{€‰||€‰||€‰Bdw™RP©€t~^F˜zuƒzuƒSN¦Clwu~}wy‡}t{u€„t€€yw€‡|t€ƒWX€­\R„°`V…³Hfz—v}~ƒx|~…UU€©yzˆyzˆ~w‚€u}|w„|w„|w…|v…yyˆyyˆ{xˆ|zˆ{{€‰}wwz}~…z}~…z}~…{~~„{~~ƒ„}z†}|€ˆ}{…}{…„„||€ˆ||€ˆ{|‰z{‰}}‰~{‚€€x‚~{‚‚}z‡}z‡}{‡}}€Š}|ˆ}|ˆ~}‰}}€Š}}€Š>quŒƒu€z{u€„w=„‡w=„‡yv€†zu€…_N…¬H\z¤v{~„PR~©xyˆt€}€t~{w†yx€ˆyx€ˆyv€…{x€ˆyyˆyyˆyy€ˆ[]€²zx€‡vx~…w{~†x|~†ƒu||v|t€‚ww…ww…ww…wx†wx†x{‡xy‡z{ˆw‚€|w…|v„|x‡|x‡|y†{y€ˆ{w†{w†{x‡|{€‰|{€‰€zzƒzzƒ€€{|‡{|‡{}‡|}~‡{}~†w‚€x€~z„|{€ˆ|{€ˆ}z…}{‡|zˆ|zˆ}}€‰||€‰}}€Šz‚€|‚ƒ~{‚„}z‡}z‡~}‡}|‰}|†}|†}|ˆ~}‰}}€‰={tƒ>ou=ut‰u~}€Afv™v{~„PR~©xyˆBww†v~}€w€}}vx~…w{~†x|~†€u~|u{u€ƒxw…xw…ww…vz~†wx†wx†zx€‡yy€ˆzz€‰y~y~y}€z}{}€{{‚{{‚€€z{ˆz{ˆz|ˆ|}~ˆ{}~‡x‚€y‚}z…|{€ˆ|{€ˆ}{‚„~|‚†|{ˆ|{ˆ||‰}}€Š}~€ŠAgv—@iv–€u~zv‚yvƒvy~…<€t~u}}OV}©Iex¤ƒt{t}~t€yv„yv„xw†xv…VY€¬yy€ˆDcxœv}~„x~}ƒNX}ªxzˆy{ˆu€u|v„{v„{v„{v€„yxˆzw€‡zw€‡{x€ˆ{y€ˆ{{€‰€~}{‚~}€~€y}~„y}~„y~}‚z~}ƒ{~}‚~}€}|‚||ƒ||ƒ{{€‰{{€‰{|€‰{}‰|}‰z‚~~z‚ƒ~z„|z‡|z‡~|…}|†}{‡}{‡}|‰||€‰||€ŠDbxžRP©txv…xv…]G~˜yu„yu„xw†SN¦Clw‘u|}ƒxyˆt{u€ƒ}u€‚w=„†w=„†yw€†zv€…wx†wx†WX€­\R„°^Y„µHdzšv|~„x}~…[Tƒ­yz‰y{ˆ~v‚v€}wƒ|w…|w…}x„|w…{y€‡{y€‡|zˆ|z‰|{€‰~ww~~€~€z|‡z|‡y}~†z}~…{~~…„~~€‚}|€ƒ}}€…}}€…ƒƒ}|‰}|‰||€‰{|‰|}‰z‚y‚€~z‚ƒ}z‡}z‡~{‚ƒ~|‚…~|‡~|‡~}ˆ}|‰}}Š>ou‚u€||t€‚{u€„x=„†x=„†{u€„yv€†xyˆxyˆzv€…xzˆRb|°Afv™v{~„PR~©xyˆ€t~t|v„yx€‡yx€‡zv€…|v…{w†{w†zx€‡][‚±zx€ˆvx~…w{~†x|~†€u~|u{u€ƒxw…xw…ww…vz~†wx†wx†zx€‡yy€ˆzz€‰w‚€}w„}wƒ|x‡|x‡|y†|y‡}z‚†}z‚†|y‡|zˆ|z‰€{{‚{{‚€€z{ˆz{ˆz|ˆ|}~ˆ{}~‡x‚€y‚}z…|{€ˆ|{€ˆ}{‚„~|‚†|{ˆ|{ˆ||‰}}€Š}~€Šz‚€{‚~{‚…}z‡}z‡~}‚ƒ~~‚†~|‚†~|‚†}{ˆ~}‰~}‰>Žuot€}~u{~„}t}tyw…xw…xw…wx…vz~†vx†vx†x|~…v{~…x}}„~}€‰€€‰€|~}‚|~}‚v~}‚{€}|€€€€x~}ƒx~}ƒz}~†{|~ˆy‚€~y‚‚}y…|z€ˆ|z€ˆz{‰|}ˆz|~ˆz|~ˆy{ˆ{}~†y}~…€u~zv‚yvƒvy~…Butƒt{|u~t€wx†wx†xw†ww…WP­w{~†€u~~u|v„zv€…zv€…yw€†xx‡xy‡xy‡z|ˆy|~‡y|~‡|‚€x|€|}{†y}~‡~~…~~…}€~yz~}ƒx}}„~~~€~}€}~}~}€}~€w}}ƒw}}ƒ{~}ƒ~}‚y}}„y‚~~z‚„}z‚…|y‡|y‡||€‰z{‰{|‰{|‰y|ˆ{}~ˆ{}~‡}t€xv…xv…K[{¨wx†wx†xw†€t~}u€‚{u€„w=„†w=„†zv€…xx‡wx†wx†]N„­u|~„x}}„~v‚}v‚}w„{y€‡{y€‡zw€†zy€‰z{‰z{‰{|Šz|~ˆx{~‡€~€}‘}‘{€€…}~€|}~ˆ|}~ˆz|~ˆu€}~~€€~€€}}€ƒ|„|„|~„|~~…{}~†{}~†}~~†{~}„z‚z‚~z‚„|z‡|z‡}|€Š|{€‰}}Š}}Š{{‰~~Š|}‰~t€€|t€‚{u€„y<„„y<„„{u€„xw†xyˆxyˆxw‡xzˆRb|°u{~„u~t€}u‚}t‚}t‚zw€†{x‡{xˆ{xˆyy€ˆyz‰}t}tyw…xw…xw…wx…vz~†vx†vx†x|~…v{~…x}}„w‚€}wƒ}x‚ƒ|x…|x…{y‡|z‰{{€‰{{€‰zy€ˆxyˆy|~ˆ€€€€x~}ƒx~}ƒz}~†{|~ˆy‚€~y‚‚}y…|z€ˆ|z€ˆz{‰|}ˆz|~ˆz|~ˆy{ˆ{}~†y}~…{‚z‚€~z‚…}{‡}{‡}{‰}|‰}}€Š}}€Š}|€‰}}Š{}ˆÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍ~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€Í€ÍÍÍÍÍÍÍÍÍÍÍÍ€ÍÍÍÍÍÍÍÍÍÍÍ}}Í€€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ‚‚̓ƒÍÍÍÍÍÍÍÍÍÍ͂͂‚Í}||Í|||Í}}~Í~~~Í~~~Í~~~Í€€ÍÍÍ€ƒÍ€€ÍƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~Í~ÍÍ̓ƒ„̓ƒ„̓ƒƒÍ„„„Í„„ÍÍÍÍ~~Í~~ÍÍÍ‚ƒÍ‚ƒÍ‚‚ƒÍƒƒƒÍƒƒÍ~Í̀̀€Í€€ÍÍ€€‚Í€€‚Í€€‚͂̓͂‚ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍ€€Í{{Í{{Í||ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍ~͉‰‹Í}||Í|||Í||Í}}Í}}ÍÍ}~~ÍÍÍ͆„~Í€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̀͂͂ƒÍÍÍÍÍÍÍÍÍ̓ÍÍ‚‚Í}}~Í~}Í~~Í~~~Í~~~Í~~Í€€€Í€€Í€€Í€‚Í€€ƒÍ‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~€Í~ÍÍ̀̓̓‚„̓‚„̓ƒ„Í„„„̓„ƒÍÍ̀̀€Í€€Í€Í€Í€ƒÍ€ƒÍ‚„Í‚‚…̓ƒƒÍÍÍÍ€€€Í€€€Í€€Í€€Í€€‚Í€€‚͂̓̓ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~€ÍÍÍÍÍÍÍÍÍÍÍÍ||ÍÍ|||ÍÍ~~Í~~ÍÍop‚Í}}Í}}ÍÍzzÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~ÍÍÍÍÍÍÍÍÍÍÍÍÍ€Í}}}Í}}}Í|}~ÍnnÍnnÍ~Í}~€Í€€Í€€Í„„~Í̓…ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~͂͂ƒÍÍÍÍÍÍÍÍÍÍ€ÍÍ‚ƒÍ~~Í~~~Í}~̀̀ÍÍ~Í€‚Í€‚Í€‚Í€€ƒÍ‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€Í͉͉̀ÍÍ‚‚ƒÍ‚‚ƒÍƒƒƒÍƒƒÍ„„ÍÍ€ÍÍ€€€Í€€€Í͂̀ƒÍ€ƒÍ‚„Í‚„Í‚‚ÍÍÍÍ€€Í€€Í€ÍÍ€€‚Í€€‚̀̓͂ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~ÍÍÍÍÍÍÍÍÍÍÍÍÍ}}}Í||Í~~~ÍonnÍonnÍ~~Í~~Í€€Í€€Í~~ÍÍ}‹‹ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€ÍÍÍÍÍÍÍÍÍÍÍ}}Í€€€Í}}}Í}}}Í~}Í€}Í€}Í~~Í€~Í€€Í€€Í€€€Íˆ†Í€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͂͂‚Í}||Í|||Í}}~Í~~~Í~~~Í~~~Í€€ÍÍÍ€ƒÍ€€ÍƒÍ~~~Í~Í~~ÍÍ̀̀€€ÍÍ̀̀€Í€ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~Í~~ÍÍÍ‚ƒÍ‚ƒÍ‚‚ƒÍƒƒƒÍƒƒÍ~Í̀̀€Í€€ÍÍ€€‚Í€€‚Í€€‚͂̓͂‚ƒÍÍÍÍ€€Í€€Í€€Í€Í€€Í€€Í€Í‚Í‚ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ…‚~„‚}~„‚{}„‚z}„‚z}„w|ƒv|ƒ€u|ƒ€u|ƒ€u|‚u|u|‚|‚}€|‚{€|‚y€|‚y€|w€|v|€u|€u}€u}€u}u†~†~}…||…y|…y{„€wzƒvzƒvzƒvz‚~wz~w{~w{{~€{|{y{y{€w‚|v‚|v‚|v‚}w‚}~w‚}~x~†€|†€z|†€zvƒ~zz€}{z~{z~{x€}|y€}|z€}|€z€z~~|ƒ~~~…~~}…~~}†~~~†~~}…~~|‚‚‚}‚{~‚y~‚y~w~v}u}u~€€t~€€t}€uy‚€y‚}€y‚{zyzyzx‚zw‚{€v‚{€v‚{€uƒ|uƒ|u~~|~y~y}€€w}€€v}€v}€v}€v}€~w}€~wx€y~x|‚y€y‚y€yƒy€x„zw„{w„{w„{~w…|~x…|~x‚€€{€€{~}€~~„~~„~~‚~}€~|~|€€~~‚y€{‚y€{„}~|„}~~†}~~†}~~‡~~~‡}~}ˆ}~}‚~‚}‚{‚y‚ywv€u€u~€t€ttw€w}w|xzxz‚xx‚ywƒy€vƒy€vƒz€v„zv„{v~~~~{~y~y~€w€~€v€~v€~v€~v€~~w€~~ww€€w€~w€|ƒw€zƒw€z„xy…yx…zx…zx…{x†{~x…|~w‚~€{€{~|~~…~~~…~~~„~~}…~~}…~~}}|€{‚{~}‚{~}…}~}„}~|…}~|…}~|†}~|ˆ}~}ˆ}~}|‚|‚}€|‚{€|‚y€|‚y€|w€|v|€u|€u}€u}€u}uv€v}v{‚w{‚w{ƒw€y„x€x„x€w„x€w„y€v„zv„zv{{~€{|{y{y{€w‚|v‚|v‚|v‚}w‚}~w‚}~xv€v}‚v}„w{„w{…wz†xy†yy†yy†z~x‡z~y‡{~y€z€z~~|ƒ~~~…~~}…~~}†~~~†~~}…~~|€|€|~~€{~~‚{~~‚{~~„|~}…|~}†}~~†}~~†}~|‡}~|ˆ}~}…‚~…‚}~…‚{}„y}„y|ƒw|„€v|ƒ€u|ƒ€u|‚€u{‚u{‚u{‚|‚}€|‚{€{y€{y|w|€v|€u|€u}€u}u~u€†€€~†€~~†€}|…€y|…€yz„wzƒvz‚~wz‚~wz~x{€~y{€}z|€|€|||€y|€y‚|w‚|wƒ|~xƒ|~xƒ}~xƒ}~yƒ~~y}€{x~}x~}wƒ~x{€~|z}~€€~ƒ}y}{z~~z~~€‚~…~…~‡~~ˆ~~~‡~~~‚‚‚‚}~‚{~‚‚y~‚‚y~w}v}€u}€u~€€u}€u~€uy€y}€y{yyyy‚zx‚z€vƒz€vƒz€vƒ{vƒ|vƒ|v€€~}~€€y~€€y}€x~~x~x~x~~x~€~x~~yy€€y€~y€|‚y€y‚y€y„zx„{x…{~y…{~y…|~y…|~z…}~y€~„~€w€€zzz~€€„„„~‚~~‚~~€~€~~}€€~‚~…~~…~~†~~~‡~~~ˆ~~~~‚~‚}~‚{‚y‚y~w~u€u€u€~€uuuw€w}w{‚wz‚wzƒx€xƒy€w„y€v„y€v„zv„{v„{v€~|~€y~€y~w€}w€~~x€~~x~~x€~~x~~yw€w~‚w}ƒx{ƒx{…yy†z~y†{~y†{~y†{~z†|~y‡|~z€€~ƒ}€{‚€xzz€‚~€…~…~†~†~~~„~~€~~~€~~‚}~~‚}~~‚}|ƒ~~}…~~…~~†~~~‡~~}ˆ~~~{‚|‚}€|‚{€{y€{y|w|€v|€u|€u}€u}u~uu€€u€~v€|‚v€{‚v€{ƒw€y„w€x…x€w…x€w…yw…zw†zw|€|€|||€y|€y‚|w‚|wƒ|~xƒ|~xƒ}~xƒ}~yƒ~~yw€w~‚w}„x|„x|…x~{†z~z‡{~z‡{~z‡{~z‡{~z‡|~{€€~ƒ}y}{z~~z~~€‚~…~…~‡~~ˆ~~~‡~~~||€{~‚|~~‚|~~„|~|…}~}…}~}…}~}†~~}‡~~|ˆ~~~…~…}}…{}…y}…y|„€w{ƒ€v{ƒu{ƒu{‚u{‚vz‚~v{{}€{{€{y€{y{w|€v‚|€u‚|€u‚|v‚}v~~v„„‡€‰€}‰|y†€wy†€wxƒ~w|€|y~zy~zz}zy}z{€}{}~€€€}€}€}€y€}€y‚}xƒ}~zƒ}~{ƒ}~{„}~{…}~{„~~{„~~vvz~z~y~~€y~~{}~€€~€€}z~z~~€}‚~…~…~‡~€‡~€‡~‚‚‚‚}~‚‚{~y~y~w}€u}€u}€u}€u~€u~vx€y}x|yyyy‚y€xƒz€w„zv„zv„{vƒ|vƒ|v€€€€€€}~€€z~€€z~€z~{€~{€~{~{~~{}~{zy€€y€}ƒzzƒzz…{~y…|~{…|~{…|~{†}~{†}~|†}~|€~‰~}ww~………ƒ~~€~€€}€~{~~{~~~~‚~€…~…~‡~ˆ~~ˆ~~‚~‚}~‚{~y~y~w€~€v€~€u€~€uu€~u€~vw€w}w|‚w€z‚w€zƒx€x„yw„zw„zw…zw…{w…{~w€€€}€y€y€~y€~~z‚~~{‚~~{‚~~{ƒ~~{‚~~|y~x~‚x}„y|„y|†{~{†|~{‡|~{‡|~{‡|~|‡|~|‡}~{€€}€}€‚|{{~€‚……†~†~…~~€}|€~~‚~}‚~}‚~~~ƒ~}…~~…~~†~~‡~‡~~{{}€{{€{y€{y{w|€v‚|€u‚|€u‚|v‚}v~~vv€€v€~v€|ƒv€{ƒv€{„wy…xx…yx…yx†yx†z~x†{~x}~€€€}€}€}€y€}€y‚}xƒ}~zƒ}~{ƒ}~{„}~{…}~{„~~{€z~€z~~‚y~~„z~}„z~}†z~|‡{~|‡|~|‡|~|‡|~{‡|~{‡|~|~€€~€€}z~z~~€}‚~…~…~‡~€‡~€‡~{€|~|~‚}~~‚}~~ƒ~~~„~~~…~~}…~~}†~ˆ~ˆ~~~†~†~}…||…y|…y{„€wzƒvzƒvzƒvz‚~wz~w{~w{{~€{|{y{y{€w‚|v‚|v‚|v‚}w‚}~w‚}~x~†€|†€z|†€zvƒ~zz€}{z~{z~{x€}|y€}|z€}|€z€z~~|ƒ~~~…~~}…~~}†~~~†~~}…~~|€z~~z~~z~€{}z}€‚~€‚~€‚||€~~|€~~~~‚~…~€…~€‡~€‡~‡~~~|~y~y}€€w}€€v}€v}€v}€v}€~w}€~wx€y~x|‚y€y‚y€yƒy€x„zw„{w„{w„{~w…|~x…|~x‚€€{€€{~}€~~„~~„~~‚~}€~|~|€€~~‚y€{‚y€{„}~|„}~~†}~~†}~~‡~~~‡}~}ˆ}~}‚~…~~{{~……„~€ƒ~€‚~~€€~€€~€~€z~€z€€~ƒ€~…~…~‡€~€ˆ€~€ˆ€~€~~~~{~y~y~€w€~€v€~v€~v€~v€~~w€~~ww€€w€~w€|ƒw€zƒw€z„xy…yx…zx…zx…{x†{~x…|~w‚~€{€{~|~~…~~~…~~~„~~}…~~}…~~}}|€{‚{~}‚{~}…}~}„}~|…}~|…}~|†}~|ˆ}~}ˆ}~}ƒ‚~€ƒ„~~~~|~~|~~~‚……†~…~…~€€||€|}ƒ~}ƒ~}‚~~ƒ~~„€~„€~†~~‡~ˆ~{{~€{|{y{y{€w‚|v‚|v‚|v‚}w‚}~w‚}~xv€v}‚v}„w{„w{…wz†xy†yy†yy†z~x‡z~y‡{~y€z€z~~|ƒ~~~…~~}…~~}†~~~†~~}…~~|€|€|~~€{~~‚{~~‚{~~„|~}…|~}†}~~†}~~†}~|‡}~|ˆ}~}€‚~€‚~€‚||€~~|€~~~~‚~…~€…~€‡~€‡~‡~|~~€|~‚}~}‚~~~‚~~~ƒ~…~~…€~…€~†€~‡€~ˆ~…‚~„‚}~„‚{}„‚z}„‚z}„w|ƒv|ƒ€u|ƒ€u|‚€u|‚€u|u|‚|‚}€|‚{€|‚y€|‚y€|w€|v|€u|€u}€u}€u}u†~†~}…||…y|…y{„€wzƒvzƒvzƒvz‚~w{~w{~w{{~€{|{y{y{€w‚|v‚|v‚|v‚}w‚}~w‚}~x~†€~|†€z|†€zwƒ~zz‚~zz‚~yz‚~yz~yz~x{€~y‚€z€z~~|ƒ~~}…}~|…}~|†}~}†}~|…~~{‚‚‚}‚{~‚y~‚y~w~v}u}u~€€t~€€t}€uy‚€y‚}€y‚|zzzzzx‚zw‚{€v‚{€v‚{€uƒ|uƒ|u~~|~y~y~€€w}€€v}€v}€v}€v}€~w}€~wx€y~x|‚y€y‚y€yƒy€xƒzw„{w„{w„{~w…{~x…|~x‚€€{€€{€~}€~~ƒ}ƒ}~{€~{€~z€€~~‚y€{‚y€{„|~|„}~}†|~}†|~}‡}~}‡}~|‡}~|‚~‚~‚{‚y‚ywv~u~u~€u€ttw€w}w|xzxz‚xx‚ywƒy€vƒy€vƒz€v„z€v„{v~~~~{~y~y~€w€~€v€~v€~v€~v€~~v€~~ww€€w€~w€|ƒw€zƒw€z„xy…yx…zx…zx…zw†{~x…|~w‚~€{€{~|~~}„~~}„~~}„~~{„~~{„~~{}~|€€{‚{~}‚{~}„|~}„}~|†}~|†}~|†|~|ˆ|~}ˆ}~||‚|‚}€|‚{€|‚y€|‚y€|w€|v|€u|€u}€u}€u}uv€v}v|‚w{‚w{ƒw€y„w€x„x€w„x€w„y€v„zv„zv{{~€{|{y{y{€w‚|v‚|v‚|v‚}w‚}~w‚}~xv€v~‚v}ƒw{ƒw{…wz†xy†yy†yy†zx‡z~y‡z~y‚€z€z~~|ƒ~~}…}~|…}~|†}~}†}~|…~~{|€|~~€{~~‚{~~‚{~~„|~}…|~}†|~}†|~}†|~|‡|~|ˆ|~|…‚~…‚}~…‚{}„y}„y|„w|„€v|ƒ€u|ƒ€u|‚€u{‚u{‚u|‚|‚}€|‚{€{y€{y|w|€v|€u|€u}€u}u~u€†€€~†€~~†€}|…€y|…€yz„wzƒvz‚~wz‚~wz~x{~x{€~y|€|€|||€y|€y‚|w‚|wƒ|~xƒ|~xƒ}~xƒ}~yƒ}~y}~€|~€~~~y~yy~yy‚~xz€~y{€~{€~‚y€~€{z~~€z~~€€~~ƒ~~}…~~}…~~}‡~~}‡~~}†~~}‚‚‚‚}~‚{~‚‚y~‚‚y~w}v}€u}€u~€€u}€u~€uy€y}€y{yyyy‚zx‚z€vƒz€vƒz€vƒ{vƒ|vƒ|v€€~}~€€y~€€y}€x~~xxx~~x~€~x~~xy€€y€~y€|‚y€y‚y€y„zx„{x…{~y…{~y…|~y…|~y…|~y‚„~€y€€{{{~€}€~ƒ}ƒ}ƒ~}~|€~|€~€~~}€€~~ƒ}~~…~~~…~~~†~~}‡~~}ˆ~~}~‚~‚}~‚{‚y‚y~w~v€u€u€~€uuuw€w}w{‚wz‚wzƒx€xƒy€w„y€v„y€v„zv„{v„{v€~|~€y~€y~w€}w€~~x€~~x~~x~~x~~xw€w~‚w}ƒw{ƒw{…yy†z~y†{~y†{~y†{~z†|~y‡{~y‚€|€|‚‚€yz~z~€~}‚~}„~}„~}…~~}…~~}ƒ~}~~~~‚}~~‚}~~‚}|„}~}…}~~…}~~‡~~~‡}~}ˆ~~~|‚|‚}€|‚{€{y€{y|w|€v|€u|€u}€u}u~uu€€u€~v€|‚v€{‚v€{ƒw€y„w€x…x€w…x€w…yw…zw†zw|€|€|||€y|€y‚|w‚|wƒ|~xƒ|~xƒ}~xƒ}~yƒ}~yw€w~‚w}„x|„x|…x~{†z~z‡z~z‡z~z‡{~z‡{~z‡|~{€~‚y€~€{z~~€z~~€€~~ƒ~~}…~~}…~~}‡~~}‡~~}†~~}~|€}€{|~~|~~ƒ|~|„}~~…}~}…}~}‡}~}‡~~|‰}~~…~…}}…{}…y}…y|„€w{ƒ€v{ƒu{ƒu{‚u{‚vz‚~v{{}€{{€{y€{y{w|€v‚|€u‚|€u‚|v‚}v~v„„‡€‰€}‰|y†€wy†€wxƒw|€|y~yy~yz~zy~y{€~z}~€€€}€}€}€y€}€y‚}xƒ}~zƒ}~{ƒ}~{„}~z…}~z„~~z}‰€yy}€~~y€~{y€~{y}}z}}{}}€€€€€|{~{~~~}„~~~†~~†~~‡~‡~†~~‚‚‚‚}~‚‚{~y~y~w}€v}€u}€u}€u~€u~€ux€y}x|yyyy‚y€xƒz€w„zv„zvƒ{vƒ|vƒ|v€€€€€€}~€€z~€€z~€z~{€~{€~{€~z~~z~~zzy€€y€}ƒzzƒzz„{~y…|~z…|~{…|~{†|~{†}~{†}~{€€ˆ‚‚ƒ{}}~}€~ƒ~ƒ~ƒ~~~~€~~~€€€~€~{~~{~~}~}„~~†~~†~~‡~~~ˆ~~~ˆ~~‚~‚}~‚{~y~y~w€~€v€~€u€~€uu€~u€~vw€w}w|‚w€z‚w€zƒx€x„y€w„zw„zw…zw…{w…{~w€€€}€y€y€~y€~~z‚~~{‚~~{‚~~zƒ~~z‚~~{y~x~‚x}„y|„y|†z~{†{~{‡|~{‡|~{‡|~{‡|~|‡}~{~‚~€~€…€y~~~}‚~~…~~…~~…~…~~„~}}€~}€~~~}~}‚~~~„~~}…~~…~~‡~~~ˆ~~‡~~{{}€{{€{y€{y{w|€v‚|€u‚|€u‚|v‚}v~vv€€v€~v€|ƒv€{ƒv€{„wy…xx…yx…yx†yx†z~x†{~w}~€€€}€}€}€y€}€y‚}xƒ}~zƒ}~{ƒ}~{„}~z…}~z„~~zz~€z~~‚y~~„z~}„z~}†z~|‡{~|‡|~|‡|~|‡|~{‡|~{‡|~{€€€€€|{~{~~~}„~~~†~~†~~‡~‡~†~~{|~€|~|~|~ƒ~~~„~~~…~~}…~~}‡~ˆ~ˆ~~~†~†~}…||…y|…y{„€wzƒvzƒvzƒvz‚~w{~w{~w{{~€{|{y{y{€w‚|v‚|v‚|v‚}w‚}~w‚}~x~†€~|†€z|†€zwƒ~zz‚~zz‚~yz‚~yz~yz~x{€~y‚€z€z~~|ƒ~~}…}~|…}~|†}~}†}~|…~~{y~y~y}€z}{}~ƒ€~ƒ€~~‚|}€~~}€~~~„~†~†~‡~‡~‡~€~~|~y~y~€€w}€€v}€v}€v}€v}€~w}€~wx€y~x|‚y€y‚y€yƒy€xƒzw„{w„{w„{~w…{~x…|~x‚€€{€€{€~}€~~ƒ}ƒ}~{€~{€~z€€~~‚y€{‚y€{„|~|„}~}†|~}†|~}‡}~}‡}~|‡}~|~„~‚‚}€}}~€ƒ~ƒ~ƒ~€~€€~~€~€~~€z~€z€~„~†~†~‡€~€ˆ€~€ˆ~€~~~~{~y~y~€w€~€v€~v€~v€~v€~~v€~~ww€€w€~w€|ƒw€zƒw€z„xy…yx…zx…zx…zw†{~x…|~w‚~€{€{~|~~}„~~}„~~}„~~{„~~{„~~{}~|€€{‚{~}‚{~}„|~}„}~|†}~|†}~|†|~|ˆ|~}ˆ}~|ƒ€†~}~€}}€‚~€…~…~…~„~„~€{€~{€{€}~}~}‚~~ƒ~~…€~…€~†~ˆ~ˆ~{{~€{|{y{y{€w‚|v‚|v‚|v‚}w‚}~w‚}~xv€v~‚v}ƒw{ƒw{…wz†xy†yy†yy†zx‡z~y‡z~y‚€z€z~~|ƒ~~}…}~|…}~|†}~}†}~|…~~{|€|~~€{~~‚{~~‚{~~„|~}…|~}†|~}†|~}†|~|‡|~|ˆ|~|~ƒ€~ƒ€~~‚|}€~~}€~~~„~†~†~‡~‡~‡~€€{~|~€}}‚}~~‚}~~ƒ~„~~…€~…€~†€~‡€~ˆ~}„‚x}„‚x|…w|…w{„€u|‚€t|‚€t|‚€t}€t|‚uz‚uy‚~€z‚}xyz‚€z‚€z‚ƒz€u‚|€t‚|€t€z‚z…{~v‡‚~ƒ‚w{…€v{ƒ€u{ƒ€uz‚u{~v~vz~xx‚‚wz|€uy}y}ƒ|vy{y‚yy‚yƒ{v‚~~x€…~€ƒŒy‰yyƒvyƒvx„v{„‚}€ˆ‚~wwxx‚yx{x{~€ux‚yƒz€v}ƒ€‚{€‚y€|‚v€|‚v~u~€€t€~€t€~€t}€t‚vx‚€w‚}x‚y€x‚~€x‚~€y‚|€y‚|y‚zy‚z€y‚z†{~wz‚w|‚~€‚zu}€€t}€€t~~z~v|€~v|€~vz~w€}‚ww‚€u|„wywwy{w‚{‚xy‚xy„{€w‚xy|€‰…~ƒ„‚~…}‚}‚}‚~€|‚x}€~v€}tx€……~‚ˆ‚}w‚w‚€x€‚x€{ƒwx„y€v„{w{ƒ~‚z€|‚y{‚v{‚v€t}€t~uw‚w|‚vz„v€y„v€y€w‚}|vx{x{‚xzw‚z‚ywy‚zy|€vƒz€uƒz€u€~t€|z}€v}€v€{‚x~x€~xu€‚u€|…wzx}x}w}…{~v‚v|‚v|‡|~y‡|~yƒxwy‡ƒ}€‹‚}‚€{ƒ€{ƒz‚y‚~~€t~€tƒ|vvt}ƒv€y€v€~€v€~€v€w€}‚u{‚u{‚u{„w€w…yvy‚~€z‚}xyz‚€z‚€z‚ƒz€u‚|€t‚|€t€z‚z…{~vv‚€w‚~‚u{„u€y„u€y†vy€w‚|†yv†yvxyˆy~xƒxwx‚‚wz|€uy}y}ƒ|vy{y‚yy‚yƒ{v‚~~xut€|„w€y€w}€w}v€ƒyv‚uz‚uz‰|~z„w€x„w€y{„‚}€ˆ‚~wwxx‚yx{x{~€ux‚yƒz€vt€t€}ƒu€z„w€y„w€yƒx€yu€}„xw„xw…vx‡yx…wxƒ‚~|‰{}ƒ‚x}ƒv}ƒv}‚t}€t|u|u{~v|ƒ€€y‚|z‚~zyzyƒ{€uƒ{€uƒ|uƒ|uz‚w„‚~zˆz{ƒ€uz‚uz‚u}‰|y~yy~yw}zx‚‚w€z…zxy}y}€y~€x‚|y‚zy‚z€x‚|‚zv…~}{…‚~‚}„u}ux€~z{~w€x~|~ƒy€y}vƒ}vƒ~u‚wyƒxwƒxw„x€wƒy€v…yw}ƒ~ƒ{€}‚w~€‚|~€‚|~u€~€t|u|~vx‚~v{‚vz€y}€y}€x‚}y{y‚zy‚zƒ|u„|u‚yx‚‚{x}€u€}~€}~}‚}{€~x‚~~y‚~~y}€t€€t{€}{w‚€ƒw€z†yxy€~y€~x~x|‰~}~‰~}~ƒy€yƒwx|€~€}€|€}y|ƒ€|ƒ€~{‚„€}€v}€v}€v|u€}€uv€€~„x€y‚}€v‚y€wƒv€zƒv€z„v€y„w€w…x€v{‚~€y‚{{w|v|v€}€t€~€t‚|t‚|t€|‚w~~utv|ƒvzw‚w‚€w~€w‚}‚w{‚w{yyw‚{‚xxw€‚xy‚{€y|€{|€{€|z€{‚z‚~~y‚~~y€~€w{v{vu‚u€{†y~{‚x€~‚x€~€v€v‚‚v|‚v|ƒvzƒwy„w€wz€~€}€~ƒyx}y‚„}y‚„€y‚}}€vƒz€xƒz€xƒ{€u‚zuƒz€uu€ƒz|„x{„x€w„x€wu€}u€}„v€x„v€xˆz~y†xv†wx|ƒ€€y‚|z‚~zyzyƒ{€uƒ{€uƒ|uƒ|uz‚wx‚€€w}‚wy„v€x„v€x€w}yx‡xx‡xx…{v‡z~w†|~wx‚‚w€z…zxy}y}€y~€x‚|y‚zy‚z€x‚|‚zv…~}{€t€~€u}„w€zv}v}ƒw€yu€}„yx„yxƒy€w„|~z„v€y€x~|~ƒy€y}vƒ}vƒ~u‚wyƒxwƒxw„x€wƒy€v…yw~x~€u€~„w~}‚w~‚w~…wy…wy…|v…|v†vx…zw€‰}†‚z}ƒv|ƒ€u|ƒ€uy…€u~€€tzƒuzƒu|€~ww‚~~‚|‚yx‚{€u‚{€u„y€v€z|‚{€x‚{€x†}~y‚zv†…w‡or†}oo†|uo†|uqƒ{tz„€ux€}|y†€v}uw‚~ƒ{y…}~z€y€€y€x~€uy{y{‚yw‚yw‚{€u~z€yƒv}€~w{€}z{€}z{€~yz€{€}~€{u€„{u€„„zw„x€yƒvxƒvx„w€w„w€w…}~zƒ€ƒ{v~y~y€u~t}€u}€uz‚~v~€~w€tv‚u€|ƒwx†wx†wxx}€y}ƒ{€xƒ{€xy‚x„}w‚yw}~ƒ}y€~z€}~€}~}‚}‚~~y~y€~yu„yy~y~€€w€€w€v~†z{‰}}|‰}}|ƒxx„v€x{€~ƒ{‚|€~‚w}x…ˆ}x…ˆ€~vz}€ƒ~~xƒ~~x|v€~~u‚|€ty€€~~t€~t€…w{…wz„v€x„v€x†yy…x€w…yvy‚€{‚{{w€{{€{{|‚}€|y~€u~€uƒ}~vt€v|‚wz{x{x€w|„{u}u}uw|‚xy‚wyz‚„{y„~~z†~}|†~}|z‚€z‚y€z|€z|{w‚{xt€‚x€|ƒy€x€w~€w~yyv~‡~}|‡~}|‚vzƒ{u…w€w}€~€|}ƒ{€z~w~w„|wƒz€{‚z€w‚z€wƒz€uƒ|v„{u~y‚z}…}|ƒ|ƒ|ƒ|~…w{†y~{†y~{†xw†xwˆz~{w‚~~‚|‚yx‚{€u‚{€u„y€v€z|‚{€x‚{€x†}~y‚zvt€€u}x|†v{†v{†xx‚yw„w{„w{„y€wƒww‚vzw‚~ƒ{y…}~z€y€€y€x~€uy{y{‚yw‚yw‚{€uut€|ƒu€z€w€|€w€|„w€w‚x€xˆ|~|ˆ|~|„y€w…v€yƒuzz€{€}~€{u€„{u€„„zw„x€yƒvxƒvx„w€w„w€w…}~z~w€‚v}…y~}‡{~|‡{~|ƒv}†y~}…x~}…x~}†wy‡w~y†xx‡‚~ƒ‚w{…€v{ƒ€u{ƒ€uz‚u{~v~vz~xx‚‚wz|€uy}y}ƒ|vy{y‚yy‚yƒ{v‚~~x€…~€ƒŒy‰yyƒvyƒvx„v{„‚}€ˆ‚~wwxx‚yx{x{~€ux‚yƒz€v~}€‰€€‰€|~}‚|~}‚v~}‚{€}|{€‚|€|…}}„{~„{~ƒx~„v|„yw„yw†zx…{~w†|~x|‚~€‚zu}€€t}€€t~~z~v|€~v|€~vz~w€}‚ww‚€u|„wywwy{w‚{‚xy‚xy„{€w‚xy|€‰…~ƒ„‚~…}‚}‚}‚~€|‚x}€~v€}tx€……~‚ˆ‚}w‚w‚€x€‚x€{ƒwx„y€v„{wx‚~„y‚x€~€{ƒ~~ƒ~~€{€~‚{vƒ}~}ƒ}~}|€u‚}x‚~~{z‚z|…|}…{~…{~ƒv}ƒu{†wx†wx…wyˆ{~z…|~wy‚zy|€vƒz€uƒz€u€~t€|z}€v}€v€{‚x~x€~xu€‚u€|…wzx}x}w}…{~v‚v|‚v|‡|~y‡|~yƒxwy‡ƒ}€‹‚}‚€{ƒ€{ƒz‚y‚~~€t~€tƒ|vvt}ƒv€y€v€~€v€~€v€w€}‚u{‚u{‚u{„w€w…yvx‚„y‚xƒ}€{ƒ~€ƒ~€‚x€|„y€{‚xx‚xx„y€v„|v„{v€ƒz~†{|ƒ|~€ƒ|~€…|~ƒw}‡xy‡xy‡xx‡y~xˆz~yx‚‚wz|€uy}y}ƒ|vy{y‚yy‚yƒ{v‚~~xut€|„w€y€w}€w}v€ƒyv‚uz‚uz‰|~z„w€x„w€y{„‚}€ˆ‚~wwxx‚yx{x{~€ux‚yƒz€vt€t€}ƒu€z„w€y„w€yƒx€yu€}„xw„xw…vx‡yx…wx{€‚|€|…}}„{~„{~ƒx~„v|„yw„yw†zx…{~w†|~xy~‚|~~†|~}†}~†}~…|~~†z~}†z~{†z~{†w~{ˆz~zˆz~yÍÍÍÍÍ€€€Í€€Í€Í€Í‚Í‚‚‚Í‚‚‚ÍÍÍÍÍÍ€€Í€€€ÍÍÍÍ‚‚‚Í‚‚Í~̀̀ÍÍÍ€€‚̓͂‚Í‚‚Í‚‚„̓ƒƒÍƒƒÍ~Í~̀̀€Í€€Í€€ÍÍÍÍ‚‚̓ƒÍƒƒ„Í͂̈́Í~~Í~~Í€€Í‚‚}̓‚̓‚̓ƒÍƒƒÍ„ƒÍ}}~Í{Í}Í~~~Í~~~Í~ÍÍÍÍ€€ƒÍÍ‚‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€€Í€€€Í€€€Í͂͂͂‚‚Í‚‚€Í‚‚Í~Í~ÍÍÍÍ€€Í€€Í€€Í€€ÍÍ‚‚‚Í‚‚ÍÍ̀̀€Í€€Í€€€ÍƒÍ‚‚ƒÍ‚‚ƒÍ‚‚ƒÍƒƒ̓ƒ€Í~Í~Í~Í~Í~Í€€Í€€ÍÍÍÍ‚‚Í‚‚Í~~~Í~Í‚Í~~€Í~~€ÍÍÍ€€Í€€Í‚‚€ÍƒƒƒÍ„„Í}}~Í~Í|Í~~~Í~~~Í~Í~~}Í~~Í~~̀̀€€Í€‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€€Í€€€Í€€Í‚ÍÍ͂͂‚Í‚‚Í~~~Í~~~Í~~~Í~Í~Í~Í€€€Í€€Í€€ÍÍÍ€Í~Í~̀̀€Í€€Í€€‚̀͂‚Í‚‚Í‚‚€Íƒƒ„̓ƒ„Í~~~Í~~}Í~~}Í~~~Í~~~Í~Í€€‚Í€€~Í€€~͂͂͂‚Í}}~Í{ÍÍ~~Í~~Í€Í~͂͂ÍÍ‚‚‚̓ƒÍ~~|Í}}}Í}}~Í||~Í||~Í}}}Í~~Í}Í}Í}ÍÍ€€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€Í€€€ÍÍÍÍ‚‚‚Í‚‚Í~~~Í~~~Í~~~Í~~~Í~~~Í~Í~̀̀̀€Í€ÍÍ~Í~̀̀€Í€€Í€€ÍÍÍÍ‚‚̓ƒÍƒƒ„Í}}}Í}}}Í}}~Í}}~Í}}~Í~~}Í€Í~Í~Í€€Í€€Í€€Í}}~Í{Í}Í~~~Í~~~Í~ÍÍÍÍ€€ƒÍÍ‚‚Í}}|Í}}}Í||}Í||~Í||~Í}}Í}}}Í}}€Í}}€Í~Í€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~Í̀̀̀€Í€€‚ÍÍÍ‚‚‚Í‚‚ƒÍ‚‚ƒÍÍÍÍ€€€Í€€€Í€€Í͂͂͂Í‚‚Í‚‚€Í~Í}Í͂͂̀€~ÍÍ‚‚ƒÍ‚‚ƒÍƒƒ̓ƒƒÍ„„Í~Í~ÍÍÍÍ€€ÍÍÍÍ‚‚~̓ƒ€ÍƒƒƒÍÍ~~Í‚ÍÍ̀͂͂‚Í‚‚Í‚‚ƒÍ„ƒƒÍƒ„Í~~~̀̀Í||~Í||~Í|}~Í}~Í~~Í~~̀̀€Í‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̀̀€€Í€€€Í€€Í‚ÍÍÍ‚‚ƒÍ‚‚ƒÍƒƒÍ~Í~Í~ÍÍÍ€€Í€€ÍÍ͂͂‚‚Í‚‚ÍÍÍ̀̀̀€€ÍƒÍ‚‚„Í‚‚„̓ƒÍƒƒ‚Í„„„Í~Í~~}Í~~ÍÍÍ€€Í€€͂͂̀͂‚Í‚‚Í}}~Í~Í€€€Í~~Í~~Í~~Í~~‚Í€‚Í€‚Í‚‚̓ƒÍƒ„Í~~}Í€Í~ÍÍÍ||Í|}€Í}~~Í}~~Í~Í€€Í€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€€Í€€€Í€€Í‚͂͂͂‚Í‚‚€ÍƒƒƒÍ~~}Í~~~Í~~~Í~Í~ÍÍ€€~Í€€Í€€ÍÍ~Í‚‚Í~Í~Í€ÍÍÍ€€ÍÍ‚‚„Í‚‚„Í‚‚‚̓ƒ€Í„ƒ€Í~~~Í}}}Í}}|Í~~~Í~~~Í~Í~Í€€~Í€€~Í~ÍÍÍ~~~Í~Í€Í}}Í}}Í}~Í}~Í~Í~̀͂€Íƒƒ€Í~~|Í~~}Í}}~Í}}Í}}Í~~}Í}}}Í}}~Í}}~Í~~̀̀~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€€Í€€€Í€€Í͂͂͂Í‚‚Í‚‚€Í}}~Í}}~Í~~~Í~~~Í~~~Í~~~ÍÍÍÍ€€ÍÍ‚Í~Í~ÍÍÍÍ€€ÍÍÍÍ‚‚~̓ƒ€ÍƒƒƒÍ|||Í||}Í}|~Í}}~Í}}~Í~~Í}̀̀̀€€Í€€‚Í~Í~~~̀̀Í||~Í||~Í|}~Í}~Í~~Í~~̀̀€Í‚Í}}{Í}}|Í}}|Í||}Í||}Í~}~Í~}Í~~‚Í~~‚Í~~Í~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}Í̀̀̀̀€Í‚͂͂͂‚Í‚‚Í‚‚„Í~ÍÍÍ€€€Í€€€Í€€€ÍÍÍÍ‚‚Í‚‚ƒÍƒƒ€Í€€~Í~~Í~~„͇̓̓̀€‚̓‚̓‚̓ƒƒÍƒƒ€Í„ƒƒÍ€€~Í~Í€ÍÍÍ€€ÍÍÍÍ‚‚Í‚‚€ÍƒƒÍÍ€~~ÍÍÍ͂͂ͅƒ„Í‚ƒ„̓ƒ„̓ƒÍ„„Í~~Í~~ÍÍ|}~Í|}~Í}}Í|}€Í}~~Í}~~̀̀͂ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̀̀€€Í€€€Í€€‚͂͂‚ƒÍ‚‚ƒÍ‚‚ƒÍƒƒƒÍƒƒ‚Í~Í}ÍÍ~Í~̀̀€ÍÍÍÍ‚‚Í‚‚€Í€€~Í͂̀̀̀€€Í€€̀̀̓ƒÍ„ƒÍ„ƒ„Í}Í~~~Í~~~Í~Í~Í€€~Í€€ÍÍÍÍÍ‚‚Í~|Í€~Í€~‚Í~Í~Í~‚Í~€Í€„Í€„Í‚‚€ÍƒƒƒÍƒ„Í~}Í~ÍÍ||}Í||}Í||~Í||Í|}~Í|}~Í}~€ÍÍ€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€€Í€€€Í€€€ÍÍ‚‚Í‚‚Í‚‚ƒÍƒƒ̓ƒÍ~~}Í~~}Í~~~ÍÍÍÍ€€Í€€Í€€Í~ÍÍ‚‚~Í€€~Í~Í€ÍÍÍ€€Í̀̀͂‚€Íƒƒ€Í„ƒÍ}}}Í}}~Í}}Í}}~Í}}~ÍÍ~Í€€ƒÍ€€ƒÍ€€~Í€€‚ÍÍ~}~Í~~Í€Í}~Í}~Í}‚Í}€Í~€Í~€Í€€Í‚‚Í‚ƒ‚Í~|Í|Í}}}Í~}Í~}Í}}€Í~~~Í}~Í}~Í~~€ÍÍ€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~ÍÍÍ€€€Í€€€Í€€€ÍÍÍÍ‚‚Í‚‚ƒÍƒƒ€Í}}|Í}}}Í}}~Í~~}Í~~}Í~~ÍÍÍÍ€€€Í€€Í~Í€€~Í~Í€ÍÍÍ€€ÍÍÍÍ‚‚Í‚‚€ÍƒƒÍ|||Í||}Í||}Í||~Í||~Í}}Í~~̀̀̀€€Í€€~Í€€~Í~~Í~~ÍÍ|}~Í|}~Í}}Í|}€Í}~~Í}~~̀̀͂ƒÍ~~{Í}}|Í}}|Í}|~Í}|~Í}}|Í}}}Í~~}Í~~}Í~~~Í~~~Í€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~̀̀ÍÍÍ€€‚̓͂‚Í‚‚Í‚‚„̓ƒƒÍƒƒÍ~Í~̀̀€Í€€Í€€ÍÍÍÍ‚‚̓ƒÍƒƒ„Í͂̈́Í~~Í~~Í€€Í‚‚}̓‚̓‚̓ƒÍƒƒÍ„ƒÍ}}~Í{Í}Í~~~Í~~~Í~ÍÍÍÍ€€ƒÍÍ‚‚ÍÍÍÍ~Í~ÍÍ̓ƒ„̓ƒ„̓ƒƒÍ„„„Í„„Í}Í~ÍÍ~}~Í~}~Í}}~Í}}~Í~~€Í~~€Í€Í€‚Í‚‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ̀̀€Í€€Í€€€ÍƒÍ‚‚ƒÍ‚‚ƒÍ‚‚ƒÍƒƒ̓ƒ€Í~Í~Í~Í~Í~Í€€Í€€ÍÍÍÍ‚‚Í‚‚Í~~~Í~Í‚Í~~€Í~~€ÍÍÍ€€Í€€Í‚‚€ÍƒƒƒÍ„„Í}}~Í~Í|Í~~~Í~~~Í~Í~~}Í~~Í~~̀̀€€Í€‚Í|z|Í€~Í€€Í~~‚Í~~‚Í~Í}€Í€ƒÍ€ƒÍ‚‚̓ƒƒÍƒ„„Í|Í}Í€€~Í}Í}Í}|}Í}}}Í}}Í}}Í~~̀̀‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~Í~̀̀€Í€€Í€€‚̀͂‚Í‚‚Í‚‚€Íƒƒ„̓ƒ„Í~~~Í~~}Í~~}Í~~~Í~~~Í~Í€€‚Í€€~Í€€~͂͂͂‚Í}}~Í{ÍÍ~~Í~~Í€Í~͂͂ÍÍ‚‚‚̓ƒÍ~~|Í}}}Í}}~Í||~Í||~Í}}}Í~~Í}Í}Í}ÍÍ€€€Í}~Í}~Í€Í~~€Í~~€Í}Í}~€Í~Í~Í€€Í‚‚Í‚ƒ‚Í{Í~~|Í~~}Í~}}Í~}}Í~}Í~~}Í~}Í~}Í̀̀€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~Í~̀̀€Í€€Í€€ÍÍÍÍ‚‚̓ƒÍƒƒ„Í}}}Í}}}Í}}~Í}}~Í}}~Í~~}Í€Í~Í~Í€€Í€€Í€€Í}}~Í{Í}Í~~~Í~~~Í~ÍÍÍÍ€€ƒÍÍ‚‚Í}}|Í}}}Í||}Í||~Í||~Í}}Í}}}Í}}€Í}}€Í~Í€ÍÍ}Í~ÍÍ~}~Í~}~Í}}~Í}}~Í~~€Í~~€Í€Í€‚Í‚‚Í}}{Í}}{Í}}|Í}|~Í}|~Í}}Í~}Í}}Í}}Í~~|ÍÍ€€€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€z~~z~~z~€{}z}€‚~€‚~€‚||€~~|€~~~~‚~…~€…~€‡~€‡~‡~€zzƒzzƒ€€{|‡{|‡{}‡|}~‡{}~†~|~}{~€{~~{~~~‚~‚‚~€…‚~€…‚~€‡‚~ˆ~‚‡~ƒw‚€x€~z„|{€ˆ|{€ˆ}z…}{‡|zˆ|zˆ}}€‰||€‰}}€Š€†€…~†}~†~~†~ˆ‡„‡ƒ„‡ƒ…†………†…„†‚~…~~{{~……„~€ƒ~€‚~~€€~€€~€~€z~€z€€~ƒ€~…~…~‡€~€ˆ€~€ˆ€~€…z~|{z~‚z~z~~…€…€…€„€~‚‚€„~‚‚|‚~~|‚~~~‚~‚‚~€…‚~…‚~‡‚~ˆ‚~‚ˆ‚~‚…€€€„€€}ƒ€|}…€{}…€{~†~€†‚ƒ…€†ƒ…€†ƒƒ€ˆ‚€ˆ‚ˆ€†€†~†~~‡~~‡~€‡‚‡„‡‚„‡‚…†„††…†„…ƒ‚~€ƒ„~~~~|~~|~~~‚……†~…~…~€€||€|}ƒ~}ƒ~}‚~~ƒ~~„€~„€~†~~‡~ˆ~€€{~||~€z€~~z€~~~‚€…~€…~€‡~‡~ƒ…~„‚~~ƒ~€„~€„~„~ƒ~‚ƒ~„ƒ~„ƒ~†‚~‡‚~‚ˆ‚~‚†€…}…}}†€}}†€}~‡€ˆ€ƒ‡€„ƒ‡€„……†„„‡„‚‡€†…†††€‡€‚‡„†ƒ„†ƒ…†ƒ†…„‡„…€‚~€‚~€‚||€~~|€~~~~‚~…~€…~€‡~€‡~‡~|~~€|~‚}~}‚~~~‚~~~ƒ~…~~…€~…€~†€~‡€~ˆ~~|~}{~€{~~{~~~‚~‚‚~€…‚~€…‚~€‡‚~ˆ~‚‡~ƒƒ~ƒ~€ƒ~€‚„~€‚„~€ƒƒ~ƒƒ~„ƒ~„ƒ~†ƒ~‡ƒ~‚‡‚~‚€†€…~†}~†~~†~ˆ‡„‡ƒ„‡ƒ…†………†…„††€†€€†€€†€€†€‡‚†‚ƒ†‚ƒ†‚……„†…„†…„€~€z~~ƒz~~ƒz~~‚z~}‚{~~ƒ€„€€…€~„|z€~z€~~€‚€€…€~€…€~€‡€~€‡€~€‡€~€|y€…|y„zz…zz…{z€ˆ{z€ˆ{|‰{}~ˆ{}~‡ƒ~~{~~|ƒ~~|ƒ~~~„~‚„~€…ƒ~…ƒ~‡ƒ~‚‡ƒ~ƒ‡‚~„z‚~|‚ƒ~z„}z†}z†~{†|z‡}{ˆ}{ˆ|{€‰||€‰||€‰€†€€†€€†€~‡€~‡€€ˆ€€ˆ€‚ƒˆ€„ƒˆ€„„†€………€‡…„‡€€€ƒ~€€~€{{~………€„~€‚~€~€~z~€~‚~€…€~€…€~€‡€~€ˆ~ˆ€~€„€~€{€~}z~z~~€†††~ƒƒ€~„‚€†€‚~~€}~~|„~~|„~~„~‚„~€…„~…„~‡„~‚ˆƒ~ƒˆƒ~ƒƒƒ€~ƒ€}~ƒ|~ƒ|„‚~€„‚‚„†„†ƒˆ€ˆ€‰€‡€‡~‡~‡€€‡€€€ˆ€€ˆ€ƒˆ€ƒƒˆ€ƒ„‡€„…†…†…†€‚~€‚~€€„~{{~‚…€…€‡€€†€~€…€~|~z€{}ƒ~~}ƒ~~}‚€~~‚€~„€~€„€~€†€~€ˆ€~€ˆ~€‚~€~{~~z‚~}z‚~}~ƒ~‚ƒ€…‚~…‚~‡‚~ƒ†‚~„†~„„„„€„€„€€„‚„~„„~‚„„~‚†„~‚‡ƒ~‚‡„~„€…€…€€~…€}~†€}~†€}‡‡‚‚†…‚†…ƒ…€‡ƒ„€ˆƒƒˆ€‡€€†€‡‡‡€‡€‚‡‚ƒ‡ƒƒ‡ƒ„†……†…†††€„€€…€~„|z€~z€~~€‚€€…€~€…€~€‡€~€‡€~€‡€~€‚~~~~‚~~~‚~‚~„~~ƒ€~…€~€…€~€†~€‡€~€ˆ~ƒ~~{~~|ƒ~~|ƒ~~~„~‚„~€…ƒ~…ƒ~‡ƒ~‚‡ƒ~ƒ‡‚~„……~€…€……„~ƒ„~„„~„„~†„~‚‡ƒ~‚‡„~ƒ€†€€†€€†€~‡€~‡€€ˆ€€ˆ€‚ƒˆ€„ƒˆ€„„†€………€‡…„‡‡€€‡€€†€€‡€‡‡‚‚‡‚ƒ‡ƒƒ‡ƒ„‡„…†…†……}wwz}~…z}~…z}~…{~~„{~~ƒ€‚€‚z€~~z€~~~~‚~€…€~€…€~€‡~ˆ€~‡~‚„}z†}|€ˆ}{…}{…„„||€ˆ||€ˆ{|‰z{‰}}‰€„~€„~}„~~}…}}…}†‚†€„†‚„†‚†…„‡„…†ƒ…~{‚€€x‚~{‚‚}z‡}z‡}{‡}}€Š}|ˆ}|ˆ~}‰}}€Š}}€Š€†€‚†€€‡€‡€‡€€‡€†ƒ‚‡„‚‡„ƒ†€†ƒ…€‡„„€ˆ€„ƒzz~………€„~ƒ€~ƒ€ƒ~€{~~{~~~~‚~€…~€…~€‡~€ˆ~ˆ~‚…€ƒƒ|‚}z…|z…|~…~……„„…„„„‚†ƒ†‚‡€…~€„~~„~~}†~}†~†‚†€„†‚„†‚†…ƒ‡…„‡„~…‚€‚€‚~‚‚}~‚‚}‚‚€ƒ‚ƒ€‚†€‚†‚ˆ€‰€€‰€‡€€‡€‡€€ˆ€ˆ€€ˆ€€‚ˆ€‚ƒ‡€ƒƒ‡€ƒ„‡€…„†€†…†€‡€€„„€z€z€~€€…€€…€€‡€~€†€~…€~‚€€~~~€€~‚~‚~~€‚~€„‚~€„‚~€†~‡~ˆ~„€€„~€|„~|…}|…}~†~†……ƒ……ƒ†„…†ƒ……‚†€„€„~„…€…€€…€‚†„†‚„†‚……ƒ†„~ƒ‡„~„€„„…†~†~€…€†‚‚…„‚…„‚„‡ƒ„€ˆƒƒˆ‡€€‡€€€‡€€€‡€€‡€€ˆ€‚ˆ€‚ƒ‡€„ƒ‡€„„‡€„„†€………†€‚€‚z€~~z€~~~~‚~€…€~€…€~€‡~ˆ€~‡~‚~~€~‚‚~€‚‚~€ƒ‚~€„‚~„‚~„‚~†‚~‡‚~ˆ‚~‚€„~€„~}„~~}…}}…}†‚†€„†‚„†‚†…„‡„…†ƒ………€…€€†€€†€†‚†‚„…‚„…‚……~ƒ†…~ƒ‡„~„€†€‚†€€‡€‡€‡€€‡€†ƒ‚‡„‚‡„ƒ†€†ƒ…€‡„„€ˆ€ˆ€€€‡€€‡€€€‡€€‡€‡€‚‚‡€‚ƒˆ€ƒƒˆ€ƒ„‡„…†……††€zzƒzzƒ€€{|‡{|‡{}‡|}~‡{}~†~|~}{~€{~~{~~~‚~‚‚~€…‚~€…‚~€‡‚~ˆ~‚‡~ƒw‚€x€~z„|{€ˆ|{€ˆ}z…}{‡|zˆ|zˆ}}€‰||€‰}}€Š€†€…~†}~†~~†~ˆ‡„‡ƒ„‡ƒ…†………†…„†z‚€|‚ƒ~{‚„}z‡}z‡~}‡}|‰}|†}|†}|ˆ~}‰}}€‰€†€…€†††€‡†ƒ†„†„‚…†ƒ…€‡ƒ…€ˆ…z~|{z~‚z~z~~…€…€…€„€~‚‚€„~‚‚|‚~~|‚~~~‚~‚‚~€…‚~…‚~‡‚~ˆ‚~‚ˆ‚~‚…€€€„€€}ƒ€|}…€{}…€{~†~€†‚ƒ…€†ƒ…€†ƒƒ€ˆ‚€ˆ‚ˆ€†€†~†~~‡~~‡~€‡‚‡„‡‚„‡‚…†„††…†„…‚‚€~‚{‚€‚€‚‚€‚‚„€‚‚…€‚‚…€ˆ€ˆ€€ˆ‡‚€‡€‡€€‡€€€‡€€€‡ˆ‚‚‡ƒ‚‡ƒƒ†€…ƒ†€†„…€‡€€{~||~€z€~~z€~~~‚€…~€…~€‡~‡~ƒ…~„‚~~ƒ~€„~€„~„~ƒ~‚ƒ~„ƒ~„ƒ~†‚~‡‚~‚ˆ‚~‚†€…}…}}†€}}†€}~‡€ˆ€ƒ‡€„ƒ‡€„……†„„‡„‚‡€†…†††€‡€‚‡„†ƒ„†ƒ…†ƒ†…„‡„…„€„„€…~…~„‚€€„ƒ„…„…„†‚ƒˆ‚ƒ€‰‡€€‡€€€‡€€‡€€‡€‡€‚ˆ€‚‚‡€„‚‡€„ƒ‡€…„†€†„…€‡~|~}{~€{~~{~~~‚~‚‚~€…‚~€…‚~€‡‚~ˆ~‚‡~ƒƒ~ƒ~€ƒ~€‚„~€‚„~€ƒƒ~ƒƒ~„ƒ~„ƒ~†ƒ~‡ƒ~‚‡‚~‚€†€…~†}~†~~†~ˆ‡„‡ƒ„‡ƒ…†………†…„††€†€€†€€†€€†€‡‚†‚ƒ†‚ƒ†‚……„†…„†…„€†€…€†††€‡†ƒ†„†„‚…†ƒ…€‡ƒ…€ˆ€ˆ€€€‡€€ˆ€€€ˆ€€ˆ€ˆ€‚‚‡€ƒ‚‡€„‚‡€„ƒ‡€„„‡€…„†€†y~y~y}€z}{}~ƒ€~ƒ€~~‚|}€~~}€~~~„~†~†~‡~‡~‡~€€{{‚{{‚€€z{ˆz{ˆz|ˆ|}~ˆ{}~‡€~|~}{~€{~~{~~‚€‚ƒ…‚~‚…‚~‚‡‚~ƒ‡‚~„†~ƒx‚€y‚}z…|{€ˆ|{€ˆ}{‚„~|‚†|{ˆ|{ˆ||‰}}€Š}~€Š†~†~~†~~‡~~‡~ˆ€‡€ƒ†€„ƒ†€„…………„€‡„ƒˆ~„~‚‚}€}}~€ƒ~ƒ~ƒ~€~€€~~€~€~~€z~€z€~„~†~†~‡€~€ˆ€~€ˆ~€„z~|{{~‚z€~z€~~€€„„ƒƒ‚~„~…~‚‚|‚~~|‚~~ƒƒƒ~…ƒ~‚…ƒ~‚‡ƒ~‚‡‚~ƒˆ‚~ƒ…€€„€€}ƒ€|}…€{}…€{~†~€†‚‚„†‚„†‚‚€ˆ€€€‰€€€‰†~†}†~~‡~~‡~€‡‚‡„‡ƒ„‡ƒ…†„†…††„†ƒ€†~}~€}}€‚~€…~…~…~„~„~€{€~{€{€}~}~}‚~~ƒ~~…€~…€~†~ˆ~ˆ~€~€|~||~€z€~z€~~€‚…‚…‚†~ƒ…~„„~…‚~~ƒ~~€„~„~„~ƒ~‚ƒ~…ƒ~‚…ƒ~‚†ƒ~‚‡ƒ~‚ˆ‚~ƒ†…}…}}‡€}}‡€}~‡€‡€‚ƒ†€„ƒ†€„„„€‡ƒƒ€ˆƒ‚ˆ…†~†††€‡€‚‡‚„†ƒ„†ƒ…†„††…†……~ƒ€~ƒ€~~‚|}€~~}€~~~„~†~†~‡~‡~‡~€€{~|~€}}‚}~~‚}~~ƒ~„~~…€~…€~†€~‡€~ˆ~€~|~}{~€{~~{~~‚€‚ƒ…‚~‚…‚~‚‡‚~ƒ‡‚~„†~ƒƒ~~ƒ~€ƒ~„~€„~€‚„~ƒ„~…„~‚…„~‚†ƒ~‚‡ƒ~ƒˆ‚~ƒ†~†~~†~~‡~~‡~ˆ€‡€ƒ†€„ƒ†€„…………„€‡„ƒˆ†††€€†€€†€‡‚‡‚„†ƒ„†ƒ…†„††„‡……€~}{‚~}€~€y}~„y}~„y~}‚z~}ƒ{~}‚„€†|‡z{€~{€~~€„~…€~€…€~€‡€~‡€~†€~~}€}|‚||ƒ||ƒ{{€‰{{€‰{|€‰{}‰|}‰ƒ~~~|~~|ƒ~~|ƒ~~„‚„…„ƒ…„ƒ†ƒ„‡ƒ„†‚~…z‚~~z‚ƒ~z„|z‡|z‡~|…}|†}{‡}{‡}|‰||€‰||€Š‡€†€~‡€~~‡€~~‡€~ˆ€€‡€‚‚‡€„‚‡€„ƒ†€†„„€‡„„€ˆ€ƒ~…~€~~~€€„€„€ƒ~~€~‚~€}€€}y€~€ƒ~€†~€†~€‡~ˆ€~ˆ€~€„€~{€~~z~z~~€€…‚…‚„€„‚€†€‡‚~~~|‚~~}„~~}„~~„~‚……„‚…„‚†„ƒ‡ƒ~„‡ƒ~„ƒ~ƒ~ƒ|~ƒ}~ƒ}ƒ‚€„‚‚€‚†€‚†‚ˆ€€€ˆ€€€Š‡‡~‡~ˆ€ˆ€€ˆ€€ˆ€ƒ‡€„ƒ‡€„„‡€……†††…†‚~ƒ~€Š~~~~€‚€~…€~€…€~€†€~…€~„€~{~y€z}‚~~}‚~~}‚€~„~…~€…~€‡~ˆ€~€ˆ~‚~€~|~~z‚~}z‚~}~ƒƒ…‚‚…‚‚†‚„…‚……~…„~„~„€„€„€€„‚…~„…‚„…‚†„~ƒ‡„~„‡„~…†€…€~…€}~†€}~†€}†€†‚‚……‚……ƒ„€‡ƒƒ€ˆ‚‚€‰‡†‡‡‡€ˆ€€‚ˆ‚ƒ‡€ƒƒ‡€ƒ„†€……††……†„€†|‡z{€~{€~~€„~…€~€…€~€‡€~‡€~†€~€}~~}~}~~~~~~„€~„€~…~€…~€‡~ˆ€~€ˆ~ƒ~~~|~~|ƒ~~|ƒ~~„‚„…„ƒ…„ƒ†ƒ„‡ƒ„†‚~………~…€…€…€…~ƒ…~‚„„~‚„„~‚†„~ƒ‡„~ƒ‡„~„‡€†€~‡€~~‡€~~‡€~ˆ€€‡€‚‚‡€„‚‡€„ƒ†€†„„€‡„„€ˆ‡‡€‡€€‡€€‡€‡‚‡€‚ƒ‡ƒƒ‡ƒ„‡„…†…†††~ww~~€~€z|‡z|‡y}~†z}~…{~~…~‚ƒ~z~~z~~€‚€ƒ‚…~‚…~‚‡~‚‡~‚†~ƒ„~~€‚}|€ƒ}}€…}}€…ƒƒ}|‰}|‰||€‰{|‰|}‰„~~„~}„~}}…}}…}†‚†„…ƒ„…ƒ†„…†„††ƒ†z‚y‚€~z‚ƒ}z‡}z‡~{‚ƒ~|‚…~|‡~|‡~}ˆ}|‰}}І€†€‡€~~‡~~‡~€ˆ€‡‚‚†„‚†„ƒ††ƒ…€‡ƒ„€ˆ…„€ƒzz~€„„ƒ‚‚~ƒ~„‚~{~~{~~‚~€ƒ‚~…‚~…‚~‡~ˆ~‚ˆ‚~ƒ…ƒƒ|‚}z„|z„|~…€…„„„„„„ƒ‡€ˆ€ˆ…~~„~~}„~~}†~}†~†‚†„†ƒ„†ƒ†…„‡„…†„†‚‚€‚‚‚}‚‚}‚‚€‚‚ƒ€‚†€‚†€ˆ€€‰€‰‡€~‡€~‡€~ˆ€ˆ€€ˆ€€ˆ€‚‚ˆ€ƒ‚ˆ€ƒƒ‡€…„†€†„…€ˆ~€…†‚z€z€‚‚€„€‚„€‚†€~‚…€~‚„€~ƒ~}~~~~‚~‚~‚‚~€ƒ‚~€…‚~…‚~‡‚~‚ˆ~‚ˆ~‚…€„~|„~}|…}|…}~……„…„„…„…ƒ…„‚‡„‚‡„„~„…€…€€†€‚†„†‚„†‚……ƒ†…„‡„…„…~~…~………€€…‚„…„…‚„‡‚ƒˆ‚‚€ˆ‡€‡€ˆ€€‡€€€‡€€€ˆ€ˆ€‚ƒ‡€„ƒ‡€„ƒ‡€„„†€†……‡~‚ƒ~z~~z~~€‚€ƒ‚…~‚…~‚‡~‚‡~‚†~ƒ~€~~~€~‚~‚~‚‚~€ƒ‚~€…‚~…‚~‡‚~‡‚~ˆ‚~‚„~~„~}„~}}…}}…}†‚†„…ƒ„…ƒ†„…†„††ƒ††……€€†€€†€†‚†‚„†ƒ„†ƒ……~ƒ†…„‡…~…†€†€‡€~~‡~~‡~€ˆ€‡‚‚†„‚†„ƒ††ƒ…€‡ƒ„€ˆ‡€‡€‡€€€ˆ€€€ˆ€€ˆ€‚ˆ€‚ƒˆ€ƒƒˆ€ƒ„‡„„†……†€†€{{‚{{‚€€z{ˆz{ˆz|ˆ|}~ˆ{}~‡€~|~}{~€{~~{~~‚€‚ƒ…‚~‚…‚~‚‡‚~ƒ‡‚~„†~ƒx‚€y‚}z…|{€ˆ|{€ˆ}{‚„~|‚†|{ˆ|{ˆ||‰}}€Š}~€Š†~†~~†~~‡~~‡~ˆ€‡€ƒ†€„ƒ†€„…………„€‡„ƒˆz‚€{‚~{‚…}z‡}z‡~}‚ƒ~~‚†~|‚†~|‚†}{ˆ~}‰~}‰†††††€‡†ƒ†„†„‚…†‚„‡ƒ„ˆ„z~|{{~‚z€~z€~~€€„„ƒƒ‚~„~…~‚‚|‚~~|‚~~ƒƒƒ~…ƒ~‚…ƒ~‚‡ƒ~‚‡‚~ƒˆ‚~ƒ…€€„€€}ƒ€|}…€{}…€{~†~€†‚‚„†‚„†‚‚€ˆ€€€‰€€€‰†~†}†~~‡~~‡~€‡‚‡„‡ƒ„‡ƒ…†„†…††„†‚~‚|‚‚€‚‚€‚€‚‚„€‚…€‚…€ˆ€€‰€€‰‡€‡€‡€ˆ€ˆ€€ˆˆ‚‡ƒ‡ƒƒ†…ƒ†€†„…€‡€~€|~||~€z€~z€~~€‚…‚…‚†~ƒ…~„„~…‚~~ƒ~~€„~„~„~ƒ~‚ƒ~…ƒ~‚…ƒ~‚†ƒ~‚‡ƒ~‚ˆ‚~ƒ†…}…}}‡€}}‡€}~‡€‡€‚ƒ†€„ƒ†€„„„€‡ƒƒ€ˆƒ‚ˆ…†~†††€‡€‚‡‚„†ƒ„†ƒ…†„††…†……„~„€„…~…~„‚€€…‚‚„…„…ƒ†‚ˆ‚‰‡€‡€‡€€‡€€‡€€€‡€‡‚‚‡€„‚‡€„ƒ‡€…ƒ†€†„†€‡€~|~}{~€{~~{~~‚€‚ƒ…‚~‚…‚~‚‡‚~ƒ‡‚~„†~ƒƒ~~ƒ~€ƒ~„~€„~€‚„~ƒ„~…„~‚…„~‚†ƒ~‚‡ƒ~ƒˆ‚~ƒ†~†~~†~~‡~~‡~ˆ€‡€ƒ†€„ƒ†€„…………„€‡„ƒˆ†††€€†€€†€‡‚‡‚„†ƒ„†ƒ…†„††„‡……†††††€‡†ƒ†„†„‚…†‚„‡ƒ„ˆˆ€ˆ€ˆ€€€ˆ€€€ˆ€€ˆ€ˆ€‚‚‡€„‚‡€„ƒ‡€„„‡€†„†€†~}€‰€€‰€|~}‚|~}‚v~}‚{€}|{€‚|€|…}}„{~„{~ƒx~„v|„yw„yw†zx…{~w†|~x€€€€x~}ƒx~}ƒz}~†{|~ˆ~~€~‚}~~‡|}}‡|}}‡|}}ˆ|}|ˆ}}}ˆ}}}ˆ}}}‰~}}†~}y‚€~y‚‚}y…|z€ˆ|z€ˆz{‰|}ˆz|~ˆz|~ˆy{ˆ{}~†y}~…‡€‚†€‚ƒ†€„…„†…„†„ƒ†…ƒ~††ƒ~††ƒ~††‚~……~„…~…x‚~„y‚x€~€{ƒ~~ƒ~~€{€~‚{vƒ}~}ƒ}~}|€u‚}x‚~~{z‚z|…|}…{~…{~ƒv}ƒu{†wx†wx…wyˆ{~z…|~w}~€}‚|~ƒ{~{ƒ{~{ƒ|~}„|~|…~~|…~~|ƒ~}|‚~‚ƒ}€~€~ˆ|}}ˆ|}}‰}}}ˆ|}}‰}}}‰}}}‰}}|ˆ}}~‰~}~„€‚ƒ€…€‡€‡€‰~‰~ˆ~ˆ~‡~ˆ‚€~…ˆ€‚ˆ‚„‡ƒ†…„†…„†„~…‡„~†‡ƒ~†‡ƒ~††‚~…‡ƒ~†…~…x‚„y‚xƒ}€{ƒ~€ƒ~€‚x€|„y€{‚xx‚xx„y€v„|v„{v€ƒz~†{|ƒ|~€ƒ|~€…|~ƒw}‡xy‡xy‡xx‡y~xˆz~y~~€~}~†{~|†{~|†|}}‡}}|‡}~}‡}~}…~}~‡}„~}}~~ƒ~}…|~~‡}}~‡}}~ˆ}}~ˆ|}}‰}}}‰}}}‰}}|Š}}}‰~}}†~€„‚ƒ…€…‚‚€†‚‚€†ƒ‚‡‚~ˆƒ~‡ƒ~‡€~‡€~†‚€~†ˆ‚ˆ„‡‚‡…~„‡…~„‡…~„ˆ„~…ˆƒ~…ˆƒ~…‰ƒ~„ˆ‚~„ˆ‚}„{€‚|€|…}}„{~„{~ƒx~„v|„yw„yw†zx…{~w†|~xy~‚|~~†|~}†}~†}~…|~~†z~}†z~{†z~{†w~{ˆz~zˆz~y~~€~‚}~~‡|}}‡|}}‡|}}ˆ|}|ˆ}}}ˆ}}}ˆ}}}‰~}}†~}~}}~†}}~†|}~†|}~‡~~‰}}~‰~}~‰~}~‰}}}Š}}~‰~}~‡€‚†€‚ƒ†€„…„†…„†„ƒ†…ƒ~††ƒ~††ƒ~††‚~……~„…~…‡~‡~€„‡~‚††~ƒ††~ƒ†…~ƒ‡…~„ˆ„~„ˆ„~„‰ƒ~ƒ‰‚~ƒˆ‚}ƒ|‚€x|€|}{†y}~‡~~…~~…}€~yz~}ƒx}}„x€„{|†}~||v‚|v‚w€€„x}…w{…w{‡{~x†|~x‡|~y~~~€~}€}~}~}€}~€w}}ƒw}}ƒ{~}ƒ~}‚y}}„ƒ‚€„‚~‚‡~‚‡~‚†}‚†€}‡€}€‡€}€‡€}†}ƒ}‚y‚~~z‚„}z‚…|y‡|y‡||€‰z{‰{|‰{|‰y|ˆ{}~ˆ{}~‡†~†ƒƒ†€…ƒ…€‡ƒ…€‡„„ˆ…ƒˆ„ƒˆ„ƒˆƒ‚‰„~†ƒ~†|~€y€|}xƒ}xƒ~y€z€z{x{x‚}~v‚}u‚~~vyƒ}|„€‚v~…w{‡y~z‡y~zˆx~yˆ{~yˆ{~y€‚~‚~‚~‚~€€}‚€}‚‚}‚‚}~}}€~‚~‚„~€…‚~ˆ~ˆ~‰€}‰€}‰€}€‰€}€‡€}‚ˆ}…}€‚€‚ƒ€€†€€ˆ€€ˆ€‰Š‰‰€‰‰|~~‡ˆ€‚ˆ€‚ƒˆ€„„†€…„†€…†…††…‡…ƒ‡…ƒ‡†ƒ~†…‚~‡†‚~…z€€ƒ}z‡|{|x€ƒ|x€ƒw€}ƒw€z„zv„zv…{~w…{~y†|~x~{~…|~~‡~}„„ƒw~}x~~‡y~{‡y~{ˆz~zˆ{~yˆ|~z‚€ƒ€ƒƒ€~„ƒ€~„…€~‚…}…}€…}€†}~ƒ}ƒ}€ƒ~‚ƒ~€†‚}€‡}€‡}€ˆ€}€‰}€‰€}‰€}‰€}€‰€}ˆ}€…‚€„‚„…ƒˆƒˆ‚‚€‰‚€‰‰‰ƒ~ˆ€~ˆ‚€~†‰€ˆƒˆ€ƒ…‡„…‡„††…‡…~†‡„†‡„†‡„~††ƒ~‡†‚~†x€„{|†}~||v‚|v‚w€€„x}…w{…w{‡{~x†|~x‡|~y~y~ƒ{~}…~€ˆ~ˆ~„z~~…{~ˆy~zˆy~z‰z~z‰{~z‰{~{ƒ‚€„‚~‚‡~‚‡~‚†}‚†€}‡€}€‡€}€‡€}†}ƒ}‚}‚}…€}‡}€‡}€ˆ€}€‰€}€‰€}€‰€}€‰€}€Š}‰~}~†~†ƒƒ†€…ƒ…€‡ƒ…€‡„„ˆ…ƒˆ„ƒˆ„ƒˆƒ‚‰„~†ƒ~†‰‚ˆƒˆ‚„ˆ„„ˆ„„ˆ„‡†~„ˆ„~…ˆ„~…ˆ„~…‡ƒ~†ˆƒ~…€~€}‘}‘{€€…}~€|}~ˆ|}~ˆz|~ˆu€}~{‚ƒ€{w~{w~…xz†x~zˆ{~{ˆ{~{‡|~z‡}}z†}}{~€€~€€}}€ƒ|„|„|~„|~~…{}~†{}~†}~~†{~}„…‚…„„ƒ„ƒ…„ƒ…†‚~…‡‚~„‡~„‡~„†}ƒ…€}‚†€}‚z‚z‚~z‚„|z‡|z‡}|€Š|{€‰}}Š}}Š{{‰~~Š|}‰†‡‚†„ƒ††ƒ††ƒ„€ˆƒƒ€ˆƒƒ‰ƒƒ‰ƒ‚‰„‚~ˆ„~ˆ}€‡ƒ‚|x€„|x€„w€{ƒzx‚}~w‚}~w‚~~x‚}~}‚~~xz~~€{x~{x~…x~|ˆy~zˆ{~zˆ{~zˆ|~z‰|}|Š|}|ƒ€‚€‚…€†€†€†€€~†€€~†€€~†€}„€}„}„†‚…„†ƒ†„~ƒ†„~ƒˆƒ~ƒ‡‚~ƒ‰‚}‚‰‚}‚‡}ƒ†€}‚‡€}‚}‚~~‚‚‚†€‡€‡€‰~~€Š~~Š~~Š~~Š€€~ˆ~~‰ˆˆ‚ˆ€„„‡€†„‡€†…†€‡……ˆ„„ˆ„„ˆ…„ˆ„‚ˆ…ƒ~‡~|†…~ƒ{w‚{w‚„xy…xy…|~y…|~y‡|~z‡|~yƒ~}{z~…€~~…ƒ~€€|~€|~…z~~‡z~|ˆ{~{ˆ{~{ˆ}~~ˆ|~zˆ}}|„€ƒ€‚ƒƒ…„‚†„‚†…‚~…„~……}„…}„‚€~……~…ƒ€}ƒ…~ƒ…~……~‚‡„~ƒ‡„~ƒˆƒ~ƒ‰‚~ƒˆ‚}‚ˆ‚}‚‰}ˆ}ƒ‡}ƒ„‚€†‚ƒƒ†‚ˆ‚ˆƒˆ€‰‚‰‚‰‰€€‰€~ˆ‰€€‰‚‰€ƒ„‡€…„‡€……‡††††‡…†‡…†‡…~††ƒ~‡†ƒ~‡{‚ƒ€{w~{w~…xz†x~zˆ{~{ˆ{~{‡|~z‡}}z†}}{|~„}~~†„~ƒ~~‚ƒ~~‚{~†z~}‰z~{‰z~{‰|}|ˆ{}|Š|}}…‚…„„ƒ„ƒ…„ƒ…†‚~…‡‚~„‡~„‡~„†}ƒ…€}‚†€}‚…~‚…~€……~‡ƒ~‡ƒ~‡ƒ~‚‰‚}‚‰‚}‚‰‚}‚‰}‰}‚‰}†‡‚†„ƒ††ƒ††ƒ„€ˆƒƒ€ˆƒƒ‰ƒƒ‰ƒ‚‰„‚~ˆ„~ˆ‰€Š€€‚‰€‚„ˆ„„ˆ„†‡…†††‡…†‡…††„ˆ‡„~‡ˆƒ~…€€€€x~}ƒx~}ƒz}~†{|~ˆ~~€~‚}~~‡|}}‡|}}‡|}}ˆ|}|ˆ}}}ˆ}}}ˆ}}}‰~}}†~}y‚€~y‚‚}y…|z€ˆ|z€ˆz{‰|}ˆz|~ˆz|~ˆy{ˆ{}~†y}~…‡€‚†€‚ƒ†€„…„†…„†„ƒ†…ƒ~††ƒ~††ƒ~††‚~……~„…~…{‚z‚€~z‚…}{‡}{‡}{‰}|‰}}€Š}}€Š}|€‰}}Š{}ˆ…‚~€†‚‚…‚„„†„†ƒ…€ˆƒ‚€‰‚‚€Š‚‚€Š‚‚‰‰‰}~€}‚|~ƒ{~{ƒ{~{ƒ|~}„|~|…~~|…~~|ƒ~}|‚~‚ƒ}€~€~ˆ|}}ˆ|}}‰}}}ˆ|}}‰}}}‰}}}‰}}|ˆ}}~‰~}~„€‚ƒ€…€‡€‡€‰~‰~ˆ~ˆ~‡~ˆ‚€~…ˆ€‚ˆ‚„‡ƒ†…„†…„†„~…‡„~†‡ƒ~†‡ƒ~††‚~…‡ƒ~†…~…€ƒ~~}‚ƒ‚ƒ€‚‡€‚‡‰‰~~€Š~~€Š~~€ŠŠ€€‰ˆ~ˆ‚‚‡ƒƒ‡…ƒ‡…ƒ…€‡„…€ˆ……ˆ……ˆƒƒ‰ƒ‚‰…ƒˆ~~€~}~†{~|†{~|†|}}‡}}|‡}~}‡}~}…~}~‡}„~}}~~ƒ~}…|~~‡}}~‡}}~ˆ}}~ˆ|}}‰}}}‰}}}‰}}|Š}}}‰~}}†~€„‚ƒ…€…‚‚€†‚‚€†ƒ‚‡‚~ˆƒ~‡ƒ~‡€~‡€~†‚€~†ˆ‚ˆ„‡‚‡…~„‡…~„‡…~„ˆ„~…ˆƒ~…ˆƒ~…‰ƒ~„ˆ‚~„ˆ‚}„ƒ‚€ƒ‚‚‚‚€‚…€‚…€ˆ€‰€€Š€€ŠŠ€‰€~‰‰~‰‚ˆ€ƒƒˆ€„ƒˆ€„„‡€†††‡…†‡…†‡…„ˆ……ˆ„ƒ‰~~€~‚}~~‡|}}‡|}}‡|}}ˆ|}|ˆ}}}ˆ}}}ˆ}}}‰~}}†~}~}}~†}}~†|}~†|}~‡~~‰}}~‰~}~‰~}~‰}}}Š}}~‰~}~‡€‚†€‚ƒ†€„…„†…„†„ƒ†…ƒ~††ƒ~††ƒ~††‚~……~„…~…‡~‡~€„‡~‚††~ƒ††~ƒ†…~ƒ‡…~„ˆ„~„ˆ„~„‰ƒ~ƒ‰‚~ƒˆ‚}ƒ…‚~€†‚‚…‚„„†„†ƒ…€ˆƒ‚€‰‚‚€Š‚‚€Š‚‚‰‰‰‰€‰€€‚‰€ƒƒˆ€…ƒˆ€…„ˆ„…‡€†‡††‡†††…††„~‡†„ˆÍÍÍ~Í~ÍÍ̓ƒ„̓ƒ„̓ƒƒÍ„„„Í„„Í}Í~ÍÍ~}~Í~}~Í}}~Í}}~Í~~€Í~~€Í€Í€‚Í‚‚ÍÍÍÍ~~Í~~ÍÍÍ‚ƒÍ‚ƒÍ‚‚ƒÍƒƒƒÍƒƒÍ}}}Í~~~Í~~~Í}|}Í}|}Í||~Í||€Í}}Í}}Í~€Í€€ÍƒÍ~Í̀̀€Í€€ÍÍ€€‚Í€€‚Í€€‚͂̓͂‚ƒÍ}Í}Í~~~Í~~Í~~Í}}€Í}}Í~~‚Í~~‚͂̀€ƒÍƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ|z|Í€~Í€€Í~~‚Í~~‚Í~Í}€Í€ƒÍ€ƒÍ‚‚̓ƒƒÍƒ„„Í|Í}Í€€~Í}Í}Í}|}Í}}}Í}}Í}}Í~~̀̀‚Í}}Í€€̓‚Í~~Í~~Í}}Í}~͂͂͂‚„̓ƒƒÍƒƒ„Í|||Í~Í~Í||}Í||}Í{|~Í||}Í|}~Í|}~Í}~€ÍÍ€€‚̀̀ÍÍÍ͂͂̀ƒÍ€ƒÍƒÍ‚ƒÍ‚‚„Í~~|Í~~}Í~~}Í}}~Í}}~Í}}Í}}€Í}}Í}}Í~~‚ÍÍ€€ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}~Í}~Í€Í~~€Í~~€Í}Í}~€Í~Í~Í€€Í‚‚Í‚ƒ‚Í{Í~~|Í~~}Í~}}Í~}}Í~}Í~~}Í~}Í~}Í̀̀€€Í}}Í~ÍÍ}}~Í}}~Í|}Í|}Í~~€Í~~€Í€ƒÍ‚ƒÍ‚‚„Í~~zÍ}}{Í}}{Í}}|Í}}|Í}}}Í||~Í}}Í}}Í}~€Í~~€Í‚Í~Í€~Í€Í~~€Í~~€Í~~Í~~ƒÍ~‚Í~‚Í€€ƒÍƒÍ‚‚„Í~~|Í~~|Í~}}Í}}~Í}}~Í}}~Í}}Í}}€Í}}€Í~~€Í~Í‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}Í~ÍÍ~}~Í~}~Í}}~Í}}~Í~~€Í~~€Í€Í€‚Í‚‚Í}}{Í}}{Í}}|Í}|~Í}|~Í}}Í~}Í}}Í}}Í~~|ÍÍ€€€Í}}}Í~~~Í~~~Í}|}Í}|}Í||~Í||€Í}}Í}}Í~€Í€€ÍƒÍ}}zÍ}}zÍ|||Í|||Í|||Í}|}Í}}~Í}}~Í}}~Í}}Í~~~ÍÍ}Í}Í~~~Í~~Í~~Í}}€Í}}Í~~‚Í~~‚͂̀€ƒÍƒÍ}}{Í}}{Í}}|Í}}}Í}}}Í}}}Í}}~Í}}Í}}Í~~Í~~€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~€Í~ÍÍ̀̓̓‚„̓‚„̓ƒ„Í„„„̓„ƒÍ}Í~~Í€Í||}Í||}Í|}~Í|}~Í}~}Í}~}Í~Í€€‚Í‚‚ÍÍ̀̀€Í€€Í€Í€Í€ƒÍ€ƒÍ‚„Í‚‚…̓ƒƒÍ}}}Í~~}Í~~~Í}}Í}}Í||€Í||€Í}}‚Í}}‚Í~‚Í€€ƒÍ„ÍÍÍÍ€€€Í€€€Í€€Í€€Í€€‚Í€€‚͂̓̓Í~Í~Í~Í~~Í~~Í~~€Í~~Í~~Í~~͂̀€ƒÍ€ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~}~Í€Í~‚Í~Í~Í}€Í}€Í€‚Í€‚Í‚ƒÍƒƒƒÍƒ„ƒÍ€|Í€€~Í€€~ÍÍÍ{{|Í{|}Í|}Í|}Í}~~Í~Í€€Í}}~Í€€~ÍÍ~~€Í~~€Í}}‚Í}}Í~ƒÍ~ƒÍƒÍƒƒ„̓ƒ„Í}}{Í}}}Í}}}Í||~Í||~Í||Í||€Í|}€Í|}€Í}~‚͂̀€ƒÍ€€Í̀̀€Í€€Í͂̀€ƒÍ€€ƒÍ€€ƒÍ‚ƒÍ‚‚„Í~}Í~~}Í~~~Í~~Í~~Í~}Í}}€Í~~Í~~Í~~͂̀€‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~}}Í~Í|‚Í}~Í}~Í|~Í|~~Í~Í~Í€‚͂͂ƒ‚Í{Í~~|Í}}~Í~}Í~}Í~}|Í}}|Í}}~Í}}~Í}~€Í~Í€‚Í}}~Í~~ÍÍ}}€Í}}€Í||Í|}‚Í}~ƒÍ}~ƒÍ€ƒÍ„Í‚‚„Í~~{Í~~{Í~}|Í}}}Í}}}Í}}}Í||Í}}€Í}}€Í}~€Í~Í€‚Í€€~Í€€Í€€Í€Í€Í~~͂͂͂̀€ƒÍƒÍ„Í~~|Í~~|Í~~}Í}}}Í}}}Í~}~Í}}Í}~€Í}~€Í~~€Í~Í‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}Í~~Í€Í||}Í||}Í|}~Í|}~Í}~}Í}~}Í~Í€€‚Í‚‚Í}}zÍ}}{Í}}|Í||~Í||~Í}}}Í}|~Í}}~Í}}~Í}}Í~~€ÍÍ}}}Í~~}Í~~~Í}}Í}}Í||€Í||€Í}}‚Í}}‚Í~‚Í€€ƒÍ„Í}}zÍ}}zÍ}}{Í}}|Í}}|Í}|}Í}}~Í}}Í}}Í~~Í~~€ÍÍ~Í~Í~Í~~Í~~Í~~€Í~~Í~~Í~~͂̀€ƒÍ€ƒÍ~}|Í}}|Í~~|Í}}}Í}}}Í}}}Í}}~Í~~Í~~Í~~€Í~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€Í͉͉̀ÍÍ‚‚ƒÍ‚‚ƒÍƒƒƒÍƒƒÍ„„Í~}~Í~}ÍÍ|||Í|||Í||~Í|}}Í}~€Í}~€Í~‚Í€‚Í‚ƒÍÍ€ÍÍ€€€Í€€€Í͂̀ƒÍ€ƒÍ‚„Í‚„Í‚‚Í~~}Í~}Í~~~Í}}Í}}Í|}€Í|}Í}}‚Í}}‚Í~ƒÍ€€ƒÍƒÍÍÍÍ€€Í€€Í€ÍÍ€€‚Í€€‚̀̓͂Í~Í~Í~ÍÍÍ~~€Í~͂͂͂̀€‚Í€€ƒÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}}Í€ÍÍ~~Í~~Í}~~Í}~̓̓͂„̓ƒƒÍƒƒ„Í~}|ÍÍÍ|||Í|||Í{{|Í{|~Í|}€Í|}€Í}~€ÍÍ€€Í}}~Í€€~Í€Í~~Í~~Í}}‚Í}~‚̓̓̈́͂‚„̓ƒ„Í~~|Í~~|Í}}}Í}}~Í}}~Í||Í||€Í|}€Í|}€Í~~͂̀€ƒÍ€Í€€Í€€€Í€€€Í€€€Í€€Í€€Í€€‚Í€€‚Í€€ƒÍƒÍƒÍ}Í~}Í~~Í~~Í~~Í~~Í~~€Í~~Í~~Í͂̀€‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~}Í~}ÍÍ}}}Í}}}Í|}Í|~Í~‚Í~‚Í€€‚Í‚‚Í‚ƒ„Í~zÍ}}|Í}}~Í}}}Í}}}Í}}}Í||}Í|}Í|}Í}~€Í~Í‚Í~~~Í~ÍÍ~~€Í~~€Í}}Í}}‚Í~~ƒÍ~~ƒÍ€€„̓͂‚„Í~~{Í~~{Í~}|Í}}}Í}}}Í}|~Í|}Í}}€Í}}€Í}~€Í~͂̀€Í€€Í€€Í€Í€Í€Í͂͂̀€‚Í€€ƒÍ‚ƒÍ~~}Í~~}Í~~}Í~~~Í~~~Í~~~Í~~Í~~€Í~~€Í~~€ÍÍ€€‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~}~Í~}ÍÍ|||Í|||Í||~Í|}}Í}~€Í}~€Í~‚Í€‚Í‚ƒÍ}}zÍ}}{Í||}Í|||Í|||Í}|{Í}|{Í}}~Í}}~Í}~Í~~~Í~Í~~}Í~}Í~~~Í}}Í}}Í|}€Í|}Í}}‚Í}}‚Í~ƒÍ€€ƒÍƒÍ}}{Í}}{Í}}|Í}}|Í}}|Í}}}Í}}~Í}}Í}}Í}}Í~~€ÍÍ~Í~Í~ÍÍÍ~~€Í~͂͂͂̀€‚Í€€ƒÍ~~|Í~~|Í~~}Í~}}Í~}}Í~}~Í~~Í}}€Í}}€Í~~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ~~Í~~ÍÍÍ‚ƒÍ‚ƒÍ‚‚ƒÍƒƒƒÍƒƒÍ}}}Í~~~Í~~~Í}|}Í}|}Í||~Í||€Í}}Í}}Í~€Í€€ÍƒÍ~Í̀̀€Í€€ÍÍ€€‚Í€€‚Í€€‚͂̓͂‚ƒÍ}Í}Í~~~Í~~Í~~Í}}€Í}}Í~~‚Í~~‚͂̀€ƒÍƒÍÍÍÍ€€Í€€Í€€Í€Í€€Í€€Í€Í‚Í‚ƒÍÍ~ÍÍÍÍ€ÍÍÍÍ€‚Í€€‚Í€€‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}}Í€€̓‚Í~~Í~~Í}}Í}~͂͂͂‚„̓ƒƒÍƒƒ„Í|||Í~Í~Í||}Í||}Í{|~Í||}Í|}~Í|}~Í}~€ÍÍ€€‚̀̀ÍÍÍ͂͂̀ƒÍ€ƒÍƒÍ‚ƒÍ‚‚„Í~~|Í~~}Í~~}Í}}~Í}}~Í}}Í}}€Í}}Í}}Í~~‚ÍÍ€€ƒÍ€€Í€€Í€€Í€€€Í€€€Í€€Í€€Í€€Í€€Í€‚͂̓Í~Í~Í~~Í~Í~Í~~€Í~~€Í~~€Í~~€Í‚͂̀€ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}}Í~ÍÍ}}~Í}}~Í|}Í|}Í~~€Í~~€Í€ƒÍ‚ƒÍ‚‚„Í~~zÍ}}{Í}}{Í}}|Í}}|Í}}}Í||~Í}}Í}}Í}~€Í~~€Í‚Í~Í€~Í€Í~~€Í~~€Í~~Í~~ƒÍ~‚Í~‚Í€€ƒÍƒÍ‚‚„Í~~|Í~~|Í~}}Í}}~Í}}~Í}}~Í}}Í}}€Í}}€Í~~€Í~͂̀€Í€€Í€€Í€Í€Í€Í̀̀̀€‚Í€€ƒÍƒÍ~~}Í~~}Í~~~Í~~~Í~~~Í~~Í~~Í~~€Í~~€Í̀̀€‚ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ}}}Í~~~Í~~~Í}|}Í}|}Í||~Í||€Í}}Í}}Í~€Í€€ÍƒÍ}}zÍ}}zÍ|||Í|||Í|||Í}|}Í}}~Í}}~Í}}~Í}}Í~~~ÍÍ}Í}Í~~~Í~~Í~~Í}}€Í}}Í~~‚Í~~‚͂̀€ƒÍƒÍ}}{Í}}{Í}}|Í}}}Í}}}Í}}}Í}}~Í}}Í}}Í~~Í~~€ÍÍÍ~ÍÍÍÍ€ÍÍÍÍ€‚Í€€‚Í€€‚Í~~}Í~~}Í~~}Í~~~Í~~~Í~~~Í~~Í~~Í~~Í~~Í~ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ \ No newline at end of file diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellOptionalData.bytes.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellOptionalData.bytes.meta new file mode 100644 index 00000000000..751b257890e --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellOptionalData.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1844b4090ac596a41ab4801d67dcfa77 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellProbeOcclusionData.bytes b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellProbeOcclusionData.bytes new file mode 100644 index 00000000000..e503779142d Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellProbeOcclusionData.bytes differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellProbeOcclusionData.bytes.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellProbeOcclusionData.bytes.meta new file mode 100644 index 00000000000..07ff973c9cd --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows-Default.CellProbeOcclusionData.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 49269760095946145b0059c3d2fe7a76 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellBricksData.bytes b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellBricksData.bytes new file mode 100644 index 00000000000..17327a506da Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellBricksData.bytes differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellBricksData.bytes.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellBricksData.bytes.meta new file mode 100644 index 00000000000..e2458da9a1b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellBricksData.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 31225e8b95b15a54c9f44a97ba40def8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSharedData.bytes b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSharedData.bytes new file mode 100644 index 00000000000..e91e0a6a7c4 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSharedData.bytes differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSharedData.bytes.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSharedData.bytes.meta new file mode 100644 index 00000000000..4e2cbd3426f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSharedData.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3f309c31ff8c031428b789b6a783dd98 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSupportData.bytes b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSupportData.bytes new file mode 100644 index 00000000000..ad5b796cb8e Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSupportData.bytes differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSupportData.bytes.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSupportData.bytes.meta new file mode 100644 index 00000000000..676d6cde83b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.CellSupportData.bytes.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 36b94dd10a035fd489b4ebf2710c593a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.asset new file mode 100644 index 00000000000..b2243543d88 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.asset @@ -0,0 +1,365 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4881f9a2c4d568047b316028d20a8dca, type: 3} + m_Name: 231_APV_Subtractive_NoRealtimeShadows + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.ProbeVolumeBakingSet + singleSceneMode: 0 + dialogNoProbeVolumeInSetShown: 0 + settings: + m_Version: 1 + dilationSettings: + enableDilation: 0 + dilationDistance: 1 + dilationValidityThreshold: 0.25 + dilationIterations: 1 + squaredDistWeighting: 1 + virtualOffsetSettings: + useVirtualOffset: 1 + validityThreshold: 0.25 + outOfGeoOffset: 0.01 + searchMultiplier: 0.2 + rayOriginBias: -0.001 + collisionMask: + serializedVersion: 2 + m_Bits: 4294967291 + m_SceneGUIDs: + - 911c47a2fe05f9846b9eca70cf7757ee + obsoleteScenesToNotBake: [] + m_LightingScenarios: + - Default + cellDescs: + m_Keys: 0000000004000000020000000600000001000000050000000300000007000000 + m_Values: + - position: {x: -1, y: -1, z: -1} + index: 0 + probeCount: 576 + minSubdiv: 0 + indexChunkCount: 1 + shChunkCount: 1 + bricksCount: 9 + indirectionEntryInfo: + - positionInBricks: {x: -27, y: -27, z: -27} + minSubdiv: 0 + minBrickPos: {x: 24, y: 26, z: 24} + maxBrickPosPlusOne: {x: 28, y: 28, z: 28} + hasMinMax: 1 + hasOnlyBiggerBricks: 0 + - position: {x: -1, y: -1, z: 0} + index: 4 + probeCount: 576 + minSubdiv: 0 + indexChunkCount: 1 + shChunkCount: 1 + bricksCount: 9 + indirectionEntryInfo: + - positionInBricks: {x: -27, y: -27, z: 0} + minSubdiv: 0 + minBrickPos: {x: 24, y: 26, z: 0} + maxBrickPosPlusOne: {x: 28, y: 28, z: 4} + hasMinMax: 1 + hasOnlyBiggerBricks: 0 + - position: {x: -1, y: 0, z: -1} + index: 2 + probeCount: 1152 + minSubdiv: 0 + indexChunkCount: 1 + shChunkCount: 1 + bricksCount: 18 + indirectionEntryInfo: + - positionInBricks: {x: -27, y: 0, z: -27} + minSubdiv: 0 + minBrickPos: {x: 24, y: 0, z: 24} + maxBrickPosPlusOne: {x: 28, y: 3, z: 28} + hasMinMax: 1 + hasOnlyBiggerBricks: 0 + - position: {x: -1, y: 0, z: 0} + index: 6 + probeCount: 1152 + minSubdiv: 0 + indexChunkCount: 1 + shChunkCount: 1 + bricksCount: 18 + indirectionEntryInfo: + - positionInBricks: {x: -27, y: 0, z: 0} + minSubdiv: 0 + minBrickPos: {x: 24, y: 0, z: 0} + maxBrickPosPlusOne: {x: 28, y: 3, z: 4} + hasMinMax: 1 + hasOnlyBiggerBricks: 0 + - position: {x: 0, y: -1, z: -1} + index: 1 + probeCount: 576 + minSubdiv: 0 + indexChunkCount: 1 + shChunkCount: 1 + bricksCount: 9 + indirectionEntryInfo: + - positionInBricks: {x: 0, y: -27, z: -27} + minSubdiv: 0 + minBrickPos: {x: 0, y: 26, z: 24} + maxBrickPosPlusOne: {x: 4, y: 28, z: 28} + hasMinMax: 1 + hasOnlyBiggerBricks: 0 + - position: {x: 0, y: -1, z: 0} + index: 5 + probeCount: 576 + minSubdiv: 0 + indexChunkCount: 1 + shChunkCount: 1 + bricksCount: 9 + indirectionEntryInfo: + - positionInBricks: {x: 0, y: -27, z: 0} + minSubdiv: 0 + minBrickPos: {x: 0, y: 26, z: 0} + maxBrickPosPlusOne: {x: 4, y: 28, z: 4} + hasMinMax: 1 + hasOnlyBiggerBricks: 0 + - position: {x: 0, y: 0, z: -1} + index: 3 + probeCount: 1152 + minSubdiv: 0 + indexChunkCount: 1 + shChunkCount: 1 + bricksCount: 18 + indirectionEntryInfo: + - positionInBricks: {x: 0, y: 0, z: -27} + minSubdiv: 0 + minBrickPos: {x: 0, y: 0, z: 24} + maxBrickPosPlusOne: {x: 4, y: 3, z: 28} + hasMinMax: 1 + hasOnlyBiggerBricks: 0 + - position: {x: 0, y: 0, z: 0} + index: 7 + probeCount: 1152 + minSubdiv: 0 + indexChunkCount: 1 + shChunkCount: 1 + bricksCount: 18 + indirectionEntryInfo: + - positionInBricks: {x: 0, y: 0, z: 0} + minSubdiv: 0 + minBrickPos: {x: 0, y: 0, z: 0} + maxBrickPosPlusOne: {x: 4, y: 3, z: 4} + hasMinMax: 1 + hasOnlyBiggerBricks: 0 + m_SerializedPerSceneCellList: + - sceneGUID: 911c47a2fe05f9846b9eca70cf7757ee + cellList: 0000000004000000020000000600000001000000050000000300000007000000 + cellSharedDataAsset: + m_AssetGUID: 3f309c31ff8c031428b789b6a783dd98 + m_StreamableAssetPath: APVStreamingAssets\1c5559cc330dfeb40b862cf3d9fa6974\3f309c31ff8c031428b789b6a783dd98.bytes + m_ElementSize: 8192 + m_StreamableCellDescs: + m_Keys: 0000000004000000020000000600000001000000050000000300000007000000 + m_Values: + - offset: 0 + elementCount: 1 + - offset: 8192 + elementCount: 1 + - offset: 16384 + elementCount: 1 + - offset: 24576 + elementCount: 1 + - offset: 32768 + elementCount: 1 + - offset: 40960 + elementCount: 1 + - offset: 49152 + elementCount: 1 + - offset: 57344 + elementCount: 1 + m_Asset: {fileID: 4900000, guid: 3f309c31ff8c031428b789b6a783dd98, type: 3} + scenarios: + m_Keys: + - Default + m_Values: + - sceneHash: 596961047 + cellDataAsset: + m_AssetGUID: d32898ed01596e245aba76ef1f07014d + m_StreamableAssetPath: APVStreamingAssets\1c5559cc330dfeb40b862cf3d9fa6974\d32898ed01596e245aba76ef1f07014d.bytes + m_ElementSize: 131072 + m_StreamableCellDescs: + m_Keys: 0000000004000000020000000600000001000000050000000300000007000000 + m_Values: + - offset: 0 + elementCount: 1 + - offset: 131072 + elementCount: 1 + - offset: 262144 + elementCount: 1 + - offset: 393216 + elementCount: 1 + - offset: 524288 + elementCount: 1 + - offset: 655360 + elementCount: 1 + - offset: 786432 + elementCount: 1 + - offset: 917504 + elementCount: 1 + m_Asset: {fileID: 4900000, guid: d32898ed01596e245aba76ef1f07014d, type: 3} + cellOptionalDataAsset: + m_AssetGUID: 1844b4090ac596a41ab4801d67dcfa77 + m_StreamableAssetPath: APVStreamingAssets\1c5559cc330dfeb40b862cf3d9fa6974\1844b4090ac596a41ab4801d67dcfa77.bytes + m_ElementSize: 131072 + m_StreamableCellDescs: + m_Keys: 0000000004000000020000000600000001000000050000000300000007000000 + m_Values: + - offset: 0 + elementCount: 1 + - offset: 131072 + elementCount: 1 + - offset: 262144 + elementCount: 1 + - offset: 393216 + elementCount: 1 + - offset: 524288 + elementCount: 1 + - offset: 655360 + elementCount: 1 + - offset: 786432 + elementCount: 1 + - offset: 917504 + elementCount: 1 + m_Asset: {fileID: 4900000, guid: 1844b4090ac596a41ab4801d67dcfa77, type: 3} + cellProbeOcclusionDataAsset: + m_AssetGUID: 49269760095946145b0059c3d2fe7a76 + m_StreamableAssetPath: APVStreamingAssets\1c5559cc330dfeb40b862cf3d9fa6974\49269760095946145b0059c3d2fe7a76.bytes + m_ElementSize: 32768 + m_StreamableCellDescs: + m_Keys: 0000000004000000020000000600000001000000050000000300000007000000 + m_Values: + - offset: 0 + elementCount: 1 + - offset: 32768 + elementCount: 1 + - offset: 65536 + elementCount: 1 + - offset: 98304 + elementCount: 1 + - offset: 131072 + elementCount: 1 + - offset: 163840 + elementCount: 1 + - offset: 196608 + elementCount: 1 + - offset: 229376 + elementCount: 1 + m_Asset: {fileID: 4900000, guid: 49269760095946145b0059c3d2fe7a76, type: 3} + cellBricksDataAsset: + m_AssetGUID: 31225e8b95b15a54c9f44a97ba40def8 + m_StreamableAssetPath: APVStreamingAssets\1c5559cc330dfeb40b862cf3d9fa6974\31225e8b95b15a54c9f44a97ba40def8.bytes + m_ElementSize: 16 + m_StreamableCellDescs: + m_Keys: 0000000004000000020000000600000001000000050000000300000007000000 + m_Values: + - offset: 0 + elementCount: 9 + - offset: 144 + elementCount: 9 + - offset: 288 + elementCount: 18 + - offset: 576 + elementCount: 18 + - offset: 864 + elementCount: 9 + - offset: 1008 + elementCount: 9 + - offset: 1152 + elementCount: 18 + - offset: 1440 + elementCount: 18 + m_Asset: {fileID: 4900000, guid: 31225e8b95b15a54c9f44a97ba40def8, type: 3} + cellSupportDataAsset: + m_AssetGUID: 36b94dd10a035fd489b4ebf2710c593a + m_StreamableAssetPath: APVStreamingAssets\1c5559cc330dfeb40b862cf3d9fa6974\36b94dd10a035fd489b4ebf2710c593a.bytes + m_ElementSize: 262144 + m_StreamableCellDescs: + m_Keys: 0000000004000000020000000600000001000000050000000300000007000000 + m_Values: + - offset: 0 + elementCount: 1 + - offset: 262144 + elementCount: 1 + - offset: 524288 + elementCount: 1 + - offset: 786432 + elementCount: 1 + - offset: 1048576 + elementCount: 1 + - offset: 1310720 + elementCount: 1 + - offset: 1572864 + elementCount: 1 + - offset: 1835008 + elementCount: 1 + m_Asset: {fileID: 4900000, guid: 36b94dd10a035fd489b4ebf2710c593a, type: 3} + chunkSizeInBricks: 128 + maxCellPosition: {x: 0, y: 0, z: 0} + minCellPosition: {x: -1, y: -1, z: -1} + globalBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 9, y: 9, z: 9} + bakedSimplificationLevels: 3 + bakedMinDistanceBetweenProbes: 1 + bakedProbeOcclusion: 1 + bakedSkyOcclusionValue: 0 + bakedSkyShadingDirectionValue: 0 + bakedProbeOffset: {x: 0, y: 0, z: 0} + bakedMaskCount: 1 + bakedLayerMasks: + x: 4294967295 + y: 0 + z: 0 + w: 0 + maxSHChunkCount: 1 + L0ChunkSize: 65536 + L1ChunkSize: 32768 + L2TextureChunkSize: 32768 + ProbeOcclusionChunkSize: 32768 + sharedValidityMaskChunkSize: 8192 + sharedSkyOcclusionL0L1ChunkSize: 0 + sharedSkyShadingDirectionIndicesChunkSize: 0 + sharedDataChunkSize: 8192 + supportPositionChunkSize: 98304 + supportValidityChunkSize: 32768 + supportTouchupChunkSize: 32768 + supportLayerMaskChunkSize: 0 + supportOffsetsChunkSize: 98304 + supportDataChunkSize: 262144 + lightingScenario: Default + version: 2 + freezePlacement: 0 + probeOffset: {x: 0, y: 0, z: 0} + simplificationLevels: 3 + minDistanceBetweenProbes: 1 + renderersLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + minRendererVolumeSize: 0.1 + skyOcclusion: 0 + skyOcclusionBakingSamples: 2048 + skyOcclusionBakingBounces: 2 + skyOcclusionAverageAlbedo: 0.6 + skyOcclusionBackFaceCulling: 0 + skyOcclusionShadingDirection: 0 + useRenderingLayers: 0 + renderingLayerMasks: [] + m_SceneBakeData: + m_Keys: + - 911c47a2fe05f9846b9eca70cf7757ee + m_Values: + - hasProbeVolume: 1 + bakeScene: 1 + bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 9, y: 9, z: 9} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.asset.meta new file mode 100644 index 00000000000..9b3c622fb4a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/231_APV_Subtractive_NoRealtimeShadows.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c5559cc330dfeb40b862cf3d9fa6974 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/LightingData.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/LightingData.asset new file mode 100644 index 00000000000..ee356e888e2 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/LightingData.asset differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/LightingData.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/LightingData.asset.meta new file mode 100644 index 00000000000..c346e2c2030 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows/LightingData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 653b34d8b91f71b48b36cbc9437144dd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 112000000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/EditorBuildSettings.asset index 607d1d38dee..118a58a6743 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/EditorBuildSettings.asset @@ -140,15 +140,24 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/222_Forward+_ReflectionProbes_Mip_blending.unity guid: 44cd1c9124e14d04494dcd058598b2ab + - enabled: 1 + path: Assets/Scenes/222_DeferredPlus_ReflectionProbes_Mip_blending.unity + guid: d4d56ea85e9cf5147b386fd2f81bd466 - enabled: 1 path: Assets/Scenes/223_Forward+_Lights_And_ReflectionProbe_Limit.unity guid: 99cfa91461770924b8ae476ebdf3b3b5 + - enabled: 1 + path: Assets/Scenes/223_DeferredPlus_Lights_And_ReflectionProbe_Limit.unity + guid: da7a16b33e98f1946a6ee52f6e9a8486 - enabled: 1 path: Assets/Scenes/224_Forward+_ReflectionProbes_PerObjectProbe_blending.unity guid: 5fad61d8d8ae2ac41a882111389c354c - enabled: 1 path: Assets/Scenes/230_APV_Subtractive.unity guid: 885c03fc42bf0a548b6e415c2f70e55b + - enabled: 1 + path: Assets/Scenes/231_APV_Subtractive_NoRealtimeShadows.unity + guid: 911c47a2fe05f9846b9eca70cf7757ee - enabled: 1 path: Assets/Scenes/240_Lighting_Bicubic_Sampling.unity guid: 9c375b78be67ea4428234deee1bfc581 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/QualitySettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/QualitySettings.asset index 4f62cc30233..a39bd9cf072 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/QualitySettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Lighting/ProjectSettings/QualitySettings.asset @@ -6,7 +6,7 @@ QualitySettings: serializedVersion: 5 m_CurrentQuality: 0 m_QualitySettings: - - serializedVersion: 3 + - serializedVersion: 4 name: 00->DefaultURPAsset pixelLightCount: 4 shadows: 2 @@ -483,17 +483,69 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] + - serializedVersion: 4 + name: 09->APV_NoRealtimeShadows + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + maximumLODLevel: 0 + enableLODCrossFade: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 4 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 1e23f43b03a29614baedd721281f66c7, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] m_TextureMipmapLimitGroupNames: [] m_PerPlatformDefaultQuality: Android: 0 - Nintendo 3DS: 0 + EmbeddedLinux: 0 + LinuxHeadlessSimulation: 0 Nintendo Switch: 0 - PS4: 0 - PSP2: 0 - Server: 0 + QNX: 0 Standalone: 0 + VisionOS: 0 WebGL: 0 Windows Store Apps: 0 - XboxOne: 0 iPhone: 0 tvOS: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/180_ScreenSpace_UI_Overlay_MultipleCameras.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/180_ScreenSpace_UI_Overlay_MultipleCameras.unity new file mode 100644 index 00000000000..0afa18073a4 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/180_ScreenSpace_UI_Overlay_MultipleCameras.unity @@ -0,0 +1,1660 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_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: 20201, guid: 0000000000000000f000000000000000, type: 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 &38006316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 38006320} + - component: {fileID: 38006319} + - component: {fileID: 38006318} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &38006318 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38006316} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &38006319 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38006316} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &38006320 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38006316} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.81, y: 0, z: -1.01} + 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 &38425670 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 38425672} + - component: {fileID: 38425671} + m_Layer: 0 + m_Name: Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &38425671 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38425670} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.Volume + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: 1eb6d5b918c3652418bcd96ddd348115, type: 2} +--- !u!4 &38425672 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 38425670} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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 &251203236 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 251203237} + - component: {fileID: 251203239} + - component: {fileID: 251203238} + m_Layer: 5 + m_Name: UIOverlay Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &251203237 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 251203236} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2076313556} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &251203238 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 251203236} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_FontData: + m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} + m_FontSize: 40 + m_FontStyle: 1 + m_BestFit: 0 + m_MinSize: 3 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: UI Overlay Mode +--- !u!222 &251203239 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 251203236} + m_CullTransparentMesh: 1 +--- !u!1 &396234716 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 396234718} + - component: {fileID: 396234717} + m_Layer: 0 + m_Name: GraphicsTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &396234717 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396234716} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 512 + TargetHeight: 512 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.005 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 1 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 0 + XRCompatible: 0 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!4 &396234718 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396234716} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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 &713121148 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 713121153} + - component: {fileID: 713121152} + - component: {fileID: 713121149} + m_Layer: 0 + m_Name: 2. NoAA Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &713121149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 713121148} + 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: 1 + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!20 &713121152 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 713121148} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, 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.5 + y: 0.5 + width: 0.5 + height: 0.5 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + 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 &713121153 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 713121148} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, 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!1 &800273517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 800273519} + - component: {fileID: 800273518} + m_Layer: 0 + m_Name: SetQualityLevelSetting + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &800273518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800273517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} + m_Name: + m_EditorClassIdentifier: + qualityLevelIndex: 0 + callbacks: [] +--- !u!4 &800273519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 800273517} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 142.04364, y: -164.26605, z: -31.54953} + 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 &1021407597 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1021407601} + - component: {fileID: 1021407600} + - component: {fileID: 1021407599} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1021407599 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021407597} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1021407600 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021407597} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1021407601 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1021407597} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.77, y: 0.58, z: -1.22} + 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 &1111568443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1111568447} + - component: {fileID: 1111568446} + - component: {fileID: 1111568445} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1111568445 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1111568443} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1111568446 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1111568443} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1111568447 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1111568443} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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 &1171716668 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1171716671} + - component: {fileID: 1171716670} + - component: {fileID: 1171716669} + - component: {fileID: 1171716672} + m_Layer: 0 + m_Name: 1. NoPostProcess Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1171716669 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171716668} + m_Enabled: 1 +--- !u!20 &1171716670 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171716668} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, 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.5 + width: 0.5 + height: 0.5 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + 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 &1171716671 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171716668} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, 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 &1171716672 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1171716668} + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!1 &1285750323 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1285750325} + - component: {fileID: 1285750324} + - component: {fileID: 1285750326} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1285750324 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1285750323} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1285750325 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1285750323} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &1285750326 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1285750323} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!1 &1555505133 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1555505136} + - component: {fileID: 1555505135} + - component: {fileID: 1555505134} + m_Layer: 0 + m_Name: 3. NoAA Camera - Overlay + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1555505134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555505133} + 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: 1 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 1 + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!20 &1555505135 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555505133} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 4 + m_BackGroundColor: {r: 0, g: 0, b: 0, 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: 0.5 + height: 0.5 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + 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 &1555505136 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1555505133} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, 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!1 &1687203843 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1687203848} + - component: {fileID: 1687203847} + - component: {fileID: 1687203844} + m_Layer: 0 + m_Name: 4. FXAA Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1687203844 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1687203843} + 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: 1 + m_Antialiasing: 1 + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!20 &1687203847 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1687203843} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, 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.5 + y: 0 + width: 0.5 + height: 0.5 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + 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 &1687203848 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1687203843} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, 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!1 &1737111016 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1737111021} + - component: {fileID: 1737111020} + - component: {fileID: 1737111017} + m_Layer: 0 + m_Name: 3. NoAA Camera - Stack + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1737111017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1737111016} + 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: + - {fileID: 1555505135} + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 1 + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!20 &1737111020 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1737111016} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 2 + m_BackGroundColor: {r: 1, g: 1, b: 1, 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: 0.5 + height: 0.5 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + 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 &1737111021 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1737111016} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, 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!1 &1741511350 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1741511351} + - component: {fileID: 1741511353} + - component: {fileID: 1741511352} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1741511351 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1741511350} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2076313556} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 440, y: 210} + m_SizeDelta: {x: 0, y: 10} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1741511352 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1741511350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 0.392} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1741511353 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1741511350} + m_CullTransparentMesh: 1 +--- !u!1 &1800165912 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1800165913} + - component: {fileID: 1800165915} + - component: {fileID: 1800165914} + m_Layer: 5 + m_Name: Background + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1800165913 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800165912} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2076313556} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 440, y: -105} + m_SizeDelta: {x: 300, y: 150} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1800165914 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800165912} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.5660378, g: 0.508342, b: 0.3075828, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1800165915 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1800165912} + m_CullTransparentMesh: 1 +--- !u!1 &2076313552 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2076313556} + - component: {fileID: 2076313555} + - component: {fileID: 2076313554} + - component: {fileID: 2076313553} + m_Layer: 5 + m_Name: ScreenSpaceCanvas-uGUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2076313553 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076313552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2076313554 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076313552} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 1280, y: 720} + m_ScreenMatchMode: 2 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 + m_PresetInfoIsWorld: 0 +--- !u!223 &2076313555 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076313552} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_VertexColorAlwaysGammaSpace: 0 + m_AdditionalShaderChannelsFlag: 0 + m_UpdateRectTransformForStandalone: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2076313556 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2076313552} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 251203237} + - {fileID: 1741511351} + - {fileID: 1800165913} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 800273519} + - {fileID: 1171716671} + - {fileID: 713121153} + - {fileID: 1737111021} + - {fileID: 1555505136} + - {fileID: 1687203848} + - {fileID: 1285750325} + - {fileID: 2076313556} + - {fileID: 38006320} + - {fileID: 1111568447} + - {fileID: 1021407601} + - {fileID: 38425672} + - {fileID: 396234718} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/180_ScreenSpace_UI_Overlay_MultipleCameras.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/180_ScreenSpace_UI_Overlay_MultipleCameras.unity.meta new file mode 100644 index 00000000000..8b13fe73747 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/Assets/Scenes/180_ScreenSpace_UI_Overlay_MultipleCameras.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3111d08072307b74b9f8b68b59d0b924 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset index 90be333aa58..69c9e055058 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_PostPro/ProjectSettings/EditorBuildSettings.asset @@ -158,6 +158,9 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/177_FullScreenPass_MultiPass_DepthTestAndWrite.unity guid: 809a83a0529a18940a9676977eea69c4 + - enabled: 1 + path: Assets/Scenes/180_ScreenSpace_UI_Overlay_MultipleCameras.unity + guid: 3111d08072307b74b9f8b68b59d0b924 - enabled: 1 path: Assets/Scenes/200_Lens_Flare_Data_Driven.unity guid: 4a2bbe1bdb894b34981cc07bc878c7c2 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/MotionVectorVisualization/StaticCamera.prefab b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/MotionVectorVisualization/StaticCamera.prefab index 5c8d402e02c..0062d53f143 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/MotionVectorVisualization/StaticCamera.prefab +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/MotionVectorVisualization/StaticCamera.prefab @@ -27,13 +27,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6456975910273469994} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: -4} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!20 &4978488346857466839 Camera: @@ -124,19 +124,20 @@ MonoBehaviour: 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_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!114 &5925587397941101150 MonoBehaviour: m_ObjectHideFlags: 0 @@ -150,8 +151,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: ImageComparisonSettings: - TargetWidth: 512 - TargetHeight: 512 + TargetWidth: 960 + TargetHeight: 540 + TargetMSAASamples: 1 PerPixelCorrectnessThreshold: 0 PerPixelGammaThreshold: 0 PerPixelAlphaThreshold: 0 @@ -159,10 +161,13 @@ MonoBehaviour: AverageCorrectnessThreshold: 0.0001 IncorrectPixelsThreshold: 0 UseHDR: 0 - UseBackBuffer: 1 + UseBackBuffer: 0 ImageResolution: 3 ActiveImageTests: 1 ActivePixelTests: 0 WaitFrames: 1 XRCompatible: 0 + gpuDrivenCompatible: 1 CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/TerrainLayers/White.terrainlayer b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/TerrainLayers/White.terrainlayer new file mode 100644 index 00000000000..74927a8c222 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/TerrainLayers/White.terrainlayer @@ -0,0 +1,23 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1953259897 &8574412962073106934 +TerrainLayer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: White + m_DiffuseTexture: {fileID: 2800000, guid: 127279d577f25ac4ea17dae3782e5074, type: 3} + m_NormalMapTexture: {fileID: 0} + m_MaskMapTexture: {fileID: 0} + m_TileSize: {x: 2, y: 2} + m_TileOffset: {x: 0, y: 0} + m_Specular: {r: 0, g: 0, b: 0, a: 0} + m_Metallic: 0 + m_Smoothness: 0 + m_NormalScale: 1 + m_DiffuseRemapMin: {x: 0, y: 0, z: 0, w: 0} + m_DiffuseRemapMax: {x: 1, y: 1, z: 1, w: 1} + m_MaskMapRemapMin: {x: 0, y: 0, z: 0, w: 0} + m_MaskMapRemapMax: {x: 1, y: 1, z: 1, w: 1} + m_SmoothnessSource: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/TerrainLayers/White.terrainlayer.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/TerrainLayers/White.terrainlayer.meta new file mode 100644 index 00000000000..8af1505c853 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/TerrainLayers/White.terrainlayer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c9da923a749719146afb89ad938b8eef +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 8574412962073106934 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/UniversalRPAssetRenderingLayers.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/UniversalRPAssetRenderingLayers.asset new file mode 100644 index 00000000000..e2127e5febb --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/UniversalRPAssetRenderingLayers.asset @@ -0,0 +1,139 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: UniversalRPAssetRenderingLayers + m_EditorClassIdentifier: + k_AssetVersion: 12 + k_AssetPreviousVersion: 12 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: f59607d3476b54858a594ea904187fb5, type: 2} + - {fileID: 11400000, guid: 63cfed70ad0f433498f0c9564aca9906, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 1 + m_RequireOpaqueTexture: 1 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 4 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 128 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 8 + m_AdditionalLightShadowsSupported: 1 + m_AdditionalLightsShadowmapResolution: 512 + m_AdditionalLightsShadowResolutionTierLow: 128 + m_AdditionalLightsShadowResolutionTierMedium: 256 + m_AdditionalLightsShadowResolutionTierHigh: 512 + m_ReflectionProbeBlending: 0 + m_ReflectionProbeBoxProjection: 0 + m_ReflectionProbeAtlas: 0 + m_ShadowDistance: 56 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.154, y: 0.478} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.1 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 0 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 0 + m_SupportsLightCookies: 0 + m_SupportsLightLayers: 1 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 0 + m_LocalShadowsSupported: 1 + m_LocalShadowsAtlasResolution: 512 + m_MaxPixelLights: 4 + m_ShadowAtlasResolution: 2048 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 0} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 3 + m_PrefilteringModeAdditionalLightShadows: 2 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 0 + m_PrefilteringModeDeferredRendering: 1 + m_PrefilteringModeScreenSpaceOcclusion: 1 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 0 + m_PrefilterSSAOSourceDepthLow: 0 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 0 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 0 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 0 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 3 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/UniversalRPAssetRenderingLayers.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/UniversalRPAssetRenderingLayers.asset.meta new file mode 100644 index 00000000000..25557b21805 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/CommonAssets/UniversalRPAssetRenderingLayers.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a3e77455f076a6b449705ffb0442f526 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend.unity index a3820ed05d3..fb55f8c58f7 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 10 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -38,13 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18386838, g: 0.22901553, b: 0.30311254, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -67,9 +66,6 @@ LightmapSettings: m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 m_ReflectionCompression: 2 m_MixedBakeMode: 2 m_BakeBackend: 1 @@ -135,6 +131,7 @@ GameObject: - component: {fileID: 685546048} - component: {fileID: 685546047} - component: {fileID: 685546050} + - component: {fileID: 685546051} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -160,7 +157,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -208,13 +205,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 685546046} + serializedVersion: 2 m_LocalRotation: {x: 0.2840153, y: 0, z: 0, w: 0.95881975} m_LocalPosition: {x: 10, y: 20, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 33, y: 0, z: 0} --- !u!114 &685546050 MonoBehaviour: @@ -231,9 +228,11 @@ MonoBehaviour: ImageComparisonSettings: TargetWidth: 512 TargetHeight: 512 + TargetMSAASamples: 1 PerPixelCorrectnessThreshold: 0.001 PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 AverageCorrectnessThreshold: 0.005 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 @@ -243,7 +242,54 @@ MonoBehaviour: ActivePixelTests: 7 WaitFrames: 0 XRCompatible: 0 + gpuDrivenCompatible: 1 CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!114 &685546051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685546046} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData + 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!1 &928594914 GameObject: m_ObjectHideFlags: 0 @@ -270,9 +316,8 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 928594914} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 11 m_Type: 1 - m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 @@ -322,8 +367,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &928594916 Transform: m_ObjectHideFlags: 0 @@ -331,13 +380,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 928594914} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0.9659258, z: -0.2588191, w: 0} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 30, y: 180, z: 0} --- !u!114 &928594917 MonoBehaviour: @@ -351,15 +400,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 1 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 1 + m_SoftShadowQuality: 2 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1231816495 GameObject: m_ObjectHideFlags: 0 @@ -416,17 +473,20 @@ Terrain: m_DetailObjectDensity: 1 m_HeightmapPixelError: 5 m_SplatMapDistance: 1000 + m_HeightmapMinimumLODSimplification: 0 m_HeightmapMaximumLOD: 0 m_ShadowCastingMode: 2 m_DrawHeightmap: 1 m_DrawInstanced: 0 m_DrawTreesAndFoliage: 1 m_StaticShadowCaster: 0 + m_IgnoreQualitySettings: 0 m_ReflectionProbeUsage: 1 m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} m_BakeLightProbesForTrees: 1 m_PreserveTreePrototypeLayers: 0 m_DeringLightProbesForTrees: 1 + m_ReceiveGI: 1 m_ScaleInLightmap: 0.0256 m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} m_GroupingID: 0 @@ -434,6 +494,7 @@ Terrain: m_AllowAutoConnect: 1 m_EnableHeightmapRayTracing: 0 m_EnableTreesAndDetailsRayTracing: 0 + m_TreeMotionVectorModeOverride: 3 --- !u!4 &1231816498 Transform: m_ObjectHideFlags: 0 @@ -441,11 +502,18 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1231816495} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -50, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 685546049} + - {fileID: 928594916} + - {fileID: 1231816498} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend/LayerTestTerrain.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend/LayerTestTerrain.asset index 8179ec6ab2f..ac01fdde699 100644 Binary files a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend/LayerTestTerrain.asset and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend/LayerTestTerrain.asset differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred.meta new file mode 100644 index 00000000000..bc22578f285 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd783edc5e0beb24d94233c1e202de77 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred.unity index 030986ec68c..c500345a538 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 10 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -38,13 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18386838, g: 0.22901553, b: 0.30311254, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -67,9 +66,6 @@ LightmapSettings: m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 m_ReflectionCompression: 2 m_MixedBakeMode: 2 m_BakeBackend: 1 @@ -97,7 +93,8 @@ LightmapSettings: m_ExportTrainingData: 0 m_TrainingDataDestination: TrainingData m_LightProbeSampleCountMultiplier: 4 - m_LightingDataAsset: {fileID: 0} + m_LightingDataAsset: {fileID: 112000000, guid: b91f37630d2e3d742912e891400cd137, + type: 2} m_LightingSettings: {fileID: 0} --- !u!196 &4 NavMeshSettings: @@ -123,6 +120,235 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &122987226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 122987229} + - component: {fileID: 122987228} + - component: {fileID: 122987227} + m_Layer: 0 + m_Name: Point Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &122987227 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 122987226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &122987228 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 122987226} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 2 + m_Color: {r: 0.6377069, g: 1, b: 0, a: 1} + m_Intensity: 231.3 + m_Range: 23.65849 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 1 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &122987229 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 122987226} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 19.11, y: 10.2, z: 18.38} + 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 &216553097 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 216553101} + - component: {fileID: 216553100} + - component: {fileID: 216553099} + - component: {fileID: 216553098} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &216553098 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 216553097} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &216553099 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 216553097} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &216553100 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 216553097} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &216553101 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 216553097} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.86, y: 4.05, z: 13.35} + m_LocalScale: {x: 2.043, y: 2.043, z: 2.043} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &685546046 GameObject: m_ObjectHideFlags: 0 @@ -209,13 +435,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 685546046} + serializedVersion: 2 m_LocalRotation: {x: 0.2840153, y: 0, z: 0, w: 0.95881975} m_LocalPosition: {x: 10, y: 20, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 33, y: 0, z: 0} --- !u!114 &685546050 MonoBehaviour: @@ -232,9 +458,11 @@ MonoBehaviour: ImageComparisonSettings: TargetWidth: 512 TargetHeight: 512 + TargetMSAASamples: 1 PerPixelCorrectnessThreshold: 0.001 PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 AverageCorrectnessThreshold: 0.005 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 @@ -244,7 +472,10 @@ MonoBehaviour: ActivePixelTests: 7 WaitFrames: 0 XRCompatible: 0 + gpuDrivenCompatible: 1 CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 --- !u!114 &685546051 MonoBehaviour: m_ObjectHideFlags: 0 @@ -275,9 +506,141 @@ MonoBehaviour: 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!1 &701718592 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 701718595} + - component: {fileID: 701718594} + - component: {fileID: 701718593} + m_Layer: 0 + m_Name: Spot Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &701718593 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 701718592} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 +--- !u!108 &701718594 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 701718592} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 0 + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_Intensity: 341.45 + m_Range: 55.96307 + m_SpotAngle: 66.58583 + m_InnerSpotAngle: 46.280415 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 2 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &701718595 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 701718592} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: -9.8, y: 19, z: 12.4} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!1 &928594914 GameObject: m_ObjectHideFlags: 0 @@ -304,9 +667,8 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 928594914} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 11 m_Type: 1 - m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 @@ -356,8 +718,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &928594916 Transform: m_ObjectHideFlags: 0 @@ -365,13 +731,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 928594914} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0.9659258, z: -0.2588191, w: 0} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 30, y: 180, z: 0} --- !u!114 &928594917 MonoBehaviour: @@ -385,15 +751,17 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 1 + m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 m_LightLayerMask: 1 + m_RenderingLayers: 1 m_CustomShadowLayers: 0 m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 1 + m_SoftShadowQuality: 2 --- !u!1 &1231816495 GameObject: m_ObjectHideFlags: 0 @@ -450,17 +818,20 @@ Terrain: m_DetailObjectDensity: 1 m_HeightmapPixelError: 5 m_SplatMapDistance: 1000 + m_HeightmapMinimumLODSimplification: 0 m_HeightmapMaximumLOD: 0 m_ShadowCastingMode: 2 m_DrawHeightmap: 1 m_DrawInstanced: 0 m_DrawTreesAndFoliage: 1 m_StaticShadowCaster: 0 + m_IgnoreQualitySettings: 0 m_ReflectionProbeUsage: 1 m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} m_BakeLightProbesForTrees: 1 m_PreserveTreePrototypeLayers: 0 m_DeringLightProbesForTrees: 1 + m_ReceiveGI: 1 m_ScaleInLightmap: 0.0256 m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} m_GroupingID: 0 @@ -468,6 +839,7 @@ Terrain: m_AllowAutoConnect: 1 m_EnableHeightmapRayTracing: 0 m_EnableTreesAndDetailsRayTracing: 0 + m_TreeMotionVectorModeOverride: 3 --- !u!4 &1231816498 Transform: m_ObjectHideFlags: 0 @@ -475,11 +847,130 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1231816495} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -50, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1863649348 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1863649352} + - component: {fileID: 1863649351} + - component: {fileID: 1863649350} + - component: {fileID: 1863649349} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!65 &1863649349 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863649348} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1863649350 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863649348} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1863649351 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863649348} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1863649352 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863649348} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 15.76, y: 4.05, z: 12.15} + m_LocalScale: {x: 2.043, y: 2.043, z: 2.043} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 685546049} + - {fileID: 928594916} + - {fileID: 1231816498} + - {fileID: 701718595} + - {fileID: 122987229} + - {fileID: 216553101} + - {fileID: 1863649352} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/LightingData.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/LightingData.asset new file mode 100644 index 00000000000..e1c0e808820 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/LightingData.asset differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/LightingData.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/LightingData.asset.meta new file mode 100644 index 00000000000..8fe19987d28 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/LightingData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b91f37630d2e3d742912e891400cd137 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 112000000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_dir.png b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_dir.png new file mode 100644 index 00000000000..032476c05a6 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_dir.png differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_dir.png.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_dir.png.meta new file mode 100644 index 00000000000..6f4a1793725 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_dir.png.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: d10585f6b41bdfa43a4aff45bf9473f7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + 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: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 3 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 12 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + 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: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_light.exr b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_light.exr new file mode 100644 index 00000000000..fac6f04f544 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_light.exr differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_light.exr.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_light.exr.meta new file mode 100644 index 00000000000..effb7b9d11c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/038_Shader_TerrainBlend_deferred/Lightmap-0_comp_light.exr.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 1de1655bc25e45244b43db668a795142 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + 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: 1 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 3 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 0 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 6 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + 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: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/039_Shader_TerrainBlend_Opacity_As_Density.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/039_Shader_TerrainBlend_Opacity_As_Density.unity index d2c646bc0d9..39bee2c9ccb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/039_Shader_TerrainBlend_Opacity_As_Density.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/039_Shader_TerrainBlend_Opacity_As_Density.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 10 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -38,13 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18386838, g: 0.22901553, b: 0.30311254, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -67,9 +66,6 @@ LightmapSettings: m_LightmapParameters: {fileID: 0} m_LightmapsBakeMode: 1 m_TextureCompression: 1 - m_FinalGather: 0 - m_FinalGatherFiltering: 1 - m_FinalGatherRayCount: 256 m_ReflectionCompression: 2 m_MixedBakeMode: 2 m_BakeBackend: 1 @@ -135,6 +131,7 @@ GameObject: - component: {fileID: 685546048} - component: {fileID: 685546047} - component: {fileID: 685546050} + - component: {fileID: 685546051} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -160,7 +157,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -208,13 +205,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 685546046} + serializedVersion: 2 m_LocalRotation: {x: 0.2840153, y: 0, z: 0, w: 0.95881975} m_LocalPosition: {x: 10, y: 20, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 33, y: 0, z: 0} --- !u!114 &685546050 MonoBehaviour: @@ -231,9 +228,11 @@ MonoBehaviour: ImageComparisonSettings: TargetWidth: 512 TargetHeight: 512 + TargetMSAASamples: 1 PerPixelCorrectnessThreshold: 0.001 PerPixelGammaThreshold: 0.003921569 PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 AverageCorrectnessThreshold: 0.005 IncorrectPixelsThreshold: 0.0000038146973 UseHDR: 0 @@ -243,7 +242,54 @@ MonoBehaviour: ActivePixelTests: 7 WaitFrames: 0 XRCompatible: 0 + gpuDrivenCompatible: 1 CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!114 &685546051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685546046} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData + 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!1 &928594914 GameObject: m_ObjectHideFlags: 0 @@ -270,9 +316,8 @@ Light: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 928594914} m_Enabled: 1 - serializedVersion: 10 + serializedVersion: 11 m_Type: 1 - m_Shape: 0 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} m_Intensity: 1 m_Range: 10 @@ -322,8 +367,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &928594916 Transform: m_ObjectHideFlags: 0 @@ -331,13 +380,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 928594914} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0.9659258, z: -0.2588191, w: 0} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 30, y: 180, z: 0} --- !u!114 &928594917 MonoBehaviour: @@ -351,15 +400,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 1 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} - m_SoftShadowQuality: 1 + m_SoftShadowQuality: 2 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &1231816495 GameObject: m_ObjectHideFlags: 0 @@ -416,17 +473,20 @@ Terrain: m_DetailObjectDensity: 1 m_HeightmapPixelError: 5 m_SplatMapDistance: 1000 + m_HeightmapMinimumLODSimplification: 0 m_HeightmapMaximumLOD: 0 m_ShadowCastingMode: 2 m_DrawHeightmap: 1 m_DrawInstanced: 0 m_DrawTreesAndFoliage: 1 m_StaticShadowCaster: 0 + m_IgnoreQualitySettings: 0 m_ReflectionProbeUsage: 1 m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} m_BakeLightProbesForTrees: 1 m_PreserveTreePrototypeLayers: 0 m_DeringLightProbesForTrees: 1 + m_ReceiveGI: 1 m_ScaleInLightmap: 0.0256 m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} m_GroupingID: 0 @@ -434,6 +494,7 @@ Terrain: m_AllowAutoConnect: 1 m_EnableHeightmapRayTracing: 0 m_EnableTreesAndDetailsRayTracing: 0 + m_TreeMotionVectorModeOverride: 3 --- !u!4 &1231816498 Transform: m_ObjectHideFlags: 0 @@ -441,11 +502,18 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1231816495} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -50, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 685546049} + - {fileID: 928594916} + - {fileID: 1231816498} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/040_Shader_TerrainBlend_deferred_RenderingLayers.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/040_Shader_TerrainBlend_deferred_RenderingLayers.unity new file mode 100644 index 00000000000..ce57a829d76 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/040_Shader_TerrainBlend_deferred_RenderingLayers.unity @@ -0,0 +1,560 @@ +%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, g: 0, b: 0, 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: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_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 &685546046 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 685546049} + - component: {fileID: 685546048} + - component: {fileID: 685546047} + - component: {fileID: 685546050} + - component: {fileID: 685546051} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &685546047 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685546046} + m_Enabled: 1 +--- !u!20 &685546048 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685546046} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0, g: 0, b: 0, 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: 0 + orthographic size: 5 + m_Depth: -1 + 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 &685546049 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685546046} + serializedVersion: 2 + m_LocalRotation: {x: 0.2840153, y: 0, z: 0, w: 0.95881975} + m_LocalPosition: {x: 10, y: 20, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 33, y: 0, z: 0} +--- !u!114 &685546050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685546046} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 512 + TargetHeight: 512 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.001 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.005 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: 7 + WaitFrames: 0 + XRCompatible: 0 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 +--- !u!114 &685546051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 685546046} + 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_Version: 2 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 +--- !u!1 &928594914 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 928594916} + - component: {fileID: 928594915} + - component: {fileID: 928594917} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &928594915 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928594914} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &928594916 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928594914} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0.9659258, z: -0.2588191, w: 0} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 30, y: 180, z: 0} +--- !u!114 &928594917 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 928594914} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 2 +--- !u!1 &969185438 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 969185440} + - component: {fileID: 969185439} + m_Layer: 0 + m_Name: SetQualityLevel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &969185439 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 969185438} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} + m_Name: + m_EditorClassIdentifier: UniversalGraphicsTests::SetQualityLevelOnAwake + qualityLevelIndex: 3 + callbacks: [] +--- !u!4 &969185440 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 969185438} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 12.04088, y: 0.00001, z: 25.56534} + 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 &1231816495 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1231816498} + - component: {fileID: 1231816497} + - component: {fileID: 1231816496} + m_Layer: 0 + m_Name: Terrain + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!154 &1231816496 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231816495} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_TerrainData: {fileID: 15600000, guid: d125b768999302d4e808db75c17f36ee, type: 2} + m_EnableTreeColliders: 1 +--- !u!218 &1231816497 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231816495} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: d125b768999302d4e808db75c17f36ee, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMinimumLODSimplification: 0 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_IgnoreQualitySettings: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ReceiveGI: 1 + m_ScaleInLightmap: 0.0256 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 + m_EnableHeightmapRayTracing: 0 + m_EnableTreesAndDetailsRayTracing: 0 + m_TreeMotionVectorModeOverride: 3 +--- !u!4 &1231816498 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231816495} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -50, y: 0, 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!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 685546049} + - {fileID: 928594916} + - {fileID: 1231816498} + - {fileID: 969185440} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/040_Shader_TerrainBlend_deferred_RenderingLayers.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/040_Shader_TerrainBlend_deferred_RenderingLayers.unity.meta new file mode 100644 index 00000000000..d14c17c209a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/040_Shader_TerrainBlend_deferred_RenderingLayers.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f6c6afe0840e7464c98b248ee2e77d64 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8.unity index a7a486c313b..6d83e4dc6b1 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8.unity @@ -751,7 +751,7 @@ MonoBehaviour: ImageResolution: 0 ActiveImageTests: 1 ActivePixelTests: 7 - WaitFrames: 0 + WaitFrames: 2 XRCompatible: 1 CheckMemoryAllocation: 1 SetBackBufferResolution: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8/.gitignore b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8/.gitignore deleted file mode 100644 index 1c33e83589d..00000000000 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/058_SpeedTree_V8/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -Lightmap-*_comp* -LightingData.* -ReflectionProbe-* \ No newline at end of file diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/071_Terrain_Holes/Terrain.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/071_Terrain_Holes/Terrain.asset index 75c97ecf666..638086a0277 100644 Binary files a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/071_Terrain_Holes/Terrain.asset and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/071_Terrain_Holes/Terrain.asset differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/230_Decal.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/230_Decal.unity index abf79927a9e..85cac55ae59 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/230_Decal.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/230_Decal.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 9 + serializedVersion: 10 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -38,13 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.14995676, g: 0.16868494, b: 0.17473541, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 - m_GIWorkflowMode: 1 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -177,6 +176,7 @@ Terrain: m_DetailObjectDensity: 1 m_HeightmapPixelError: 5 m_SplatMapDistance: 1000 + m_HeightmapMinimumLODSimplification: 0 m_HeightmapMaximumLOD: 0 m_ShadowCastingMode: 2 m_DrawHeightmap: 1 @@ -197,6 +197,7 @@ Terrain: m_AllowAutoConnect: 0 m_EnableHeightmapRayTracing: 1 m_EnableTreesAndDetailsRayTracing: 0 + m_TreeMotionVectorModeOverride: 3 --- !u!4 &745712513 Transform: m_ObjectHideFlags: 0 @@ -204,13 +205,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 745712510} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: -5, y: 0, z: -5} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &838262085 GameObject: @@ -289,8 +290,12 @@ Light: m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} m_UseBoundingSphereOverride: 0 m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 5 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &838262087 Transform: m_ObjectHideFlags: 0 @@ -298,13 +303,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 838262085} + serializedVersion: 2 m_LocalRotation: {x: 0.020243749, y: 0.7230179, z: -0.02120609, w: 0.690207} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 3.36, y: 92.66, z: 0} --- !u!114 &838262088 MonoBehaviour: @@ -318,17 +323,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!1 &871341364 GameObject: m_ObjectHideFlags: 0 @@ -343,7 +354,7 @@ GameObject: - component: {fileID: 871341366} m_Layer: 0 m_Name: DBufferDeferred - m_TagString: Untagged + m_TagString: MainCamera m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -355,13 +366,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 871341364} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1318691731} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &871341366 MonoBehaviour: @@ -393,19 +404,20 @@ MonoBehaviour: 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_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!124 &871341367 Behaviour: m_ObjectHideFlags: 0 @@ -526,13 +538,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 892219859} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &953397223 GameObject: @@ -570,11 +582,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 0 m_Offset: {x: 0, y: 0, z: 1.5} m_Size: {x: 3, y: 3, z: 3} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &953397225 Transform: m_ObjectHideFlags: 0 @@ -582,13 +598,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 953397223} + serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0.8, y: 2.1, z: -3.09} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!1 &1318691730 GameObject: @@ -599,6 +615,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1318691731} + - component: {fileID: 1318691732} m_Layer: 0 m_Name: Cameras m_TagString: Untagged @@ -613,6 +630,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1318691730} + serializedVersion: 2 m_LocalRotation: {x: 0.2617, y: -0, z: -0, w: 0.9651493} m_LocalPosition: {x: 0, y: 5.38, z: -10.24} m_LocalScale: {x: 1, y: 1, z: 1} @@ -623,8 +641,40 @@ Transform: - {fileID: 1421847795} - {fileID: 871341365} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 30.342, y: 0, z: 0} +--- !u!114 &1318691732 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318691730} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} + m_Name: + m_EditorClassIdentifier: + ImageComparisonSettings: + TargetWidth: 960 + TargetHeight: 540 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.005 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.001 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 0 + ActiveImageTests: 1 + ActivePixelTests: -1 + WaitFrames: 0 + XRCompatible: 1 + gpuDrivenCompatible: 1 + CheckMemoryAllocation: 1 + renderBackendCompatibility: 2 + SetBackBufferResolution: 0 --- !u!1 &1368807765 GameObject: m_ObjectHideFlags: 0 @@ -636,7 +686,6 @@ GameObject: - component: {fileID: 1368807770} - component: {fileID: 1368807769} - component: {fileID: 1368807767} - - component: {fileID: 1368807768} - component: {fileID: 1368807771} m_Layer: 0 m_Name: ScreenSpaceForward @@ -653,36 +702,6 @@ Behaviour: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1368807765} m_Enabled: 1 ---- !u!114 &1368807768 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1368807765} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 73231aa468d81ea49bc3d914080de185, type: 3} - m_Name: - m_EditorClassIdentifier: - ImageComparisonSettings: - TargetWidth: 640 - TargetHeight: 360 - TargetMSAASamples: 1 - PerPixelCorrectnessThreshold: 0.005 - PerPixelGammaThreshold: 0.003921569 - PerPixelAlphaThreshold: 0.003921569 - RMSEThreshold: 0 - AverageCorrectnessThreshold: 0.001 - IncorrectPixelsThreshold: 0.0000038146973 - UseHDR: 0 - UseBackBuffer: 1 - ImageResolution: 0 - ActiveImageTests: 1 - ActivePixelTests: -1 - WaitFrames: 0 - XRCompatible: 1 - CheckMemoryAllocation: 1 --- !u!20 &1368807769 Camera: m_ObjectHideFlags: 0 @@ -693,7 +712,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -741,13 +760,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1368807765} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1318691731} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1368807771 MonoBehaviour: @@ -779,19 +798,20 @@ MonoBehaviour: 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_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!1 &1415286896 GameObject: m_ObjectHideFlags: 0 @@ -806,7 +826,7 @@ GameObject: - component: {fileID: 1415286898} m_Layer: 0 m_Name: ScreenSpaceDeferred - m_TagString: Untagged + m_TagString: MainCamera m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -818,13 +838,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1415286896} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1318691731} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1415286898 MonoBehaviour: @@ -856,19 +876,20 @@ MonoBehaviour: 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_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!124 &1415286899 Behaviour: m_ObjectHideFlags: 0 @@ -954,13 +975,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1421847794} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 1318691731} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1421847796 MonoBehaviour: @@ -992,19 +1013,20 @@ MonoBehaviour: 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_Version: 2 m_TaaSettings: - quality: 3 - frameInfluence: 0.1 - jitterScale: 1 - mipBias: 0 - varianceClampScale: 0.9 - contrastAdaptiveSharpening: 0 + m_Quality: 3 + m_FrameInfluence: 0.1 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 --- !u!124 &1421847798 Behaviour: m_ObjectHideFlags: 0 @@ -1023,7 +1045,7 @@ Camera: m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 - m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_BackGroundColor: {r: 0, g: 0, b: 0, a: 1} m_projectionMatrixMode: 1 m_GateFitMode: 2 m_FOVAxisMode: 0 @@ -1100,11 +1122,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 0 m_Offset: {x: 0, y: 0, z: 1.5} m_Size: {x: 3, y: 2, z: 3} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &1631941822 Transform: m_ObjectHideFlags: 0 @@ -1112,13 +1138,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1631941820} + serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: -2.5, y: 2.82, z: -2.16} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!850595691 &1787523002 LightingSettings: @@ -1127,8 +1153,7 @@ LightingSettings: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Settings.lighting - serializedVersion: 7 - m_GIWorkflowMode: 1 + serializedVersion: 9 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 0 m_RealtimeEnvironmentLighting: 0 @@ -1153,6 +1178,7 @@ LightingSettings: m_FilterMode: 1 m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0} m_ExportTrainingData: 0 + m_EnableWorkerProcessBaking: 1 m_TrainingDataDestination: TrainingData m_RealtimeResolution: 2 m_ForceWhiteAlbedo: 0 @@ -1180,7 +1206,6 @@ LightingSettings: m_PVRFilteringAtrousPositionSigmaDirect: 0.5 m_PVRFilteringAtrousPositionSigmaIndirect: 2 m_PVRFilteringAtrousPositionSigmaAO: 1 - m_PVRTiledBaking: 0 m_RespectSceneVisibilityWhenBakingGI: 0 --- !u!1 &1975065066 GameObject: @@ -1218,11 +1243,15 @@ MonoBehaviour: m_EndAngleFade: 180 m_UVScale: {x: 1, y: 1} m_UVBias: {x: 0, y: 0} - m_DecalLayerMask: 1 + m_RenderingLayerMask: + serializedVersion: 0 + m_Bits: 1 m_ScaleMode: 0 m_Offset: {x: 0, y: 0, z: 1.5} m_Size: {x: 2, y: 2, z: 3} m_FadeFactor: 1 + version: 1 + m_DecalLayerMask: 1 --- !u!4 &1975065068 Transform: m_ObjectHideFlags: 0 @@ -1230,11 +1259,22 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1975065066} + serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0.8, y: 2.1, z: -3.09} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1318691731} + - {fileID: 838262087} + - {fileID: 745712513} + - {fileID: 892219861} + - {fileID: 953397225} + - {fileID: 1631941822} + - {fileID: 1975065068} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.meta new file mode 100644 index 00000000000..939f904cfde --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a83a8c9e466a2e64f86925e600335af9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.unity new file mode 100644 index 00000000000..0ca673b81e9 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.unity @@ -0,0 +1,488 @@ +%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: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_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: 20201, guid: 0000000000000000f000000000000000, type: 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 &337485437 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 337485439} + - component: {fileID: 337485438} + m_Layer: 0 + m_Name: SelectRenderingQualityScript + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &337485438 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337485437} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f1decc188d2f3146ab93291a5c743e9, type: 3} + m_Name: + m_EditorClassIdentifier: + qualityLevelIndex: 3 + callbacks: [] +--- !u!4 &337485439 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 337485437} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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 &377091179 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 377091182} + - component: {fileID: 377091181} + - component: {fileID: 377091180} + m_Layer: 0 + m_Name: Terrain + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!154 &377091180 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 377091179} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_TerrainData: {fileID: 15600000, guid: 1c32d0bae69e93d43a9d0c657993f7bd, type: 2} + m_EnableTreeColliders: 1 +--- !u!218 &377091181 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 377091179} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: 1c32d0bae69e93d43a9d0c657993f7bd, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMinimumLODSimplification: 0 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 0 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_IgnoreQualitySettings: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ReceiveGI: 1 + m_ScaleInLightmap: 0.0256 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 + m_EnableHeightmapRayTracing: 1 + m_EnableTreesAndDetailsRayTracing: 0 + m_TreeMotionVectorModeOverride: 3 +--- !u!4 &377091182 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 377091179} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, 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!1001 &825157028 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4978488346857466839, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_BackGroundColor.a + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4978488346857466839, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_NormalizedViewPortRect.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4978488346857466839, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_NormalizedViewPortRect.height + value: 10 + objectReference: {fileID: 0} + - target: {fileID: 6456975910273469994, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_Name + value: StaticCamera + objectReference: {fileID: 0} + - target: {fileID: 7237400365955927806, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_RendererIndex + value: -1 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalPosition.x + value: 61.95666 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalPosition.y + value: 18.068314 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalPosition.z + value: 16.276543 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7755467 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.52354926 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.2923398 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.19738515 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 25.962 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8438127893108032973, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a477888deb65a194793f87af3323de08, type: 3} +--- !u!1 &1318578710 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1318578713} + - component: {fileID: 1318578712} + - component: {fileID: 1318578711} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1318578711 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318578710} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &1318578712 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318578710} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 1 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &1318578713 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1318578710} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 1318578713} + - {fileID: 825157028} + - {fileID: 337485439} + - {fileID: 377091182} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.unity.meta new file mode 100644 index 00000000000..7c0af5eb6d9 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0f1a5507ea180874d9535fd06eceb0e1 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/240 TerrainData.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/240 TerrainData.asset new file mode 100644 index 00000000000..e46c941aaa4 Binary files /dev/null and b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/240 TerrainData.asset differ diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/240 TerrainData.asset.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/240 TerrainData.asset.meta new file mode 100644 index 00000000000..c170bcea081 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/240 TerrainData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c32d0bae69e93d43a9d0c657993f7bd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 15600000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/Cube.prefab b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/Cube.prefab new file mode 100644 index 00000000000..0d1a5df7502 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/Cube.prefab @@ -0,0 +1,113 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &206789938949047527 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7008990344308566897} + - component: {fileID: 5574429419213530805} + - component: {fileID: 7767527184313356026} + - component: {fileID: 4833467457732832210} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7008990344308566897 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 206789938949047527} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 50, y: -0.00001, z: 50.00001} + 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!33 &5574429419213530805 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 206789938949047527} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7767527184313356026 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 206789938949047527} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_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: 31321ba15b8f8eb4c954353edc038b1d, 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_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &4833467457732832210 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 206789938949047527} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/Cube.prefab.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/Cube.prefab.meta new file mode 100644 index 00000000000..a7aafd443ae --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/240_DetailInstancing_RenderingLayer/Cube.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7126ee636b5a3a34da9d051bd82e0950 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/300_Motion_Vectors_SpeedTree.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/300_Motion_Vectors_SpeedTree.unity index 0d68d3758cf..8be6756914b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/300_Motion_Vectors_SpeedTree.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/300_Motion_Vectors_SpeedTree.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -1307,6 +1307,16 @@ PrefabInstance: propertyPath: m_NormalizedViewPortRect.height value: 0.5 objectReference: {fileID: 0} + - target: {fileID: 5925587397941101150, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: WaitFrames + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 5925587397941101150, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: SetBackBufferResolution + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6456975910273469994, guid: a477888deb65a194793f87af3323de08, type: 3} propertyPath: m_Name diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/301_Motion_Vectors_SpeedTree_Terrain.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/301_Motion_Vectors_SpeedTree_Terrain.unity index 7ad519add91..2db65116677 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/301_Motion_Vectors_SpeedTree_Terrain.unity +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/Assets/Scenes/301_Motion_Vectors_SpeedTree_Terrain.unity @@ -38,12 +38,12 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -230,6 +230,16 @@ PrefabInstance: propertyPath: m_FOVAxisMode value: 0 objectReference: {fileID: 0} + - target: {fileID: 5925587397941101150, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: WaitFrames + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 5925587397941101150, guid: a477888deb65a194793f87af3323de08, + type: 3} + propertyPath: SetBackBufferResolution + value: 1 + objectReference: {fileID: 0} - target: {fileID: 6456975910273469994, guid: a477888deb65a194793f87af3323de08, type: 3} propertyPath: m_Name @@ -531,17 +541,23 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} m_Name: m_EditorClassIdentifier: - m_Version: 3 m_UsePipelineSettings: 1 m_AdditionalLightsShadowResolutionTier: 2 - m_LightLayerMask: 1 - m_RenderingLayers: 1 m_CustomShadowLayers: 0 - m_ShadowLayerMask: 1 - m_ShadowRenderingLayers: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} m_SoftShadowQuality: 0 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 --- !u!108 &1664921857 Light: m_ObjectHideFlags: 0 @@ -604,6 +620,9 @@ Light: m_ForceVisible: 0 m_ShadowRadius: 0 m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 --- !u!4 &1664921858 Transform: m_ObjectHideFlags: 0 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/EditorBuildSettings.asset index b55663149b9..bca2f98e749 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/EditorBuildSettings.asset @@ -29,6 +29,9 @@ EditorBuildSettings: - enabled: 0 path: Assets/Scenes/058_SpeedTree_V8.unity guid: 9227139f6abe79f42bf0defa48491666 + - enabled: 1 + path: Assets/Scenes/040_Shader_TerrainBlend_deferred_RenderingLayers.unity + guid: f6c6afe0840e7464c98b248ee2e77d64 - enabled: 1 path: Assets/Scenes/059_SpeedTree_LODTransition.unity guid: a5c33cf0330b15b4394b7584c84cfdca diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/QualitySettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/QualitySettings.asset index 9d237a11906..14808a7f50b 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/QualitySettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_Terrain/ProjectSettings/QualitySettings.asset @@ -165,6 +165,59 @@ QualitySettings: terrainFadeLength: 5 terrainMaxTrees: 50 excludedTargetPlatforms: [] + - serializedVersion: 4 + name: RenderingLayers + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 4 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 1 + realtimeGICPUUsage: 25 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 4 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: a3e77455f076a6b449705ffb0442f526, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: [] m_TextureMipmapLimitGroupNames: [] m_PerPlatformDefaultQuality: Android: 0 diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/VFXTests/GraphicsTests/CustomHLSL/graphics-buffer.unity b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/VFXTests/GraphicsTests/CustomHLSL/graphics-buffer.unity index 0fb0668d1a2..9dd994a48f6 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/VFXTests/GraphicsTests/CustomHLSL/graphics-buffer.unity +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/AllTests/VFXTests/GraphicsTests/CustomHLSL/graphics-buffer.unity @@ -503,7 +503,7 @@ MonoBehaviour: m_GameObject: {fileID: 812316226} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 20f198885badb1f4fa1e65869995ff82, type: 3} + m_Script: {fileID: 11500000, guid: 24247b9a2530c174390d4b5932332e20, type: 3} m_Name: m_EditorClassIdentifier: ImageComparisonSettings: diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_GraphicsTests.cs b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_GraphicsTests.cs new file mode 100644 index 00000000000..55deff14410 --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_GraphicsTests.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections; +using NUnit.Framework; +using Unity.Testing.VisualEffectGraph.Tests; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.TestTools; +using UnityEngine.TestTools.Graphics; +using UnityEngine.TestTools.Graphics.Platforms; + +namespace UnityEngine.VFX.Test +{ + public class VFXGraphicsTests + { + [IgnoreGraphicsTest("05_MotionVectors", "No reference images provided")] + [IgnoreGraphicsTest("13_Decals", "No reference images provided")] + [IgnoreGraphicsTest("32_ExcludeFromTAA", "No reference images provided")] + [IgnoreGraphicsTest("34_ShaderGraphGeneration", "No reference images provided")] + [IgnoreGraphicsTest("ShadergraphSampleScene", "Unstable in QV")] + [IgnoreGraphicsTest("Shapes", "No reference images provided")] + [IgnoreGraphicsTest("StripsMotionVector", "No reference images provided")] + [IgnoreGraphicsTest("020_PrefabInstanciation", "No reference images provided")] + [IgnoreGraphicsTest("021_Check_Garbage_OutputEvent", "No reference images provided")] + [IgnoreGraphicsTest("021_Check_Garbage_Spawner", "No reference images provided")] + [IgnoreGraphicsTest("022_Repro_Crash_Null_Indexbuffer", "No reference images provided")] + [IgnoreGraphicsTest("023_Check_Garbage_Timeline", "No reference images provided")] + [IgnoreGraphicsTest("026_InstancingGPUevents", "See UUM-88671", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Metal })] + [IgnoreGraphicsTest("36_SkinnedSDF", "See UUM-66822", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.GameCoreXboxOne })] + [IgnoreGraphicsTest("39_SmokeLighting_APV", "Too many bindings when using APVs", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Switch })] + [IgnoreGraphicsTest("102_ShadergraphShadow", "See UUM-96202", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Switch })] + [IgnoreGraphicsTest("Repro_SampleGradient_Branch_Instancing", "Compute shader ([Repro_SampleGradient_Branch_Instancing] [Minimal] Update Particles): Property (Repro_SampleGradient_Branch_Instancing_Buffer) at kernel index (0) is not set")] + [IgnoreGraphicsTest("Empty", "No reference images provided")] + [IgnoreGraphicsTest("Empty_With_Camera", "No reference images provided")] + [IgnoreGraphicsTest("StressTestRuntime_GPUEvent", "No reference images provided")] + [IgnoreGraphicsTest("Timeline_FirstFrame", "No reference images provided")] + + [MockHmdSetup(99)] + [AssetBundleSetup] + [UnityTest, Category("VisualEffect")] + [SceneGraphicsTest("Assets/AllTests/VFXTests/GraphicsTests", "Packages/com.unity.testing.visualeffectgraph/Scenes")] + [Timeout(450 * 1000)] // Increase timeout to handle complex scenes with many shaders and XR variants + public IEnumerator Run( + SceneGraphicsTestCase testCase + ) + { + yield return VisualEffectsGraphGraphicsTests.Run(testCase); + } + +#if ENABLE_VR + [TearDown] + public void TearDownXR() + { + XRGraphicsAutomatedTests.running = false; + } +#endif + } +} diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_GraphicsTests.cs.meta b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_GraphicsTests.cs.meta new file mode 100644 index 00000000000..6d4856962d1 --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_GraphicsTests.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 642e43151a524ae4697d8b3ffcdfac30 \ No newline at end of file diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_PerformanceTests.cs b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_PerformanceTests.cs new file mode 100644 index 00000000000..669f05c1714 --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_PerformanceTests.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections; +using NUnit.Framework; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.TestTools; +using UnityEngine.TestTools.Graphics; +using UnityEngine.TestTools.Graphics.Platforms; +using UnityEngine.TestTools.Graphics.Performance; +using Unity.PerformanceTesting; +using Unity.Testing.VisualEffectGraph.Tests; +using UnityEditor.VFX.PerformanceTest; +using UnityEngine.VFX.PerformanceTest; + +namespace UnityEditor.VFX.PerformanceTest +{ + public class VFXRuntimePerformanceTests : PerformanceTests + { + [IgnoreGraphicsTest("05_MotionVectors", "No reference images provided")] + [IgnoreGraphicsTest("13_Decals", "No reference images provided")] + [IgnoreGraphicsTest("32_ExcludeFromTAA", "No reference images provided")] + [IgnoreGraphicsTest("34_ShaderGraphGeneration", "No reference images provided")] + [IgnoreGraphicsTest("ShadergraphSampleScene", "Unstable in QV")] + [IgnoreGraphicsTest("Shapes", "No reference images provided")] + [IgnoreGraphicsTest("StripsMotionVector", "No reference images provided")] + [IgnoreGraphicsTest("020_PrefabInstanciation", "No reference images provided")] + [IgnoreGraphicsTest("021_Check_Garbage_OutputEvent", "No reference images provided")] + [IgnoreGraphicsTest("021_Check_Garbage_Spawner", "No reference images provided")] + [IgnoreGraphicsTest("022_Repro_Crash_Null_Indexbuffer", "No reference images provided")] + [IgnoreGraphicsTest("023_Check_Garbage_Timeline", "No reference images provided")] + [IgnoreGraphicsTest("026_InstancingGPUevents", "See UUM-88671", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Metal })] + [IgnoreGraphicsTest("36_SkinnedSDF", "See UUM-66822", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.GameCoreXboxOne })] + [IgnoreGraphicsTest("39_SmokeLighting_APV", "Too many bindings when using APVs", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Switch })] + [IgnoreGraphicsTest("102_ShadergraphShadow", "See UUM-96202", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Switch })] + [IgnoreGraphicsTest("Repro_SampleGradient_Branch_Instancing", "Compute shader ([Repro_SampleGradient_Branch_Instancing] [Minimal] Update Particles): Property (Repro_SampleGradient_Branch_Instancing_Buffer) at kernel index (0) is not set")] + [IgnoreGraphicsTest("Empty", "No reference images provided")] + [IgnoreGraphicsTest("Empty_With_Camera", "No reference images provided")] + [IgnoreGraphicsTest("StressTestRuntime_GPUEvent", "No reference images provided")] + [IgnoreGraphicsTest("Timeline_FirstFrame", "No reference images provided")] + + [MockHmdSetup(99)] + [AssetBundleSetup] + [PerformanceTestSettingsSetup] + [Timeout(600 * 1000), Version("1"), Performance, UnityTest] + [VfxPerformanceGraphicsTest("Assets/AllTests/VFXTests/GraphicsTests", "Packages/com.unity.testing.visualeffectgraph/Scenes")] + public IEnumerator Counters( + SceneGraphicsTestCase testCase + ) + { + yield return VisualEffectsGraphRuntimePerformanceTests.Counters(testCase); + } + +#if ENABLE_VR + [TearDown] + public void TearDownXR() + { + XRGraphicsAutomatedTests.running = false; + } +#endif + } + + public class VFXRuntimeMemoryTests : PerformanceTests + { + [IgnoreGraphicsTest("05_MotionVectors", "No reference images provided")] + [IgnoreGraphicsTest("13_Decals", "No reference images provided")] + [IgnoreGraphicsTest("32_ExcludeFromTAA", "No reference images provided")] + [IgnoreGraphicsTest("34_ShaderGraphGeneration", "No reference images provided")] + [IgnoreGraphicsTest("ShadergraphSampleScene", "Unstable in QV")] + [IgnoreGraphicsTest("Shapes", "No reference images provided")] + [IgnoreGraphicsTest("StripsMotionVector", "No reference images provided")] + [IgnoreGraphicsTest("020_PrefabInstanciation", "No reference images provided")] + [IgnoreGraphicsTest("021_Check_Garbage_OutputEvent", "No reference images provided")] + [IgnoreGraphicsTest("021_Check_Garbage_Spawner", "No reference images provided")] + [IgnoreGraphicsTest("022_Repro_Crash_Null_Indexbuffer", "No reference images provided")] + [IgnoreGraphicsTest("023_Check_Garbage_Timeline", "No reference images provided")] + [IgnoreGraphicsTest("026_InstancingGPUevents", "See UUM-88671", graphicsDeviceTypes: new GraphicsDeviceType[] { GraphicsDeviceType.Metal })] + [IgnoreGraphicsTest("36_SkinnedSDF", "See UUM-66822", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.GameCoreXboxOne })] + [IgnoreGraphicsTest("39_SmokeLighting_APV", "Too many bindings when using APVs", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Switch })] + [IgnoreGraphicsTest("102_ShadergraphShadow", "See UUM-96202", runtimePlatforms: new RuntimePlatform[] { RuntimePlatform.Switch })] + [IgnoreGraphicsTest("Repro_SampleGradient_Branch_Instancing", "Compute shader ([Repro_SampleGradient_Branch_Instancing] [Minimal] Update Particles): Property (Repro_SampleGradient_Branch_Instancing_Buffer) at kernel index (0) is not set")] + [IgnoreGraphicsTest("Empty", "No reference images provided")] + [IgnoreGraphicsTest("Empty_With_Camera", "No reference images provided")] + [IgnoreGraphicsTest("StressTestRuntime_GPUEvent", "No reference images provided")] + [IgnoreGraphicsTest("Timeline_FirstFrame", "No reference images provided")] + + [MockHmdSetup(99)] + [AssetBundleSetup] + [PerformanceTestSettingsSetup] + [Timeout(600 * 1000), Version("1"), UnityTest, Performance, Order(0)] + [VfxPerformanceGraphicsTest("Assets/AllTests/VFXTests/GraphicsTests", "Packages/com.unity.testing.visualeffectgraph/Scenes")] + public IEnumerator Memory( + SceneGraphicsTestCase testCase + ) + { + yield return VisualEffectsGraphRuntimeMemoryTests.Memory(testCase); + } + + [PerformanceTestSettingsSetup] + [Version("1"), UnityTest, Performance, Order(1000)] + public IEnumerator RemainingMemoryAfterAllRun() + { + yield return VisualEffectsGraphRuntimeMemoryTests.RemainingMemoryAfterAllRun(); + } + +#if ENABLE_VR + [TearDown] + public void TearDownXR() + { + XRGraphicsAutomatedTests.running = false; + } +#endif + } +} diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_PerformanceTests.cs.meta b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_PerformanceTests.cs.meta new file mode 100644 index 00000000000..ee57e39b40d --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_PerformanceTests.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 384cd8b90b6095a4f82c58293093c5f9 diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_Tests.asmdef b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_Tests.asmdef new file mode 100644 index 00000000000..9bdba13845d --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_Tests.asmdef @@ -0,0 +1,34 @@ +{ + "name": "Tests", + "rootNamespace": "", + "references": [ + "GUID:0acc523941302664db1f4e527237feb3", + "GUID:27619889b8ba8c24980f49ee34dbb44a", + "GUID:1d4ad4ead25f33942b7dcf63e8c0820b", + "GUID:e18141520846dcc44b725b2f74e91229", + "GUID:c081bc530f560634bb5c21d4b323a7f1", + "GUID:df380645f10b7bc4b97d4f5eb6303d95", + "GUID:58fb8540aabd9024f81c6103bf154e26", + "GUID:9d43f152659ed664d87e78590181eb3d", + "GUID:c0dd0d10738d4ad4a9de57c559d0ca1b", + "GUID:295068ed467c2ce4a9cda3833065f650", + "GUID:ae1c84db2f64d43cfb40a3272268e1b5" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [ + "UNITY_INCLUDE_TESTS" + ], + "versionDefines": [ + { + "name": "com.unity.xr.mock-hmd", + "expression": "1.2.0-preview.1", + "define": "USE_XR_MOCK_HMD" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_Tests.asmdef.meta b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_Tests.asmdef.meta new file mode 100644 index 00000000000..9de5d4949ca --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Assets/Tests/HDRP_VisualEffectsGraph_Tests.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5bb89e788804d644fa6e422decea1d34 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Packages/manifest.json b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Packages/manifest.json index fd3f32c9c51..8b3e0112684 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Packages/manifest.json +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/Packages/manifest.json @@ -13,12 +13,13 @@ "com.unity.shadergraph": "file:../../../../../Packages/com.unity.shadergraph", "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework.graphics.performance": "file:../../../Packages/com.unity.test-framework.graphics.performance", + "com.unity.testing.common-graphics": "file:../../../Packages/com.unity.testing.common-graphics", "com.unity.testing.visualeffectgraph": "file:../../../Packages/com.unity.testing.visualeffectgraph", "com.unity.testing.xr": "file:../../../Packages/com.unity.testing.xr", "com.unity.timeline": "1.8.4", "com.unity.ugui": "2.0.0", "com.unity.visualeffectgraph": "file:../../../../../Packages/com.unity.visualeffectgraph", - "com.unity.testframework.graphics": "8.9.1-exp.1", + "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "local.utf.references": "file:../../../Packages/local.utf.references", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/ProjectSettings/EditorBuildSettings.asset index fc37f6b1747..7df81c64de9 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/VisualEffectGraph_HDRP/ProjectSettings/EditorBuildSettings.asset @@ -4,339 +4,6 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 - m_Scenes: - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/000_MultiOutput.unity - guid: 0ecaa798eef075e44a2d6079bb6332cb - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/001_Animator.unity - guid: 5b49c2231e77a894db022592c9c27347 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/002_Gradient.unity - guid: 8290025b324fadc42a105d81f39d5560 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/003_EventAttribute.unity - guid: 83e25bb667f35a04aafd184b5c2da7b3 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/004_Bounds.unity - guid: fc042ee6987609a4b895d96dffef8dff - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/005_PlanarPrimitives.unity - guid: fd7efe8ee4dbe754084c1edb14955dc7 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/006_StripAttributes.unity - guid: 6cf5bcccabd797d4db3c44a0d4ac7389 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/007_MeshSampling.unity - guid: b20a840a0adf929419e19f13139e8fa3 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/008_AssetBundle.unity - guid: 3144ec9758afdcf4482416ecbc5c193c - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/009_MultiCamera.unity - guid: 6d090a604691ff048bb6cd282208c7bd - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/009_MultiCamera_MotionVector.unity - guid: c3aad03df123b0b4fa26a6480fcbe297 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/009_ReadAttributeInSpawner.unity - guid: a6e75e236a616124d9604762b5402ac7 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/009_OutputEvent.unity - guid: fa108e309b0697045b8474742e8d9a0a - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/013_MeshStripping.unity - guid: b87edfbe03e2426478130a56dc42a592 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/014_ScreenSpaceSize.unity - guid: 61def4e00f202154a972b59fa6fb735e - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/014_PositionBlock.unity - guid: 42a36d7781122534f9ce00fa769bdd5c - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/015_GraphicsBuffer.unity - guid: 634b18bfab994114e88a82f04f9c13ed - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/017_MaterialQueueOffset.unity - guid: cda518f246caf814c9de4d03ddee9a1e - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/016_DirectLink.unity - guid: f0e4fb0bb130c8e4294ceeadaf7d23f5 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/015_FixedTime.unity - guid: 30c9fe15b8e87e04f9a524d5c01aa810 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/018_CollisionScaledPrimitive.unity - guid: 237617e9908930149bc849c4ac0b9b8e - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/019_CustomSimulate.unity - guid: ffbf1ce97ab782b43b4ec8f431e5a0ab - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/024_StripIndirectAndSorting.unity - guid: 673d2dc917b35534896164975171c05f - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/025_Flipbook.unity - guid: 5225b8aba587ba546b0315581715cd5b - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/025_ShaderKeywords.unity - guid: e11040b9d33c05d42aa28be2278f0146 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/026_RWBuffer.unity - guid: 6ae9549c79226fb458d7fec09ac258df - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/027_RWTexture.unity - guid: 3c54816ebc5cdcc448210af3594252cb - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/101_Exposure.unity - guid: 4125f3630764c6a43a752a73908fa0ee - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Shadergraph/Shadow/102_ShadergraphShadow.unity - guid: b5fab92e71d9dd747b87a111d703bd95 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/06_LineOutput.unity - guid: ad1aa14fb546a3744b989a07c0415a94 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/07_UnityLogo.unity - guid: e9cdfe0298ff8db4989c389251f87663 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/08_Shadows.unity - guid: 9841d2a225946a540a9a45cebafc019b - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/09_AttributeMaps.unity - guid: 82e42e996bcf5c44ca4897841e3c4f52 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/10_SortPriority.unity - guid: 5851a3c3acfab9c4ca6ee81e76ae49b3 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/11_Space.unity - guid: 8f02c61a617e0b142bad3216ae358921 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/11_SpaceBis.unity - guid: efe91acbbd0143e448b4fb64ede27d45 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/12_LocalTransformations.unity - guid: 0dc03e6162787ab44850cd91de701789 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/14_DecalsFlipBook.unity - guid: 09e42fbbdc517b240bfa5ca6243ee42a - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/15_CubeAndMesh.unity - guid: 2123961e2be41644dae0d405fae040af - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/16_CullingMode.unity - guid: ea8e42e55d3d6af4aa67616140b7d0db - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/16_MeshParticles.unity - guid: a232e64f140510d41bb722d0cdd309f9 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/17_GPUEvent_Simple.unity - guid: 4381d526452174f4fa8430fbc51c28e4 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/17_SoftParticles.unity - guid: 7cee47a7259f65d40ac60c5954c583cd - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/19_Random.unity - guid: 8eafa797342cff340a77c1ab544633a8 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/20_SpawnerChainingAndLoop.unity - guid: e0c50bd7286de7b4b9c97f3f962b0933 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/21_DepthModules.unity - guid: 810f6e5fbd289164eb3fe0ba8eb32588 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/22_Prewarm.unity - guid: fce7db23c3ae2184aaff7992d0bcdbee - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/23_ParameterBinders.unity - guid: e0138a5b43c27d648a6245b159cdb358 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/23_InvertTRSMatrix.unity - guid: 097d99c9737f88f4882c658cbe58367b - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/24_MotionVector.unity - guid: b7bd5c3eedf5fbe429c82ce9acaa135a - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP.unity - guid: 27665c3c3e33fc2469ff1206248887a0 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP_DebugAlbedo.unity - guid: cbac231113b97aa4f97a75f7559756a8 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP_DebugAlpha.unity - guid: dc376a0042ad0df45921ff77ada5c5f5 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP_DebugAmbientOcclusion.unity - guid: bd8382e5dde974549949f54522960d1e - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP_DebugMetal.unity - guid: 8c3f5757c2832b246bd42b9042159adb - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP_DebugNormal.unity - guid: 74cfc25a6ba0a2e48a6e865b7709a436 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP_DebugSmoothness.unity - guid: 08db061bd249cf2479ce278a8a5de9e0 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP_DebugSpecular.unity - guid: 06b4f10c130ec1a41964b6ecccc099c0 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRP_VolumetricOutput.unity - guid: 38e94aa06101372438fb6ef4b77732fe - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Collision.unity - guid: e51caecb20798cf40ba0f8b8759d3e1b - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/ConformAndSDF.unity - guid: 637544c4a1360da42a28676609233cd8 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/RenderStates.unity - guid: 9c3bfb9910ba6154a82704376c436e16 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/ParticleCountLimit.unity - guid: 83f800ebc86ceb049a76082150c4ebec - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRPFog.unity - guid: 0379b72b85eee8045afdaec3b1362957 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/HDRPFogVolumetric.unity - guid: 2744a8931e888734bae7f74874fefdf5 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Timeline.unity - guid: 9949ad9004662574ca9d59c2e372bdef - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Timeline_Scrubbing.unity - guid: 9bae8080df6441f4082177201d911b32 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/SimpleLit.unity - guid: 61f447f894ffdd741aa7a64ced0311cf - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/AngularVelocity.unity - guid: da2063a2a525cb849a6fbdb716cc5b43 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Noise.unity - guid: 2ede8f56c35c42741a3d56ef5355b552 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/DistortionTest.unity - guid: ba0c0a315741c3146b3685273bd5613a - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/FlipbookMotionBlend.unity - guid: 775caa2bff1db474385c8c3f31dd68be - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/GradientMapped.unity - guid: 56d69bce6c4697147823f3b5b3acd8ea - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Jumping Cubes/Jumping Cubes.unity - guid: bd230f4e3e8da61488a3ef08fd491db0 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/SubgraphEventTransmission/SubgraphEventTransmission.unity - guid: b6ef817208636da4bb6878ac1e08ffd8 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/PositionDepthOperator.unity - guid: 5c9aadab8d20ed14b827e43d12fc0b7c - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/ParticleRibbonLit.unity - guid: c931df4a44bfe6442a638434ebfa4b83 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/ParticleStripUnlit.unity - guid: 7f721cad21da2c24aacb73377ebec462 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Shadergraph/Unlit/ShadergraphUnlit.unity - guid: 02fa6d4e7132ea3409ec38fe85c1dc50 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Shadergraph/Lit/ShadergraphLit.unity - guid: 44dfb01e7c5915a4ca6396f344dbc22b - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Shadergraph/Shadow/102_ShadergraphShadow.unity - guid: b5fab92e71d9dd747b87a111d703bd95 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Shadergraph/Lit/ShadergraphShadowLit.unity - guid: 2dbb17953af83c24bacf6b650bd0e432 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Shadergraph/SampleScene/ShadergraphSampleScene.unity - guid: c728f3824d066e24a8eba25cde029b41 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/SubgraphContextWithSubgraphBlock/SubgraphContextWithSubgraphBlock.unity - guid: c0966123a38e92644b1aa4482c8950c5 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/SubgraphContexts.unity - guid: df4a078e6e8404b4d953f8cdc87c0aa8 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/25_PerParticleLOD.unity - guid: 1110c31d91331ec40bf5774016d2a4d8 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/27_SampleSDF.unity - guid: 752aca8c0a90b8241adb9c287bc26b55 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/28_FlipBookArray.unity - guid: 69ce8d3ad279c734cbea097f07ebb1fc - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/28_CameraProject.unity - guid: c479ba3b3ad2ba64dbfc1729ed0a7590 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/30_PositionOnSDF.unity - guid: 04855e9751809c7488746e5e54ae0cfa - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/26_NonUnifomScale.unity - guid: 6500f9adfe104274fb2b90091786a2d4 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/31_CameraBuffer.unity - guid: 022b924fd58e94e41bcc5a24218370fe - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/33_LightProbe.unity - guid: d3f8710940444f14c9f69cf044a9b0ef - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/35_ShaderGraphGenerationFTP.unity - guid: da06c943b1328a748a471abe815ea9f6 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/36_SDFBaker/Scene/36_SkinnedSDF.unity - guid: ebaa785ec5cfd50448e6b1fca17c280f - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/37_DecalsHDRP/37_DecalsHDRP.unity - guid: b1a2d5cb5366cc14c84167107a4c11c9 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/38_SortingKeys/38_SortingKeys.unity - guid: 6623485c0c7102b40a316709d58099dc - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/39_SmokeLighting/39_SmokeLighting.unity - guid: 9a3f325e5c930ca4f8a9c0645aeb6ccb - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/39_SmokeLighting/39_SmokeLighting_APV.unity - guid: 46f67c8080a056c4390b5aff609be990 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/38_ActivationSlots.unity - guid: 8aced075b2dfd7c45ac17a7a25368937 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Instancing/Instancing512.unity - guid: 73939114e75ef4f4f8e9ffb3df23b104 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/Instancing/InstancingBatch.unity - guid: 6226140a2b65b294fbe0a07b323ab6c0 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/39_InstancedStrips.unity - guid: 9336ee42eb6ff9d4087409aac173d761 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/40_InstancingSplitCompute.unity - guid: 31f5736c7604f934882999545e49831c - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/41_AfterPostProcess.unity - guid: 45ab75100e0c9524b96d75550ccb469f - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/42_CollisionEvents.unity - guid: fb106688165d26647926932af7131b83 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/CustomHLSL/texture2dArray.unity - guid: 5f8d97f4c4e78dc4bb46d4b7a5ac6c4d - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/CustomHLSL/graphics-buffer.unity - guid: b1c9e549d78ac594981d71e565dd46c3 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/43_OddNegativeScale/43_OddNegativeScale.unity - guid: 1b0e8bd450fc8f349b6bbd4f9230b3d9 - - enabled: 1 - path: Assets/AllTests/VFXTests/GraphicsTests/44_SDFBakerSlices/44_SDFBakerSlices.unity - guid: a19f61b8cadc87a4ab6eb52ee1b093e7 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/026_InstancingGPUevents.unity - guid: 7afe3cb0155a3af4aaa2a2f009d5a9f2 + m_Scenes: [] m_configObjects: {} m_UseUCBPForAssetBundles: 0 diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/40_InstancingSplitCompute.unity b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/40_InstancingSplitCompute.unity index 766ea6cde70..79f4d838b22 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/40_InstancingSplitCompute.unity +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/40_InstancingSplitCompute.unity @@ -42,7 +42,8 @@ RenderSettings: --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 - serializedVersion: 12 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 m_GISettings: serializedVersion: 2 m_BounceScale: 1 @@ -238,6 +239,59 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &327876044 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 327876046} + - component: {fileID: 327876045} + m_Layer: 0 + m_Name: SplitGroupStressTest + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &327876045 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 327876044} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b2fe12112e8e294499e4be00cf2c1a1, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::SplitGroupStressTest + Textures: + - {fileID: 2800000, guid: 276d9e395ae18fe40a9b4988549f2349, type: 3} + - {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0} + Meshes: + - {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} + - {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + - {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} + MaxInstanceCount: 1000 + InstancePerFrame: 100 +--- !u!4 &327876046 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 327876044} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.00746, y: 2.04013, z: 0.93717} + 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 &348579748 GameObject: m_ObjectHideFlags: 0 @@ -1180,126 +1234,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} m_Name: m_EditorClassIdentifier: - clearColorMode: 0 - backgroundColorHDR: {r: 0.025, g: 0.07, b: 0.19, a: 0} - clearDepth: 1 - volumeLayerMask: - serializedVersion: 2 - m_Bits: 1 - volumeAnchorOverride: {fileID: 0} - antialiasing: 0 - SMAAQuality: 2 - dithering: 0 - stopNaNs: 0 - taaSharpenStrength: 0.5 - TAAQuality: 1 - taaSharpenMode: 0 - taaRingingReduction: 0 - taaHistorySharpening: 0.35 - taaAntiFlicker: 0.5 - taaMotionVectorRejection: 0 - taaAntiHistoryRinging: 0 - taaBaseBlendFactor: 0.875 - taaJitterScale: 1 - physicalParameters: - m_Iso: 200 - m_ShutterSpeed: 0.005 - m_Aperture: 16 - m_FocusDistance: 10 - m_BladeCount: 5 - m_Curvature: {x: 2, y: 11} - m_BarrelClipping: 0.25 - m_Anamorphism: 0 - flipYMode: 0 - xrRendering: 1 - fullscreenPassthrough: 0 - allowDynamicResolution: 0 - customRenderingSettings: 0 - invertFaceCulling: 0 - probeLayerMask: - serializedVersion: 2 - m_Bits: 4294967295 - hasPersistentHistory: 0 - screenSizeOverride: {x: 0, y: 0, z: 0, w: 0} - screenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} - allowDeepLearningSuperSampling: 1 - deepLearningSuperSamplingUseCustomQualitySettings: 0 - deepLearningSuperSamplingQuality: 0 - deepLearningSuperSamplingUseCustomAttributes: 0 - deepLearningSuperSamplingUseOptimalSettings: 1 - deepLearningSuperSamplingSharpening: 0 - fsrOverrideSharpness: 0 - fsrSharpness: 0.92 - exposureTarget: {fileID: 0} - materialMipBias: 0 - m_RenderingPathCustomFrameSettings: - bitDatas: - data1: 1266566494682957 - data2: 13799030890350739480 - lodBias: 1 - lodBiasMode: 0 - lodBiasQualityLevel: 0 - maximumLODLevel: 0 - maximumLODLevelMode: 0 - maximumLODLevelQualityLevel: 0 - sssQualityMode: 0 - sssQualityLevel: 0 - sssCustomSampleBudget: 20 - sssCustomDownsampleSteps: 0 - msaaMode: 1 - materialQuality: 0 - renderingPathCustomFrameSettingsOverrideMask: - mask: - data1: 0 - data2: 0 - defaultFrameSettings: 0 - m_Version: 9 - m_ObsoleteRenderingPath: 0 - m_ObsoleteFrameSettings: - overrides: 0 - enableShadow: 0 - enableContactShadows: 0 - enableShadowMask: 0 - enableSSR: 0 - enableSSAO: 0 - enableSubsurfaceScattering: 0 - enableTransmission: 0 - enableAtmosphericScattering: 0 - enableVolumetrics: 0 - enableReprojectionForVolumetrics: 0 - enableLightLayers: 0 - enableExposureControl: 1 - diffuseGlobalDimmer: 0 - specularGlobalDimmer: 0 - shaderLitMode: 0 - enableDepthPrepassWithDeferredRendering: 0 - enableTransparentPrepass: 0 - enableMotionVectors: 0 - enableObjectMotionVectors: 0 - enableDecals: 0 - enableRoughRefraction: 0 - enableTransparentPostpass: 0 - enableDistortion: 0 - enablePostprocess: 0 - enableOpaqueObjects: 0 - enableTransparentObjects: 0 - enableRealtimePlanarReflection: 0 - enableMSAA: 0 - enableAsyncCompute: 0 - runLightListAsync: 0 - runSSRAsync: 0 - runSSAOAsync: 0 - runContactShadowsAsync: 0 - runVolumeVoxelizationAsync: 0 - lightLoopSettings: - overrides: 0 - enableDeferredTileAndCluster: 0 - enableComputeLightEvaluation: 0 - enableComputeLightVariants: 0 - enableComputeMaterialVariants: 0 - enableFptlForForwardOpaque: 0 - enableBigTilePrepass: 0 - isFptlEnabled: 0 --- !u!1 &1248642482 GameObject: m_ObjectHideFlags: 0 @@ -1907,7 +1841,7 @@ LightingSettings: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: Settings.lighting - serializedVersion: 8 + serializedVersion: 9 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 0 m_RealtimeEnvironmentLighting: 1 @@ -2206,6 +2140,7 @@ SceneRoots: m_ObjectHideFlags: 0 m_Roots: - {fileID: 1247116095} + - {fileID: 327876046} - {fileID: 2105409545} - {fileID: 176540214} - {fileID: 869646327} diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/SplitGroupStressTest.cs b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/SplitGroupStressTest.cs new file mode 100644 index 00000000000..d8ba1a15e58 --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/SplitGroupStressTest.cs @@ -0,0 +1,66 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Serialization; +using UnityEngine.VFX; + +public class SplitGroupStressTest : MonoBehaviour +{ + + public List Textures; + public List Meshes; + public int MaxInstanceCount = 100; + public int InstancePerFrame = 30; + + // Start is called once before the first execution of Update after the MonoBehaviour is created + private List m_OriginalVisualEffects; + private List m_VisualEffects; + private int m_Index; + + int kTextureId = Shader.PropertyToID("Texture"); + int kMeshId = Shader.PropertyToID("Mesh"); + + private bool m_DeletionMode = false; + + void Start() + { + m_OriginalVisualEffects = new List(FindObjectsByType(FindObjectsSortMode.None)); + m_VisualEffects = new List(MaxInstanceCount); + } + + // Update is called once per frame + void Update() + { + if (!m_DeletionMode) + { + if (m_VisualEffects.Count < MaxInstanceCount) + { + for (int i = 0; i < InstancePerFrame; i++) + { + var refVfx = m_OriginalVisualEffects[m_Index % m_OriginalVisualEffects.Count]; + var newPos = refVfx.gameObject.transform.localPosition + Vector3.left; + var vfx = Instantiate(refVfx, newPos, Quaternion.identity); + vfx.SetTexture(kTextureId, Textures[m_Index % Textures.Count]); + vfx.SetMesh(kMeshId, Meshes[m_Index % Meshes.Count]); + m_VisualEffects.Add(vfx); + m_Index++; + } + } + else + { + m_DeletionMode = true; + } + } + else + { + for (int i = 0; i < InstancePerFrame; i++) + { + if (m_VisualEffects.Count > 0) + { + Destroy(m_VisualEffects[m_VisualEffects.Count - 1].gameObject); + m_VisualEffects.RemoveAt(m_VisualEffects.Count - 1); + } + } + } + + } +} diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/SplitGroupStressTest.cs.meta b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/SplitGroupStressTest.cs.meta new file mode 100644 index 00000000000..b3bf4f70238 --- /dev/null +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Assets/GraphicsTests/Instancing/SplitGroupStressTest.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9b2fe12112e8e294499e4be00cf2c1a1 \ No newline at end of file diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Packages/manifest.json b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Packages/manifest.json index dd78e71bf14..5663844abb4 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_URP/Packages/manifest.json +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/Packages/manifest.json @@ -13,11 +13,12 @@ "com.unity.rendering.light-transport": "file:../../../../../Packages/com.unity.rendering.light-transport", "com.unity.test-framework.graphics.performance": "file:../../../Packages/com.unity.test-framework.graphics.performance", "com.unity.testing.visualeffectgraph": "file:../../../Packages/com.unity.testing.visualeffectgraph", + "com.unity.testing.common-graphics": "file:../../../Packages/com.unity.testing.common-graphics", "com.unity.testing.xr": "file:../../../Packages/com.unity.testing.xr", "com.unity.ugui": "2.0.0", "com.unity.visualeffectgraph": "file:../../../../../Packages/com.unity.visualeffectgraph", "com.unity.xr.legacyinputhelpers": "2.1.2", - "com.unity.testframework.graphics": "8.9.1-exp.1", + "com.unity.testframework.graphics": "file:../../../Packages/com.unity.test-framework.graphics", "local.utf.references": "file:../../../Packages/local.utf.references", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/VisualEffectGraph_URP/ProjectSettings/EditorBuildSettings.asset index 667ce1ed24a..7df81c64de9 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_URP/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/ProjectSettings/EditorBuildSettings.asset @@ -4,168 +4,6 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 - m_Scenes: - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/000_MultiOutput.unity - guid: 0ecaa798eef075e44a2d6079bb6332cb - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/001_Animator.unity - guid: 5b49c2231e77a894db022592c9c27347 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/002_Gradient.unity - guid: 8290025b324fadc42a105d81f39d5560 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/003_EventAttribute.unity - guid: 83e25bb667f35a04aafd184b5c2da7b3 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/004_Bounds.unity - guid: fc042ee6987609a4b895d96dffef8dff - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/005_PlanarPrimitives.unity - guid: fd7efe8ee4dbe754084c1edb14955dc7 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/006_StripAttributes.unity - guid: 6cf5bcccabd797d4db3c44a0d4ac7389 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/007_MeshSampling.unity - guid: b20a840a0adf929419e19f13139e8fa3 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/008_AssetBundle.unity - guid: 3144ec9758afdcf4482416ecbc5c193c - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/009_MultiCamera.unity - guid: 6d090a604691ff048bb6cd282208c7bd - - enabled: 1 - path: Assets/GraphicsTests/009_MultiCamera_MotionVector.unity - guid: e454a4c443ff76a40bc2ae733ef1ff71 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/009_ReadAttributeInSpawner.unity - guid: a6e75e236a616124d9604762b5402ac7 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/009_OutputEvent.unity - guid: fa108e309b0697045b8474742e8d9a0a - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/013_MeshStripping.unity - guid: b87edfbe03e2426478130a56dc42a592 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/014_ScreenSpaceSize.unity - guid: 61def4e00f202154a972b59fa6fb735e - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/014_PositionBlock.unity - guid: 42a36d7781122534f9ce00fa769bdd5c - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/015_GraphicsBuffer.unity - guid: 634b18bfab994114e88a82f04f9c13ed - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/017_MaterialQueueOffset.unity - guid: cda518f246caf814c9de4d03ddee9a1e - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/016_DirectLink.unity - guid: f0e4fb0bb130c8e4294ceeadaf7d23f5 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/015_FixedTime.unity - guid: 30c9fe15b8e87e04f9a524d5c01aa810 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/018_CollisionScaledPrimitive.unity - guid: 237617e9908930149bc849c4ac0b9b8e - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/019_CustomSimulate.unity - guid: ffbf1ce97ab782b43b4ec8f431e5a0ab - - enabled: 0 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/020_PrefabInstanciation.unity - guid: 4fad57eaceb460845ade4ee59dd02745 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/024_StripIndirectAndSorting.unity - guid: 673d2dc917b35534896164975171c05f - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/025_Flipbook.unity - guid: 5225b8aba587ba546b0315581715cd5b - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/025_ShaderKeywords.unity - guid: e11040b9d33c05d42aa28be2278f0146 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/026_RWBuffer.unity - guid: 6ae9549c79226fb458d7fec09ac258df - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/026_InstancingGPUevents.unity - guid: 7afe3cb0155a3af4aaa2a2f009d5a9f2 - - enabled: 1 - path: Packages/com.unity.testing.visualeffectgraph/Scenes/027_RWTexture.unity - guid: 3c54816ebc5cdcc448210af3594252cb - - enabled: 1 - path: Assets/GraphicsTests/100_Fog.unity - guid: b288e123b6536de40bc86452b3811b20 - - enabled: 1 - path: Assets/GraphicsTests/Shadergraph/SampleScene/101_ShadergraphSampleScene.unity - guid: dfaa61332743bf64a9a813e7bcfad2d6 - - enabled: 1 - path: Assets/GraphicsTests/Shadergraph/Shadow/102_ShadergraphShadow.unity - guid: b5fab92e71d9dd747b87a111d703bd95 - - enabled: 1 - path: Assets/GraphicsTests/101_SampleReflectionProbe.unity - guid: 5deffb7e83065d64198f1662d741f9ef - - enabled: 1 - path: Assets/GraphicsTests/102_RenderDepth.unity - guid: bbb228de8c5a7dd4ba58363e4b3c8669 - - enabled: 1 - path: Assets/GraphicsTests/102_RenderDepthNormal_Depth.unity - guid: b63a7efdfb461454f8a63f934091833f - - enabled: 1 - path: Assets/GraphicsTests/102_RenderDepthNormal_Normal.unity - guid: 86561bfedf46acd45b7346eebb217b71 - - enabled: 1 - path: Assets/GraphicsTests/102_StressTestDepthAccurancy.unity - guid: 2d2cf383989075d4797c843aa514d8d1 - - enabled: 1 - path: Assets/GraphicsTests/103_Renderer2D.unity - guid: 956dddffc117fe241a0ef90b1b12ec68 - - enabled: 1 - path: Assets/GraphicsTests/103_LitForward.unity - guid: 9c890c006fb7ff945be7b7cd51e79ee4 - - enabled: 1 - path: Assets/GraphicsTests/103_LitDeferred.unity - guid: b0e7da6ba3b491640864dda475909639 - - enabled: 1 - path: Assets/GraphicsTests/103_LitDeferredAccurate.unity - guid: b5d2bc0df9db8664aadc9b8fa26308fb - - enabled: 1 - path: Assets/GraphicsTests/103_LitForwardPlus.unity - guid: d1fd54c5e4d60f54da7b2e2c82b49d1c - - enabled: 1 - path: Assets/GraphicsTests/103_LitDeferredPlus.unity - guid: 14d6eca1d4922104d87ba7d18dd2854b - - enabled: 1 - path: Assets/GraphicsTests/104_ShaderGraphGenerationFTP.unity - guid: febb29da98ad14a4d89b7679f8e53848 - - enabled: 1 - path: Assets/GraphicsTests/105_MotionVectors.unity - guid: 5de9ddd5ce5b150408a504798854e72e - - enabled: 1 - path: Assets/GraphicsTests/106_SampleSceneColorAndDepth.unity - guid: 001278b81ccf8004e96455183da29bc9 - - enabled: 1 - path: Assets/GraphicsTests/106_SampleSceneColorAndDepth_Custom.unity - guid: c7d2587d0a33fe54fa13d806367dad0e - - enabled: 1 - path: Assets/GraphicsTests/Instancing/Instancing512.unity - guid: 73939114e75ef4f4f8e9ffb3df23b104 - - enabled: 1 - path: Assets/GraphicsTests/Instancing/InstancingBatch.unity - guid: 6226140a2b65b294fbe0a07b323ab6c0 - - enabled: 1 - path: Assets/GraphicsTests/106_URPDecals/106_URPDecals.unity - guid: 7e1dad271e7c87e43beed7912ced2d03 - - enabled: 1 - path: Assets/GraphicsTests/39_SmokeLighting/39_SmokeLighting.unity - guid: 9a3f325e5c930ca4f8a9c0645aeb6ccb - - enabled: 1 - path: Assets/GraphicsTests/39_SmokeLighting/39_SmokeLighting_APV.unity - guid: 5a0d193bee9575545950651f66b8c2c1 - - enabled: 1 - path: Assets/GraphicsTests/Instancing/40_InstancingSplitCompute.unity - guid: 3cad14ca912fac94c86c2c740e932fc2 - - enabled: 1 - path: Assets/GraphicsTests/43_OddNegativeScale/43_OddNegativeScale.unity - guid: 1b0e8bd450fc8f349b6bbd4f9230b3d9 + m_Scenes: [] m_configObjects: {} m_UseUCBPForAssetBundles: 0 diff --git a/Tests/SRPTests/Projects/VisualEffectGraph_URP/ProjectSettings/ProjectSettings.asset b/Tests/SRPTests/Projects/VisualEffectGraph_URP/ProjectSettings/ProjectSettings.asset index 34506c0feaf..bdd583520ee 100644 --- a/Tests/SRPTests/Projects/VisualEffectGraph_URP/ProjectSettings/ProjectSettings.asset +++ b/Tests/SRPTests/Projects/VisualEffectGraph_URP/ProjectSettings/ProjectSettings.asset @@ -597,7 +597,25 @@ PlayerSettings: scriptingBackend: Standalone: 0 il2cppCompilerConfiguration: {} - managedStrippingLevel: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: + Android: 4 + EmbeddedLinux: 4 + GameCoreScarlett: 4 + GameCoreXboxOne: 4 + Kepler: 4 + Nintendo Switch: 4 + PS4: 4 + PS5: 4 + QNX: 4 + ReservedCFE: 4 + VisionOS: 4 + WebGL: 4 + Windows Store Apps: 4 + XboxOne: 4 + iPhone: 4 + tvOS: 4 incrementalIl2cppBuild: {} allowUnsafeCode: 0 useDeterministicCompilation: 1