From 68d7a8555288335c459c57cdb29ea1692371bf4b Mon Sep 17 00:00:00 2001 From: Mark Green Date: Wed, 22 Jan 2025 11:56:50 +0000 Subject: [PATCH 01/17] DOCG-6505 Remove backported blit / Scriptable Renderer Feature pages from 2021.3 --- .../Documentation~/TableOfContents.md | 21 +- .../Documentation~/customizing-urp.md | 10 +- .../custom-rendering-pass-workflow-in-urp.md | 4 +- .../custom-rendering-passes.md | 10 - .../how-to-fullscreen-blit-in-xr-spi.md | 2 +- .../intro-to-scriptable-render-passes.md | 1 - .../scriptable-render-passes.md | 4 +- ...ass-using-a-scriptable-renderer-feature.md | 161 ---------- .../scriptable-renderer-feature-reference.md | 35 --- .../scriptable-renderer-features-landing.md | 1 - .../write-a-scriptable-render-pass.md | 288 ------------------ 11 files changed, 20 insertions(+), 517 deletions(-) delete mode 100644 Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/custom-rendering-passes.md delete mode 100644 Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/inject-a-pass-using-a-scriptable-renderer-feature.md delete mode 100644 Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md delete mode 100644 Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/write-a-scriptable-render-pass.md diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md b/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md index 6dedf2cfcc0..91ddc705655 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md @@ -123,18 +123,15 @@ * [Use shadows in a custom URP shader](use-built-in-shader-methods-shadows.md) * [URP ShaderLab Pass tags](urp-shaders/urp-shaderlab-pass-tags.md) * [Custom rendering and post-processing](customizing-urp.md) - * [Custom render passes](renderer-features/custom-rendering-passes.md) - * [Custom render pass workflow in URP](renderer-features/custom-rendering-pass-workflow-in-urp.md) - * [Scriptable Render Passes](renderer-features/scriptable-render-passes.md) - * [Scriptable Render Passes](renderer-features/intro-to-scriptable-render-passes.md) - * [Write a Scriptable Render Pass](renderer-features/write-a-scriptable-render-pass.md) - * [Inject a pass via scripting](customize/inject-render-pass-via-script.md) - * [Scriptable Renderer Features](renderer-features/scriptable-renderer-features/scriptable-renderer-features-landing.md) - * [Introduction to Scriptable Renderer Features](renderer-features/scriptable-renderer-features/intro-to-scriptable-renderer-features.md) - * [Inject a custom render pass using a Scriptable Renderer Feature](renderer-features/scriptable-renderer-features/inject-a-pass-using-a-scriptable-renderer-feature.md) - * [Apply a Scriptable Renderer Feature to a specific camera type](renderer-features/scriptable-renderer-features/apply-scriptable-feature-to-specific-camera.md) - * [Example of a complete Scriptable Renderer Feature](renderer-features/create-custom-renderer-feature.md) - * [Scriptable Renderer Feature and Scriptable Render Pass API reference](renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md) + * [Custom render pass workflow in URP](renderer-features/custom-rendering-pass-workflow-in-urp.md) + * [Scriptable Render Passes](renderer-features/scriptable-render-passes.md) + * [Introduction to Scriptable Render Passes](renderer-features/intro-to-scriptable-render-passes.md) + * [Inject a pass via scripting](customize/inject-render-pass-via-script.md) + * [Scriptable Renderer Features](renderer-features/scriptable-renderer-features/scriptable-renderer-features-landing.md) + * [Introduction to Scriptable Renderer Features](renderer-features/scriptable-renderer-features/intro-to-scriptable-renderer-features.md) + * [Apply a Scriptable Renderer Feature to a specific camera type](renderer-features/scriptable-renderer-features/apply-scriptable-feature-to-specific-camera.md) + * [Example of a complete Scriptable Renderer Feature](renderer-features/create-custom-renderer-feature.md) + * [Perform a full screen blit in Single Pass Instanced rendering in XR](renderer-features/how-to-fullscreen-blit-in-xr-spi.md) * [Optimization](urp-optimization.md) * [Rendering Debugger](features/rendering-debugger.md) * [Optimize for better performance](optimize-for-better-performance.md) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/customizing-urp.md b/Packages/com.unity.render-pipelines.universal/Documentation~/customizing-urp.md index b2905b4fbd8..19b6aae690b 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/customizing-urp.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/customizing-urp.md @@ -1,11 +1,13 @@ # Custom rendering and post-processing -Customize and extend the rendering process in the Universal Render Pipeline (URP). URP uses Renderer Features to implement certain effects. URP includes a selection of pre-built Renderer Features and the ability to create customized Renderer Features known as Scriptable Renderer Features. +Create a custom render pass in a C# script and inject it into the Universal Render Pipeline (URP) frame rendering loop. -| Page | Description | +|Page|Description| |-|-| -|[Custom render passes](renderer-features/custom-rendering-passes.md)|Create a custom render pass in a C# script and inject it into the URP frame rendering loop.| -|[Scriptable Renderer Feature and Scriptable Render Pass API reference](renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md)|Common methods you can use to write Scriptable Renderer Passes and Scriptable Renderer Features.| +|[Custom render pass workflow in URP](renderer-features/custom-rendering-pass-workflow-in-urp.md)|Add and inject a custom render pass to change how URP renders a scene or the objects within a scene.| +|[Scriptable Render Passes](renderer-features/scriptable-render-passes.md)|Use the Scriptable Render Pass API to create a custom render pass.| +|[Scriptable Renderer Features](renderer-features/scriptable-renderer-features/scriptable-renderer-features-landing.md)|Use the Scriptable Renderer Feature API to inject a custom render pass into a URP renderer.| +|[Perform a full screen blit in Single Pass Instanced rendering in XR](renderer-features/how-to-fullscreen-blit-in-xr-spi.md) | An example of a custom pass, a custom shader, and a Scriptable Renderer Feature that tint the scene green. | ## Additional resources diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/custom-rendering-pass-workflow-in-urp.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/custom-rendering-pass-workflow-in-urp.md index 8544648fd69..a34b7546063 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/custom-rendering-pass-workflow-in-urp.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/custom-rendering-pass-workflow-in-urp.md @@ -11,7 +11,7 @@ To add a custom render pass, complete the following tasks: Use the `ScriptableRenderPass` to create the code for a custom render pass. -Refer to [Write a Scriptable Render Pass](write-a-scriptable-render-pass.md) for more information. +Refer to [Perform a full screen blit in Single Pass Instanced rendering in XR](how-to-fullscreen-blit-in-xr-spi.md) for an example. ## Inject the custom render pass using the RenderPipelineManager API @@ -29,4 +29,4 @@ To create a Scriptable Renderer Feature, you do the following: * Add the Scriptable Renderer Feature to the Universal Renderer asset, so it's included in the rendering pipeline. * Enqueue your custom render pass in the Scriptable Renderer Feature. -Refer to [Inject a pass using a Scriptable Renderer Feature](scriptable-renderer-features/inject-a-pass-using-a-scriptable-renderer-feature.md) for more information. +For more information, refer to [Perform a full screen blit in Single Pass Instanced rendering in XR](how-to-fullscreen-blit-in-xr-spi.md). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/custom-rendering-passes.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/custom-rendering-passes.md deleted file mode 100644 index fba130418a3..00000000000 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/custom-rendering-passes.md +++ /dev/null @@ -1,10 +0,0 @@ -# Custom render passes - -Create a custom render pass in a C# script and inject it into the Universal Render Pipeline (URP) frame rendering loop. - -|Page|Description| -|-|-| -|[Custom render pass workflow in URP](custom-rendering-pass-workflow-in-urp.md)|Add and inject a custom render pass to change how URP renders a scene or the objects within a scene.| -|[Scriptable Render Passes](scriptable-render-passes.md)|Use the Scriptable Render Pass API to create a custom render pass.| -|[Scriptable Renderer Features](scriptable-renderer-features/scriptable-renderer-features-landing.md)|Use the Scriptable Renderer Feature API to inject a custom render pass into a URP renderer.| - diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/how-to-fullscreen-blit-in-xr-spi.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/how-to-fullscreen-blit-in-xr-spi.md index d198911a4f6..d1422890ae7 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/how-to-fullscreen-blit-in-xr-spi.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/how-to-fullscreen-blit-in-xr-spi.md @@ -1,4 +1,4 @@ -# How to perform a full screen blit in Single Pass Instanced rendering in XR +# Perform a full screen blit in Single Pass Instanced rendering in XR The example on this page describes how to create a custom Renderer Feature that performs a full screen blit in Single Pass Instanced rendering in XR. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/intro-to-scriptable-render-passes.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/intro-to-scriptable-render-passes.md index 59cc3fbdd66..a5a9d3f72c7 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/intro-to-scriptable-render-passes.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/intro-to-scriptable-render-passes.md @@ -34,5 +34,4 @@ For example, if you have two Cameras and you add the Scriptable Render Pass in t ## Additional resources * [How to create a Custom Renderer Feature](create-custom-renderer-feature.md) -* [Scriptable Renderer Feature Reference](scriptable-renderer-features/scriptable-renderer-feature-reference.md) * [How to inject a Custom Render Pass via scripting](../customize/custom-pass-injection-points.md) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-render-passes.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-render-passes.md index cc38e8984da..779d8925208 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-render-passes.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-render-passes.md @@ -5,9 +5,9 @@ Use the `ScriptableRenderPass` API to write a custom render pass. You can then i |Page|Description| |-|-| |[Introduction to Scriptable Render Passes](intro-to-scriptable-render-passes.md)|What a Scriptable Render Pass is, and how you can inject it into a scene.| -|[Write a Scriptable Render Pass](write-a-scriptable-render-pass.md)|An example of a `ScriptableRenderPass` instance that uses `Blit` to create a red tint effect.| |[Inject a pass via scripting](../customize/inject-render-pass-via-script.md)|Use the `RenderPipelineManager` API to inject a render pass, without using a Scriptable Renderer Feature.| ## Additional resources -- [Inject a pass using a Scriptable Renderer Feature](scriptable-renderer-features/inject-a-pass-using-a-scriptable-renderer-feature.md) \ No newline at end of file +- [Example of a complete Scriptable Renderer Feature](create-custom-renderer-feature.md) +- [Perform a full screen blit in Single Pass Instanced rendering in XR](how-to-fullscreen-blit-in-xr-spi.md). diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/inject-a-pass-using-a-scriptable-renderer-feature.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/inject-a-pass-using-a-scriptable-renderer-feature.md deleted file mode 100644 index f8b49e12679..00000000000 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/inject-a-pass-using-a-scriptable-renderer-feature.md +++ /dev/null @@ -1,161 +0,0 @@ -# Inject a pass using a Scriptable Renderer Feature - -This section describes how to create a [Scriptable Renderer Feature](intro-to-scriptable-renderer-features.md) for a URP Renderer. A Scriptable Renderer Feature enqueues a `ScriptableRenderPass` instance every frame. - -You need to [write a Scriptable Render Pass](../write-a-scriptable-render-pass.md) first. - -This walkthrough contains the following sections: - -* [Create a scriptable Renderer Feature](#scriptable-renderer-feature) -* [Add the Renderer Feature to the the Universal Renderer asset](#add-renderer-feature-to-asset) -* [Enqueue the render pass in the custom renderer feature](#enqueue-the-render-pass-in-the-custom-renderer-feature) -* [Complete code for the scripts in this example](#code-renderer-feature) - -## Create a scriptable Renderer Feature - -1. Create a new C# script and name it `MyRendererFeature.cs`. - -2. In the script, remove the code that Unity inserted in the `MyRendererFeature` class. - -3. Add the following `using` directive: - - ```C# - using UnityEngine.Rendering; - using UnityEngine.Rendering.Universal; - ``` - -3. Create the `MyRendererFeature` class that inherits from the **ScriptableRendererFeature** class. - - ```C# - public class MyRendererFeature : ScriptableRendererFeature - ``` - -4. In the `MyRendererFeature` class, implement the following methods: - - * `Create`: Unity calls this method on the following events: - - * When the Renderer Feature loads the first time. - - * When you enable or disable the Renderer Feature. - - * When you change a property in the inspector of the Renderer Feature. - - * `AddRenderPasses`: Unity calls this method every frame, once for each camera. This method lets you inject `ScriptableRenderPass` instances into the scriptable Renderer. - -Now you have the custom `MyRendererFeature` Renderer Feature with its main methods. - -Below is the complete code for this step. - -```C# -using System.Collections; -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Rendering.Universal; - -public class MyRendererFeature : ScriptableRendererFeature -{ - public override void Create() - { - - } - - public override void AddRenderPasses(ScriptableRenderer renderer, - ref RenderingData renderingData) - { - - } -} -``` - -### Add the Renderer Feature to the Universal Renderer asset - -Add the Renderer Feature you created to the the Universal Renderer asset. For information on how to do this, refer to the page [How to add a Renderer Feature to a Renderer](../../urp-renderer-feature-how-to-add.md). - -## Enqueue a render pass in the custom renderer feature - -In this section, you instantiate a render pass in the `Create` method of the `MyRendererFeature` class, and enqueue it in the `AddRenderPasses` method. - -This section uses the example `RedTintRenderPass` Scriptable Render Pass from the [Write a Scriptable Render Pass](../write-a-scriptable-render-pass.md) page. - -1. Declare the following fields: - - ```C# - [SerializeField] private Shader shader; - private Material material; - private RedTintRenderPass redTintRenderPass; - ``` - -1. In the `Create` method, instantiate the `RedTintRenderPass` class. - - In the method, use the `renderPassEvent` field to specify when to execute the render pass. - - ```C# - public override void Create() - { - if (shader == null) - { - return; - } - material = CoreUtils.CreateEngineMaterial(shader); - redTintRenderPass = new RedTintRenderPass(material); - - redTintRenderPass.renderPassEvent = RenderPassEvent.AfterRenderingSkybox; - } - ``` - -2. In the `AddRenderPasses` method, enqueue the render pass with the `EnqueuePass` method. - - ```C# - public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) - { - if (renderingData.cameraData.cameraType == CameraType.Game) - { - renderer.EnqueuePass(redTintRenderPass); - } - } - ``` - -## Custom Renderer Feature code - -Below is the complete code for the custom Renderer Feature script. - -```C# -using System; -using UnityEditor; -using UnityEngine; -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; - -public class MyRendererFeature : ScriptableRendererFeature -{ - [SerializeField] private Shader shader; - private Material material; - private RedTintRenderPass redTintRenderPass; - - public override void Create() - { - if (shader == null) - { - return; - } - material = CoreUtils.CreateEngineMaterial(shader); - redTintRenderPass = new RedTintRenderPass(material); - - redTintRenderPass.renderPassEvent = RenderPassEvent.AfterRenderingSkybox; - } - - public override void AddRenderPasses(ScriptableRenderer renderer, - ref RenderingData renderingData) - { - if (renderingData.cameraData.cameraType == CameraType.Game) - { - renderer.EnqueuePass(redTintRenderPass); - } - } - public override void Dispose(bool disposing) - { - CoreUtils.Destroy(material); - } -} - -``` diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md deleted file mode 100644 index ecccb76e058..00000000000 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-feature-reference.md +++ /dev/null @@ -1,35 +0,0 @@ -# Scriptable Renderer Feature Reference - -When working with Scriptable Renderer Features and Scriptable Render Passes there are predefined methods that you need to implement for URP to call at specific points in the pipeline. - -The following sections summarize the common methods used to write Scriptable Renderer Features and Scriptable Render Passes: - -* [Scriptable Renderer Feature Methods](#scriptable-renderer-feature-methods) -* [Scriptable Render Pass Methods](#scriptable-render-pass-methods) - -## Scriptable Renderer Feature Methods - -You can use the following methods within a Scriptable Renderer Feature to handle its core functions. For more information on Scriptable Renderer Feature scripting and further details on the methods listed below, refer to [ScriptableRendererFeature](xref:UnityEngine.Rendering.Universal.ScriptableRendererFeature). - -| **Method** | **Description** | -| ---------- | --------------- | -| `AddRenderPasses` | Use this method to add one or more Render Passes into the rendering sequence of the renderer with the `EnqueuePass` method.

By default this method applies the render passes to all cameras. To change this, add logic to return early in the method when a specific camera or camera type is detected.

**Note**: URP calls this method once per camera when the renderer is set up, for this reason you should not create or instantiate any resources within this function. | -| `Create` | Use this method to initialize any resources the Scriptable Renderer Feature needs such as Materials and Render Pass instances. | -| `Dispose` | Use this method to clean up the resources allocated to the Scriptable Renderer Feature such as Materials. | -| `SetupRenderPasses` | Use this method to run any setup the Scriptable Render Passes require. For example, you can set the initial values of properties, or run custom setup methods from your Scriptable Render Passes.

If your Scriptable Renderer Feature accesses camera targets to set up its Scriptable Render Passes, do it in this method instead of in the `AddRenderPasses` method. | - -## Scriptable Render Pass Methods - -You can use the following methods within a Scriptable Renderer Pass to handle its core functions. For further information on Scriptable Render Pass scripting and further details on the methods listed below, refer to [ScriptableRenderPass](xref:UnityEngine.Rendering.Universal.ScriptableRenderPass). - -| **Method** | **Description** | -| ---------- | --------------- | -| `Execute` | Use this method to implement the rendering logic for the Scriptable Renderer Feature.

**Note**: You must not call `ScriptableRenderContext.Submit` on a command buffer provided by URP. The render pipeline handles this at specific points in the pipeline. | -| `OnCameraCleanup` | Use this method to clean up any resources that were allocated during the render pass. | -| `OnCameraSetup` | Use this method to configure render targets and their clear state. You can also use it to create temporary render target textures.

**Note**: When this method is empty, the render pass will render to the active camera render target. | - -## Additional resources - -* [Introduction to Scriptable Renderer Features](./intro-to-scriptable-renderer-features.md) -* [Introduction to Scriptable Render Passes](intro-to-scriptable-renderer-features.md) -* [How to create a Custom Renderer Feature](../create-custom-renderer-feature.md) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-features-landing.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-features-landing.md index d4dfc6ac915..d79ee603d22 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-features-landing.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-renderer-features/scriptable-renderer-features-landing.md @@ -5,6 +5,5 @@ Scriptable Renderer Features are components you can add to a renderer to alter h |Page|Description| |-|-| |[Introduction to Scriptable Renderer Features](intro-to-scriptable-renderer-features.md)|What a Scriptable Renderer Feature is, and how a Scriptable Renderer Feature relates to a Scriptable Render Pass.| -|[Inject a custom pass using a Scriptable Renderer Feature](inject-a-pass-using-a-scriptable-renderer-feature.md)|Create a Scriptable Renderer Feature, add it to the Universal Renderer, and enqueue a render pass.| |[Apply a Scriptable Renderer Feature to a specific camera type](apply-scriptable-feature-to-specific-camera.md)|Control which cameras the effect of a Scriptable Renderer Feature applies to.| |[Example of a complete Scriptable Renderer Feature](../create-custom-renderer-feature.md)|An example of a complete Scriptable Renderer Feature with a Scriptable Render Pass that creates a blur effect.| diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/write-a-scriptable-render-pass.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/write-a-scriptable-render-pass.md deleted file mode 100644 index a4c96defdbf..00000000000 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/write-a-scriptable-render-pass.md +++ /dev/null @@ -1,288 +0,0 @@ -# Write a Scriptable Render Pass - -The following example is a `ScriptableRenderPass` instance that performs the following steps: - -1. Creates a temporary render texture using the `RenderTextureDescriptor` API. -2. Applies two passes of the [custom shader](#example-shader) to the camera output using the `RTHandle` and the `Blit` API. - -After you write a Scriptable Render Pass, you can inject the pass using one of the following methods: - -- [Use the `RenderPipelineManager` API](../customize/inject-render-pass-via-script.md) -- [Use a Scriptable Renderer Feature](scriptable-renderer-features/inject-a-pass-using-a-scriptable-renderer-feature.md) - -## Create the scriptable Render Pass - -This section demonstrates how to create a scriptable Render Pass. - -1. Create a new C# script and name it `RedTintRenderPass.cs`. - -2. In the script, remove the code that Unity inserted in the `RedTintRenderPass` class. Add the following `using` directive: - - ```C# - using UnityEngine.Rendering; - using UnityEngine.Rendering.Universal; - ``` - -3. Create the `RedTintRenderPass` class that inherits from the **ScriptableRenderPass** class. - - ```C# - public class RedTintRenderPass : ScriptableRenderPass - ``` - -4. Add the `Execute` method to the class. Unity calls this method every frame, once for each camera. This method lets you implement the rendering logic of the scriptable Render Pass. - - ```C# - public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) - { } - ``` - -Below is the complete code for the RedTintRenderPass.cs file from this section. - -```C# -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; - -public class RedTintRenderPass : ScriptableRenderPass -{ - public override void Execute(ScriptableRenderContext context, - ref RenderingData renderingData) - { - - } -} -``` - -## Implement the settings for the custom render pass - -1. Add a field for the Material, and the constructor that uses the field. - - ```C# - private Material material; - - public RedTintRenderPass(Material material) - { - this.material = material; - } - ``` - -2. Add the `RenderTextureDescriptor` field and initialize it in the constructor: - - ```C# - using UnityEngine; - - private RenderTextureDescriptor textureDescriptor; - - public RedTintRenderPass(Material material) - { - this.material = material; - - textureDescriptor = new RenderTextureDescriptor(Screen.width, - Screen.height, RenderTextureFormat.Default, 0); - } - ``` - -3. Declare the `RTHandle` field to store the reference to the temporary red tint texture. - - ```C# - private RTHandle textureHandle; - ``` - -4. Implement the `Configure` method. Unity calls this method before executing the render pass. - - ```C# - public override void Configure(CommandBuffer cmd, - RenderTextureDescriptor cameraTextureDescriptor) - { - //Set the red tint texture size to be the same as the camera target size. - textureDescriptor.width = cameraTextureDescriptor.width; - textureDescriptor.height = cameraTextureDescriptor.height; - - //Check if the descriptor has changed, and reallocate the RTHandle if necessary. - RenderingUtils.ReAllocateIfNeeded(ref textureHandle, textureDescriptor); - } - ``` - -5. Use the Blit method to apply the two passes from the custom shader to the camera output. - - ```C# - public override void Execute(ScriptableRenderContext context, - ref RenderingData renderingData) - { - //Get a CommandBuffer from pool. - CommandBuffer cmd = CommandBufferPool.Get(); - - RTHandle cameraTargetHandle = - renderingData.cameraData.renderer.cameraColorTargetHandle; - - // Blit from the camera target to the temporary render texture, - // using the first shader pass. - Blit(cmd, cameraTargetHandle, textureHandle, material, 0); - // Blit from the temporary render texture to the camera target, - // using the second shader pass. - Blit(cmd, textureHandle, cameraTargetHandle, material, 1); - - //Execute the command buffer and release it back to the pool. - context.ExecuteCommandBuffer(cmd); - CommandBufferPool.Release(cmd); - } - ``` - -6. Implement the `Dispose` method that destroys the Material and the temporary render texture after the render pass execution. - - ```C# - public void Dispose() - { - #if UNITY_EDITOR - if (EditorApplication.isPlaying) - { - Object.Destroy(material); - } - else - { - Object.DestroyImmediate(material); - } - #else - Object.Destroy(material); - #endif - - if (textureHandle != null) textureHandle.Release(); - } - ``` - -### Custom render pass code - -Below is the complete code for the custom Render Pass script. - -```C# -using UnityEditor; -using UnityEngine; -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; - -public class RedTintRenderPass : ScriptableRenderPass -{ - private Material material; - - private RenderTextureDescriptor textureDescriptor; - private RTHandle textureHandle; - - public RedTintRenderPass(Material material) - { - this.material = material; - - textureDescriptor = new RenderTextureDescriptor(Screen.width, - Screen.height, RenderTextureFormat.Default, 0); - } - - public override void Configure(CommandBuffer cmd, - RenderTextureDescriptor cameraTextureDescriptor) - { - // Set the texture size to be the same as the camera target size. - textureDescriptor.width = cameraTextureDescriptor.width; - textureDescriptor.height = cameraTextureDescriptor.height; - - // Check if the descriptor has changed, and reallocate the RTHandle if necessary - RenderingUtils.ReAllocateIfNeeded(ref textureHandle, textureDescriptor); - } - - public override void Execute(ScriptableRenderContext context, - ref RenderingData renderingData) - { - //Get a CommandBuffer from pool. - CommandBuffer cmd = CommandBufferPool.Get(); - - RTHandle cameraTargetHandle = - renderingData.cameraData.renderer.cameraColorTargetHandle; - - // Blit from the camera target to the temporary render texture, - // using the first shader pass. - Blit(cmd, cameraTargetHandle, textureHandle, material, 0); - // Blit from the temporary render texture to the camera target, - // using the second shader pass. - Blit(cmd, textureHandle, cameraTargetHandle, material, 1); - - //Execute the command buffer and release it back to the pool. - context.ExecuteCommandBuffer(cmd); - CommandBufferPool.Release(cmd); - } - - public void Dispose() - { - #if UNITY_EDITOR - if (EditorApplication.isPlaying) - { - Object.Destroy(material); - } - else - { - Object.DestroyImmediate(material); - } - #else - Object.Destroy(material); - #endif - - if (textureHandle != null) textureHandle.Release(); - } -} -``` - -## The custom shader for the red tint effect - -This section contains the code for the custom shader that implements the red tint effect. - -```c++ -Shader "CustomEffects/RedTint" -{ - HLSLINCLUDE - - #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" - // The Blit.hlsl file provides the vertex shader (Vert), - // the input structure (Attributes), and the output structure (Varyings) - #include "Packages/com.unity.render-pipelines.core/Runtime/Utilities/Blit.hlsl" - - - float4 RedTint (Varyings input) : SV_Target - { - float3 color = SAMPLE_TEXTURE2D(_BlitTexture, sampler_LinearClamp, input.texcoord).rgb; - return float4(1, color.gb, 1); - } - - float4 SimpleBlit (Varyings input) : SV_Target - { - float3 color = SAMPLE_TEXTURE2D(_BlitTexture, sampler_LinearClamp, input.texcoord).rgb; - return float4(color.rgb, 1); - } - - ENDHLSL - - SubShader - { - Tags { "RenderType"="Opaque" "RenderPipeline" = "UniversalPipeline"} - LOD 100 - ZTest Always ZWrite Off Cull Off - Pass - { - Name "RedTint" - - HLSLPROGRAM - - #pragma vertex Vert - #pragma fragment RedTint - - ENDHLSL - } - - Pass - { - Name "SimpleBlit" - - HLSLPROGRAM - - #pragma vertex Vert - #pragma fragment SimpleBlit - - ENDHLSL - } - } -} -``` \ No newline at end of file From 18f520fabbbf6b55108f040206ccaa5b43f984f0 Mon Sep 17 00:00:00 2001 From: Mark Green Date: Fri, 24 Jan 2025 13:05:10 +0000 Subject: [PATCH 02/17] [Port] [2021.3] DOCG-6491 Custom render passes and volumes documentation --- .../Documentation~/TableOfContents.md | 3 +- .../restrict-render-pass-scene-area.md | 112 ++++++++++++++++++ .../scriptable-render-passes.md | 1 + 3 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 Packages/com.unity.render-pipelines.universal/Documentation~/customize/restrict-render-pass-scene-area.md diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md b/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md index 91ddc705655..f18df14cfa5 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/TableOfContents.md @@ -126,7 +126,8 @@ * [Custom render pass workflow in URP](renderer-features/custom-rendering-pass-workflow-in-urp.md) * [Scriptable Render Passes](renderer-features/scriptable-render-passes.md) * [Introduction to Scriptable Render Passes](renderer-features/intro-to-scriptable-render-passes.md) - * [Inject a pass via scripting](customize/inject-render-pass-via-script.md) + * [Inject a pass via scripting](customize/inject-render-pass-via-script.md) + * [Restrict a render pass to a scene area](customize/restrict-render-pass-scene-area.md) * [Scriptable Renderer Features](renderer-features/scriptable-renderer-features/scriptable-renderer-features-landing.md) * [Introduction to Scriptable Renderer Features](renderer-features/scriptable-renderer-features/intro-to-scriptable-renderer-features.md) * [Apply a Scriptable Renderer Feature to a specific camera type](renderer-features/scriptable-renderer-features/apply-scriptable-feature-to-specific-camera.md) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/customize/restrict-render-pass-scene-area.md b/Packages/com.unity.render-pipelines.universal/Documentation~/customize/restrict-render-pass-scene-area.md new file mode 100644 index 00000000000..d04e30cd0e0 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/customize/restrict-render-pass-scene-area.md @@ -0,0 +1,112 @@ +# Restrict a render pass to a scene area in URP + +To restrict a render pass to a specific area of a scene, add a [volume](../Volumes.md) to the scene, then add code to your render pass and your shader to check if the camera is inside the volume. + +Follow these steps: + +1. Update your shader code to enable or disable your custom rendering effect based on a Boolean value. + + For example, add the following code to your shader: + + ```hlsl + Pass + { + ... + + // Add a variable to enable or disable your custom rendering effect + float _Enabled; + + ... + + float4 Frag(Varyings input) : SV_Target0 + { + ... + + // Return the color with the effect if the variable is 1, or the original color if the variable is 0 + if (_Enabled == 1){ + return colorWithEffect; + } else { + return originalColor; + } + } + } + ``` + +2. Create a script that implements the `VolumeComponent` class. This creates a volume override component that you can add to a volume. + + ```c# + using UnityEngine; + using UnityEngine.Rendering; + + public class MyVolumeOverride : VolumeComponent + { + } + ``` + +3. In the **Hierarchy** window, select the **Add** (**+**) button, then select **GameObject** > **Volume** > **Box Volume**. + +4. In the **Inspector** window for the new box volume, under **Volume**, select **New** to create a new volume profile. + +5. Select **Add override**, then select your volume override component, for example **My Volume Override**. + +6. Add a property to the volume override script. Unity adds the property in the **Inspector** window of the volume override. + + For example: + + ```c# + public class MyVolumeOverride : VolumeComponent + { + // Add an 'Effect Enabled' checkbox to the Volume Override, with a default value of true. + public BoolParameter effectEnabled = new BoolParameter(true); + } + ``` + +5. In your custom pass, use the `GetComponent` API to get the volume override component and check the value of the property. + + For example: + + ```c# + class myCustomPass : ScriptableRenderPass + { + + ... + + public void Setup(Material material) + { + // Get the volume override component + MyVolumeOverride myOverride = VolumeManager.instance.stack.GetComponent(); + + // Get the value of the 'Effect Enabled' property + bool effectStatus = myOverride.effectEnabled.overrideState ? myOverride.effectEnabled.value : false; + } + } + ``` + +6. Pass the value of the property to the variable you added to the shader code. + + For example: + + ```c# + class myCustomPass : ScriptableRenderPass + { + + ... + + public void Setup(Material material) + { + MyVolumeOverride myOverride = VolumeManager.instance.stack.GetComponent(); + bool effectStatus = myOverride.effectEnabled.overrideState ? myOverride.effectEnabled.value : false; + + // Pass the value to the shader + material.SetFloat("_Enabled", effectStatus ? 1 : 0); + } + } + ``` + +Your custom rendering effect is now enabled when the camera is inside the volume, and disabled when the camera is outside the volume. + +## Additional resources + +- [Write a Scriptable Render Pass](../renderer-features/write-a-scriptable-render-pass.md) +- [Volumes in URP](../volumes.md) +- [Writing custom shaders in URP](../writing-custom-shaders-urp.md) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-render-passes.md b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-render-passes.md index 779d8925208..da6805bebe6 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-render-passes.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/renderer-features/scriptable-render-passes.md @@ -6,6 +6,7 @@ Use the `ScriptableRenderPass` API to write a custom render pass. You can then i |-|-| |[Introduction to Scriptable Render Passes](intro-to-scriptable-render-passes.md)|What a Scriptable Render Pass is, and how you can inject it into a scene.| |[Inject a pass via scripting](../customize/inject-render-pass-via-script.md)|Use the `RenderPipelineManager` API to inject a render pass, without using a Scriptable Renderer Feature.| +|[Restrict a render pass to a scene area](../customize/restrict-render-pass-scene-area.md) | Enable a custom rendering effect only if the camera is inside a volume in a scene. | ## Additional resources From 64a31cebc0332015162fbdc09b05151279062b31 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Sat, 1 Feb 2025 09:34:57 +0000 Subject: [PATCH 03/17] [Port] [2021.3] Fix issue where padding was different between tabs in Lighting window --- .../Sky/HDLightingWindowEnvironmentSection.cs | 47 +++++-------------- 1 file changed, 13 insertions(+), 34 deletions(-) diff --git a/Packages/com.unity.render-pipelines.high-definition/Editor/Sky/HDLightingWindowEnvironmentSection.cs b/Packages/com.unity.render-pipelines.high-definition/Editor/Sky/HDLightingWindowEnvironmentSection.cs index e28354234a8..25a1f5b7c24 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Editor/Sky/HDLightingWindowEnvironmentSection.cs +++ b/Packages/com.unity.render-pipelines.high-definition/Editor/Sky/HDLightingWindowEnvironmentSection.cs @@ -8,6 +8,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Reflection; namespace UnityEditor.Rendering.HighDefinition { @@ -16,16 +17,7 @@ class HDLightingWindowEnvironmentSectionEditor : LightingWindowEnvironmentSectio { class Styles { - public static GUIStyle headerStyle; - static Styles() - { - headerStyle = new GUIStyle(EditorStyles.foldoutHeader); - headerStyle.fontStyle = FontStyle.Bold; - headerStyle.fontSize = 12; - headerStyle.margin = new RectOffset(17, 0, 0, 0); - headerStyle.padding = new RectOffset(16, 1, 0, 0); - headerStyle.fixedHeight = 21; - } + public static readonly GUIStyle inspectorTitle = "IN Title"; } class SerializedStaticLightingSky @@ -78,6 +70,8 @@ bool toggleValue } } + static MethodInfo k_FoldoutTitlebar; + public override void OnEnable() { m_SerializedActiveSceneLightingSky = new SerializedStaticLightingSky(GetStaticLightingSkyForScene(EditorSceneManager.GetActiveScene())); @@ -149,35 +143,20 @@ public override void OnInspectorGUI() void DrawGUI() { - Rect mainSeparator = EditorGUILayout.GetControlRect(GUILayout.Height(1)); - mainSeparator.xMin -= 3; - mainSeparator.xMax += 4; - EditorGUI.DrawRect(mainSeparator, EditorGUIUtility.isProSkin - ? new Color32(26, 26, 26, 255) - : new Color32(127, 127, 127, 255)); - - Rect line = EditorGUILayout.GetControlRect(); - line.xMin -= 3; - line.xMax += 4; - line.y -= 2; - line.yMax += 4; + if (k_FoldoutTitlebar == null) + { + var flags = BindingFlags.NonPublic | BindingFlags.Static; + Type[] args = new Type[] { typeof(Rect), typeof(GUIContent), typeof(bool), typeof(bool) }; + k_FoldoutTitlebar = typeof(EditorGUI).GetMethod("FoldoutTitlebar", flags, null, args, null); + } - toggleValue = EditorGUI.Foldout(line, toggleValue, EditorGUIUtility.TrTextContent("Environment (HDRP)", "Sky lighting environment for active Scene"), Styles.headerStyle); + var labelRect = GUILayoutUtility.GetRect(GUIContent.none, Styles.inspectorTitle, GUILayout.ExpandWidth(true)); + var label = EditorGUIUtility.TrTextContent("Environment (HDRP)", "Sky lighting environment for active Scene"); - EditorGUI.DrawRect(line, EditorGUIUtility.isProSkin - ? new Color(1f, 1f, 1f, 0.03f) - : new Color(1f, 1f, 1f, 0.2f)); + toggleValue = (bool)k_FoldoutTitlebar.Invoke(null, new object[] { labelRect, label, toggleValue, true }); if (m_ToggleValue) { - Rect separator = EditorGUILayout.GetControlRect(GUILayout.Height(1)); - separator.xMin -= 3; - separator.xMax += 4; - separator.y -= 1; - EditorGUI.DrawRect(separator, EditorGUIUtility.isProSkin - ? new Color32(48, 48, 48, 255) - : new Color32(186, 186, 186, 255)); - ++EditorGUI.indentLevel; //cannot use SerializeProperty due to logic in the property From 32be7e6bac11ebbf154887f1bd17af3bf6ca2633 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Tue, 4 Feb 2025 17:22:34 +0000 Subject: [PATCH 04/17] [Port] [2021.3] UUM-92512: Light Cookie Atlas is leaking --- .../Runtime/ForwardLights.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs b/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs index 7a4f6ecb50c..092f8410415 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/ForwardLights.cs @@ -387,6 +387,8 @@ internal void Cleanup() m_ZBinBuffer.Dispose(); m_TileBuffer.Dispose(); } + m_LightCookieManager?.Dispose(); + m_LightCookieManager = null; } void InitializeLightConstants(NativeArray lights, int lightIndex, out Vector4 lightPos, out Vector4 lightColor, out Vector4 lightAttenuation, out Vector4 lightSpotDir, out Vector4 lightOcclusionProbeChannel, out uint lightLayerMask) From 938529390fae870de2315dec7be14f262fb23393 Mon Sep 17 00:00:00 2001 From: Erik Hakala Date: Fri, 7 Feb 2025 10:14:38 +0000 Subject: [PATCH 05/17] 21.3 Fix truncated color value warning. --- .../Shaders/Particles/ParticlesSimpleLitForwardPass.hlsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLitForwardPass.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLitForwardPass.hlsl index ddb702f4dfb..910bb0e619a 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLitForwardPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Shaders/Particles/ParticlesSimpleLitForwardPass.hlsl @@ -117,7 +117,7 @@ half4 ParticlesLitFragment(VaryingsParticle input) : SV_Target half3 diffuse = AlphaModulate(albedo.rgb, albedo.a); half alpha = albedo.a; #if defined(_EMISSION) - half3 emission = BlendTexture(TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap), particleParams.uv, particleParams.blendUv) * _EmissionColor.rgb; + half3 emission = BlendTexture(TEXTURE2D_ARGS(_EmissionMap, sampler_EmissionMap), particleParams.uv, particleParams.blendUv).rgb * _EmissionColor.rgb; #else half3 emission = half3(0, 0, 0); #endif From deff05873a26127212fe863f933c2032b745f115 Mon Sep 17 00:00:00 2001 From: Benjamin Slapcoff Date: Mon, 10 Feb 2025 09:59:47 +0000 Subject: [PATCH 06/17] [UUM-63636] Fix for 2021.3.X: Terrain Detail objects are not rendered in the build when the Terrain is generated at runtime --- .../Data/UniversalRenderPipelineAsset.cs | 58 +++++++++++++++---- .../UniversalRenderPipelineEditorResources.cs | 9 --- .../Runtime/UniversalRendererData.cs | 18 ++++++ 3 files changed, 65 insertions(+), 20 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs index 4fef310b860..1960a3a563f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineAsset.cs @@ -1177,31 +1177,67 @@ public override Shader autodeskInteractiveMaskedShader get { return editorResources?.shaders.autodeskInteractiveMaskedPS; } } - public override Shader terrainDetailLitShader + public override Shader defaultSpeedTree7Shader { - get { return editorResources?.shaders.terrainDetailLitPS; } + get { return editorResources?.shaders.defaultSpeedTree7PS; } } - public override Shader terrainDetailGrassShader + public override Shader defaultSpeedTree8Shader { - get { return editorResources?.shaders.terrainDetailGrassPS; } + get { return editorResources?.shaders.defaultSpeedTree8PS; } } +#endif - public override Shader terrainDetailGrassBillboardShader + /// + /// Returns the terrain detail lit shader that this asset uses. + /// + public override Shader terrainDetailLitShader { - get { return editorResources?.shaders.terrainDetailGrassBillboardPS; } + get + { + foreach (var data in m_RendererDataList) + { + if (data is UniversalRendererData universalData) + return universalData.shaders.terrainDetailLitPS; + } + + return null; + } } - public override Shader defaultSpeedTree7Shader + /// + /// Returns the terrain detail grass shader that this asset uses. + /// + public override Shader terrainDetailGrassShader { - get { return editorResources?.shaders.defaultSpeedTree7PS; } + get + { + foreach (var data in m_RendererDataList) + { + if (data is UniversalRendererData universalData) + return universalData.shaders.terrainDetailGrassPS; + } + + return null; + } } - public override Shader defaultSpeedTree8Shader + /// + /// Returns the terrain detail grass billboard shader that this asset uses. + /// + public override Shader terrainDetailGrassBillboardShader { - get { return editorResources?.shaders.defaultSpeedTree8PS; } + get + { + foreach (var data in m_RendererDataList) + { + if (data is UniversalRendererData universalData) + return universalData.shaders.terrainDetailGrassBillboardPS; + } + + return null; + } } -#endif /// Names used for display of rendering layer masks. public override string[] renderingLayerMaskNames => UniversalRenderPipelineGlobalSettings.instance.renderingLayerMaskNames; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineEditorResources.cs b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineEditorResources.cs index d94861a54e8..be22dfcd0a8 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineEditorResources.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Data/UniversalRenderPipelineEditorResources.cs @@ -16,15 +16,6 @@ public sealed class ShaderResources [Reload("Shaders/Autodesk Interactive/Autodesk Interactive Masked.shadergraph")] public Shader autodeskInteractiveMaskedPS; - [Reload("Shaders/Terrain/TerrainDetailLit.shader")] - public Shader terrainDetailLitPS; - - [Reload("Shaders/Terrain/WavingGrass.shader")] - public Shader terrainDetailGrassPS; - - [Reload("Shaders/Terrain/WavingGrassBillboard.shader")] - public Shader terrainDetailGrassBillboardPS; - [Reload("Shaders/Nature/SpeedTree7.shader")] public Shader defaultSpeedTree7PS; diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs index 89a1d2b2055..1c67915c83f 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/UniversalRendererData.cs @@ -81,6 +81,24 @@ public sealed class ShaderResources [Reload("Shaders/ObjectMotionVectors.shader")] public Shader objectMotionVector; + + /// + /// Terrain Detail Lit shader. + /// + [Reload("Shaders/Terrain/TerrainDetailLit.shader")] + public Shader terrainDetailLitPS; + + /// + /// Terrain Detail Grass shader. + /// + [Reload("Shaders/Terrain/WavingGrass.shader")] + public Shader terrainDetailGrassPS; + + /// + /// Waving Grass Billboard shader. + /// + [Reload("Shaders/Terrain/WavingGrassBillboard.shader")] + public Shader terrainDetailGrassBillboardPS; } public PostProcessData postProcessData = null; From 3ff86135d4247d53399524421f1d87a0b064f511 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Penavaire?= Date: Tue, 18 Feb 2025 10:46:31 +0000 Subject: [PATCH 07/17] [21.3] Bump SRP packages to 12.1.16 --- .../CHANGELOG.md | 8 +++++++ .../package.json | 2 +- .../CHANGELOG.md | 7 +++++++ .../package.json | 4 ++-- .../CHANGELOG.md | 20 ++++++++++++++++++ .../package.json | 10 ++++----- .../CHANGELOG.md | 21 +++++++++++++++++++ .../ValidationExceptions.json | 4 ++-- .../package.json | 6 +++--- Packages/com.unity.shadergraph/CHANGELOG.md | 14 +++++++++++++ Packages/com.unity.shadergraph/package.json | 4 ++-- .../com.unity.visualeffectgraph/CHANGELOG.md | 11 ++++++++++ .../com.unity.visualeffectgraph/package.json | 6 +++--- 13 files changed, 99 insertions(+), 18 deletions(-) diff --git a/Packages/com.unity.render-pipelines.core/CHANGELOG.md b/Packages/com.unity.render-pipelines.core/CHANGELOG.md index d4dffcd3235..4b04de4f04d 100644 --- a/Packages/com.unity.render-pipelines.core/CHANGELOG.md +++ b/Packages/com.unity.render-pipelines.core/CHANGELOG.md @@ -10,6 +10,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. Version Updated The version number for this package has increased due to a version update of a related graphics package. +## [12.1.15] - 2025-02-13 + +This version is compatible with Unity 2021.3.49f1. + +### Fixed +- Rendering Debugger - Keep the correct selected panel when entering and exiting from playmode. +- Avoid that the same volume can be registered more than 1 time in the VolumeManager. + ## [12.1.14] - 2024-04-03 This version is compatible with Unity 2021.3.38f1. diff --git a/Packages/com.unity.render-pipelines.core/package.json b/Packages/com.unity.render-pipelines.core/package.json index a5081849a9f..25865da70c6 100644 --- a/Packages/com.unity.render-pipelines.core/package.json +++ b/Packages/com.unity.render-pipelines.core/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.render-pipelines.core", "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": "12.1.15", + "version": "12.1.16", "unity": "2021.3", "displayName": "Core RP Library", "dependencies": { diff --git a/Packages/com.unity.render-pipelines.high-definition-config/CHANGELOG.md b/Packages/com.unity.render-pipelines.high-definition-config/CHANGELOG.md index 6cdf5eb029e..5e2c5f41363 100644 --- a/Packages/com.unity.render-pipelines.high-definition-config/CHANGELOG.md +++ b/Packages/com.unity.render-pipelines.high-definition-config/CHANGELOG.md @@ -10,6 +10,13 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. Version Updated The version number for this package has increased due to a version update of a related graphics package. +## [12.1.15] - 2025-02-13 + +This version is compatible with Unity 2021.3.49f1. + +Version Updated +The version number for this package has increased due to a version update of a related graphics package. + ## [12.1.14] - 2024-04-03 This version is compatible with Unity 2021.3.38f1. 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 6e52504f626..fe587d1e5b1 100644 --- a/Packages/com.unity.render-pipelines.high-definition-config/package.json +++ b/Packages/com.unity.render-pipelines.high-definition-config/package.json @@ -1,10 +1,10 @@ { "name": "com.unity.render-pipelines.high-definition-config", "description": "Configuration files for the High Definition Render Pipeline.", - "version": "12.1.15", + "version": "12.1.16", "unity": "2021.3", "displayName": "High Definition RP Config", "dependencies": { - "com.unity.render-pipelines.core": "12.1.15" + "com.unity.render-pipelines.core": "12.1.16" } } \ No newline at end of file diff --git a/Packages/com.unity.render-pipelines.high-definition/CHANGELOG.md b/Packages/com.unity.render-pipelines.high-definition/CHANGELOG.md index 711c4ed6eb2..98b490ea497 100644 --- a/Packages/com.unity.render-pipelines.high-definition/CHANGELOG.md +++ b/Packages/com.unity.render-pipelines.high-definition/CHANGELOG.md @@ -10,6 +10,26 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. Version Updated The version number for this package has increased due to a version update of a related graphics package. +## [12.1.15] - 2025-02-13 + +This version is compatible with Unity 2021.3.49f1. + +### Changed +- Transparent materials now appear opaque when using Mipmap Streaming debug views for increased clarity. + +### Fixed +- Fixed graphical issue when resizing Reflection Probe sizes on macOS +- Fixed an issue where the Mipmap Streaming debug views would show up incorrectly when certain features were enabled (SRP Batcher, Volumetric Fog, Volumetric Clouds, ...). +- Fixed an issue where certain Mipmap Streaming debug views (for example: "Mip Count") would not show up correctly on Metal. +- Reimporting ShaderGraph assets no longer triggers a UnityVCS/Perfoce local checkout. +- Fixed sun flicker where the sun is close to cloud boundaries. +- Added clamp to HairAngleWorld to prevent nan from FastASin. +- Fixed an issue where cascade shadows and distance shadowmask were not blended properly. +- Fixed wrong SSR when using a shader graph with a clear coat value of 0. +- Fixed HDRP sky rendering when Camera Relative Rendering is disabled. +- Fixed black line artifacts on top of the screen with DRS and downsampled SSAO. +- Fixed an issue where the padding in the Lighting window was different between tabs. + ## [12.1.14] - 2024-04-03 This version is compatible with Unity 2021.3.38f1. diff --git a/Packages/com.unity.render-pipelines.high-definition/package.json b/Packages/com.unity.render-pipelines.high-definition/package.json index f805f20f2ca..6f073ff6083 100644 --- a/Packages/com.unity.render-pipelines.high-definition/package.json +++ b/Packages/com.unity.render-pipelines.high-definition/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.render-pipelines.high-definition", "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": "12.1.15", + "version": "12.1.16", "unity": "2021.3", "displayName": "High Definition RP", "dependencies": { @@ -11,10 +11,10 @@ "com.unity.modules.animation": "1.0.0", "com.unity.modules.imageconversion": "1.0.0", "com.unity.modules.terrain": "1.0.0", - "com.unity.render-pipelines.core": "12.1.15", - "com.unity.shadergraph": "12.1.15", - "com.unity.visualeffectgraph": "12.1.15", - "com.unity.render-pipelines.high-definition-config": "12.1.15" + "com.unity.render-pipelines.core": "12.1.16", + "com.unity.shadergraph": "12.1.16", + "com.unity.visualeffectgraph": "12.1.16", + "com.unity.render-pipelines.high-definition-config": "12.1.16" }, "keywords": [ "graphics", diff --git a/Packages/com.unity.render-pipelines.universal/CHANGELOG.md b/Packages/com.unity.render-pipelines.universal/CHANGELOG.md index e4deba3e36c..c5be3d72c83 100644 --- a/Packages/com.unity.render-pipelines.universal/CHANGELOG.md +++ b/Packages/com.unity.render-pipelines.universal/CHANGELOG.md @@ -10,6 +10,27 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. Version Updated The version number for this package has increased due to a version update of a related graphics package. +## [12.1.15] - 2025-02-13 + +This version is compatible with Unity 2021.3.49f1. + +### Fixed +- Fixed an issue where cookie sampling looks corrupt when targeting mobile platforms. +- Fixed compiler error when using single precision on Mobile targets +- Disable fallback behavior on FSR EASU shader to prevent build errors on machines with old GPUs +- Reduced banding on FSR upscaled render target by changing render target formats +- Fixed an issue where glClientWaitSync: Expected application to have kicked everything until job: 96089 (possibly by calling glFlush)" are thrown in the Android Player on some devices with PowerVR Rogue GE8320 GPU. +- Fixed camera offset in the UI editor for the RenderObject RenderFeature. +- Fixed shadow-map sampling artifacts present when using the Unlit DrawMode in the SceneView. +- Disabled depth priming for cameras with depth only render targets. +- Fixed multiview support for the XR Occlusion Mesh pass. +- Stop spamming about c-buffer layout mispatch in GPU-instancing-enabled speed tree materials when enabling Rendering Layers. +- Fixed a redundant empty line in a tooltip for Cast Shadows toggle in the URP Asset for Additional lights. +- Fixed sorting the Reflection Probe by resolution. +- Universal RP: Fixed an issue where Camera view is not rendered on PowerVR Rogue GE8320 GPU'S if Shadows are enabled in URP Asset and Camera stack contains Overlay Camera's. +- Fixed light cookie texture memory leak when entering Playmode. +- Fixed Implicit truncation of vector type shader warning. + ## [12.1.14] - 2024-04-03 This version is compatible with Unity 2021.3.38f1. diff --git a/Packages/com.unity.render-pipelines.universal/ValidationExceptions.json b/Packages/com.unity.render-pipelines.universal/ValidationExceptions.json index 8e16faacb3a..33089dd6c38 100644 --- a/Packages/com.unity.render-pipelines.universal/ValidationExceptions.json +++ b/Packages/com.unity.render-pipelines.universal/ValidationExceptions.json @@ -2,8 +2,8 @@ "Exceptions": [ { "ValidationTest": "Package Lifecycle Validation", - "ExceptionError": "Package com.unity.render-pipelines.universal@12.1.15 depends on package com.unity.burst@1.5.0 which is in an invalid track for release purposes. Release versions can only depend on Release versions.", - "PackageVersion": "12.1.15" + "ExceptionError": "Package com.unity.render-pipelines.universal@12.1.16 depends on package com.unity.burst@1.5.0 which is in an invalid track for release purposes. Release versions can only depend on Release versions.", + "PackageVersion": "12.1.16" } ] } \ 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 7a01af06d43..968f84ffba5 100644 --- a/Packages/com.unity.render-pipelines.universal/package.json +++ b/Packages/com.unity.render-pipelines.universal/package.json @@ -1,14 +1,14 @@ { "name": "com.unity.render-pipelines.universal", "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": "12.1.15", + "version": "12.1.16", "unity": "2021.3", "displayName": "Universal RP", "dependencies": { "com.unity.mathematics": "1.2.1", "com.unity.burst": "1.8.9", - "com.unity.render-pipelines.core": "12.1.15", - "com.unity.shadergraph": "12.1.15" + "com.unity.render-pipelines.core": "12.1.16", + "com.unity.shadergraph": "12.1.16" }, "keywords": [ "graphics", diff --git a/Packages/com.unity.shadergraph/CHANGELOG.md b/Packages/com.unity.shadergraph/CHANGELOG.md index b330f3b1ccc..87de920dfeb 100644 --- a/Packages/com.unity.shadergraph/CHANGELOG.md +++ b/Packages/com.unity.shadergraph/CHANGELOG.md @@ -10,6 +10,20 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. Version Updated The version number for this package has increased due to a version update of a related graphics package. +## [12.1.15] - 2025-02-13 + +This version is compatible with Unity 2021.3.49f1. + +### Fixed +- Disallowed shader variant related settings to be set to negative values. +- Fixed a bug where the Custom Function node's "Body" field would expand off-screen instead of scrolling. +- Users can no longer select 'Delete' for context blocks. +- Fixed a bug that Normal From Height node in a shader graph might return an invalid value when using 16-bit half precision. +- The name displayed in the Graph inspector when a BlockNode is selected has changed. +- Added issue where precision mismatch could result in an asset failing to import. +- Fixed so that pasting an empty group positions it based on the cursor's location. +- Fixed Shader warnings in URP ShaderGraph when using the Normal From Texture node. + ## [12.1.14] - 2024-04-03 This version is compatible with Unity 2021.3.38f1. diff --git a/Packages/com.unity.shadergraph/package.json b/Packages/com.unity.shadergraph/package.json index bc271083a0b..433a0632012 100644 --- a/Packages/com.unity.shadergraph/package.json +++ b/Packages/com.unity.shadergraph/package.json @@ -1,11 +1,11 @@ { "name": "com.unity.shadergraph", "description": "The Shader Graph package adds a visual Shader editing tool to Unity. You can use this tool to create Shaders in a visual way instead of writing code. Specific render pipelines can implement specific graph features. Currently, both the High Definition Rendering Pipeline and the Universal Rendering Pipeline support Shader Graph.", - "version": "12.1.15", + "version": "12.1.16", "unity": "2021.3", "displayName": "Shader Graph", "dependencies": { - "com.unity.render-pipelines.core": "12.1.15", + "com.unity.render-pipelines.core": "12.1.16", "com.unity.searcher": "4.9.1" }, "samples": [ diff --git a/Packages/com.unity.visualeffectgraph/CHANGELOG.md b/Packages/com.unity.visualeffectgraph/CHANGELOG.md index e971e193654..113865d9afb 100644 --- a/Packages/com.unity.visualeffectgraph/CHANGELOG.md +++ b/Packages/com.unity.visualeffectgraph/CHANGELOG.md @@ -10,6 +10,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. Version Updated The version number for this package has increased due to a version update of a related graphics package. +## [12.1.15] - 2025-02-13 + +This version is compatible with Unity 2021.3.49f1. + +### Fixed +- Removed shader warnings (GetParticleIndex). +- Removed shader warnings (CompareKVP). +- When trying to connect incompatible types, the error popup was left over if the action was canceled with Escape key. +- Blackboard could be out of the screen when the VFX Graph window was too small. +- Read unexposed shader global properties when using a Shader Graph output. + ## [12.1.14] - 2024-04-03 This version is compatible with Unity 2021.3.38f1. diff --git a/Packages/com.unity.visualeffectgraph/package.json b/Packages/com.unity.visualeffectgraph/package.json index 55c7cf4f18d..17bcc227d7d 100644 --- a/Packages/com.unity.visualeffectgraph/package.json +++ b/Packages/com.unity.visualeffectgraph/package.json @@ -1,7 +1,7 @@ { "name": "com.unity.visualeffectgraph", "displayName": "Visual Effect Graph", - "version": "12.1.15", + "version": "12.1.16", "unity": "2021.3", "description": "The Visual Effect Graph is a node based visual effect editor. It allows you to author next generation visual effects that Unity simulates directly on the GPU. The Visual Effect Graph is production-ready for the High Definition Render Pipeline and runs on all platforms supported by it. Full support for the Universal Render Pipeline and compatible mobile devices is still in development.", "keywords": [ @@ -12,8 +12,8 @@ "particles" ], "dependencies": { - "com.unity.shadergraph": "12.1.15", - "com.unity.render-pipelines.core": "12.1.15" + "com.unity.shadergraph": "12.1.16", + "com.unity.render-pipelines.core": "12.1.16" }, "samples": [ { From 9a59d4a7d25ebbefaca7b981d22775ad1e4cb4de Mon Sep 17 00:00:00 2001 From: Kenny Tan Date: Thu, 27 Feb 2025 06:17:08 +0000 Subject: [PATCH 08/17] [Backport 2021.3][UUM-87636] Fix sprite instancing with 2d shaders --- .../ShaderGraph/Includes/SpriteLitPass.hlsl | 13 +- .../Includes/SpriteNormalPass.hlsl | 11 + .../ShaderGraph/Includes/SpriteUnlitPass.hlsl | 13 +- .../UniversalSpriteCustomLitSubTarget.cs | 5 + .../Targets/UniversalSpriteLitSubTarget.cs | 5 + .../Targets/UniversalSpriteUnlitSubTarget.cs | 4 + .../Editor/ShaderGUI/ShadergraphSpriteGUI.cs | 30 + .../ShaderGUI/ShadergraphSpriteGUI.cs.meta | 11 + .../ShaderGraph/Targets/UniversalTarget.cs | 1 + .../Shaders/2D/Include/Core2D.hlsl | 21 + .../Shaders/2D/Include/Core2D.hlsl.meta | 7 + .../Shaders/2D/Sprite-Lit-Default.shader | 29 + .../Shaders/2D/Sprite-Unlit-Default.shader | 20 +- .../Assets/Scenes/083_GPU_Instancing.meta | 8 + .../Assets/Scenes/083_GPU_Instancing.unity | 2315 +++++++++++++++++ .../Scenes/083_GPU_Instancing.unity.meta | 7 + .../083_GPU_Instancing/DisableSRPBatching.cs | 11 + .../DisableSRPBatching.cs.meta | 11 + .../SpriteCustomLit_Instance_ShaderGraph.mat | 60 + ...iteCustomLit_Instance_ShaderGraph.mat.meta | 8 + ...CustomLit_Instance_ShaderGraph.shadergraph | 874 +++++++ ...mLit_Instance_ShaderGraph.shadergraph.meta | 10 + .../083_GPU_Instancing/SpriteLit_Instance.mat | 50 + .../SpriteLit_Instance.mat.meta | 8 + .../SpriteLit_Instance_ShaderGraph.mat | 60 + .../SpriteLit_Instance_ShaderGraph.mat.meta | 8 + ...SpriteLit_Instance_ShaderGraph.shadergraph | 874 +++++++ ...eLit_Instance_ShaderGraph.shadergraph.meta | 10 + .../SpriteUnit_Instance_ShaderGraph.mat | 60 + .../SpriteUnit_Instance_ShaderGraph.mat.meta | 8 + ...priteUnit_Instance_ShaderGraph.shadergraph | 745 ++++++ ...Unit_Instance_ShaderGraph.shadergraph.meta | 10 + .../SpriteUnlit_Instance.mat | 51 + .../SpriteUnlit_Instance.mat.meta | 8 + .../ProjectSettings/EditorBuildSettings.asset | 3 + 35 files changed, 5366 insertions(+), 3 deletions(-) create mode 100644 Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ShadergraphSpriteGUI.cs create mode 100644 Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ShadergraphSpriteGUI.cs.meta create mode 100644 Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl create mode 100644 Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.unity create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.unity.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/DisableSRPBatching.cs create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/DisableSRPBatching.cs.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.mat create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.mat.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.shadergraph create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.shadergraph.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance.mat create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance.mat.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.mat create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.mat.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.shadergraph create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.shadergraph.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.mat create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.mat.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.shadergraph create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.shadergraph.meta create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnlit_Instance.mat create mode 100644 Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnlit_Instance.mat.meta diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteLitPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteLitPass.hlsl index 863368aaf8c..0c4873e00bb 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteLitPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteLitPass.hlsl @@ -1,4 +1,4 @@ - +#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/SurfaceData2D.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging2D.hlsl" @@ -25,8 +25,19 @@ half4 _RendererColor; PackedVaryings vert(Attributes input) { Varyings output = (Varyings)0; + UNITY_SETUP_INSTANCE_ID(input); + +#ifdef UNITY_INSTANCING_ENABLED + input.positionOS = UnityFlipSprite(input.positionOS, unity_SpriteFlip); +#endif + output = BuildVaryings(input); output.color *= _RendererColor; + +#ifdef UNITY_INSTANCING_ENABLED + output.color *= unity_SpriteColor; +#endif + PackedVaryings packedOutput = PackVaryings(output); return packedOutput; } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteNormalPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteNormalPass.hlsl index 7284f2621b1..1cd1fb7b58b 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteNormalPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteNormalPass.hlsl @@ -1,8 +1,19 @@ PackedVaryings vert(Attributes input) { Varyings output = (Varyings)0; + UNITY_SETUP_INSTANCE_ID(input); + +#ifdef UNITY_INSTANCING_ENABLED + input.positionOS = UnityFlipSprite(input.positionOS, unity_SpriteFlip); +#endif + output = BuildVaryings(input); output.normalWS = -GetViewForwardDir(); + +#ifdef UNITY_INSTANCING_ENABLED + output.color *= unity_SpriteColor; +#endif + PackedVaryings packedOutput = PackVaryings(output); return packedOutput; } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteUnlitPass.hlsl b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteUnlitPass.hlsl index 377dbda01c1..32c050e94fb 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteUnlitPass.hlsl +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Includes/SpriteUnlitPass.hlsl @@ -1,4 +1,4 @@ - +#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/SurfaceData2D.hlsl" #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging2D.hlsl" @@ -7,8 +7,19 @@ half4 _RendererColor; PackedVaryings vert(Attributes input) { Varyings output = (Varyings)0; + UNITY_SETUP_INSTANCE_ID(input); + +#ifdef UNITY_INSTANCING_ENABLED + input.positionOS = UnityFlipSprite(input.positionOS, unity_SpriteFlip); +#endif + output = BuildVaryings(input); output.color *= _RendererColor; + +#ifdef UNITY_INSTANCING_ENABLED + output.color *= unity_SpriteColor; +#endif + PackedVaryings packedOutput = PackVaryings(output); return packedOutput; } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs index bfd9a0d57ec..90c9c8479db 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs @@ -19,6 +19,10 @@ public UniversalSpriteCustomLitSubTarget() public override void Setup(ref TargetSetupContext context) { context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); + + var universalRPType = typeof(UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset); + var gui = typeof(ShaderGraphSpriteGUI); + context.AddCustomEditorForRenderPipeline(gui.FullName, universalRPType); context.AddSubShader(SubShaders.SpriteLit(target)); } @@ -234,6 +238,7 @@ static class SpriteLitRequiredFields public static FieldCollection Normal = new FieldCollection() { + StructFields.Varyings.color, StructFields.Varyings.normalWS, StructFields.Varyings.tangentWS, }; diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs index 213652cff43..9f475730a8e 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs @@ -21,6 +21,10 @@ public UniversalSpriteLitSubTarget() public override void Setup(ref TargetSetupContext context) { context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); + + var universalRPType = typeof(UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset); + var gui = typeof(ShaderGraphSpriteGUI); + context.AddCustomEditorForRenderPipeline(gui.FullName, universalRPType); context.AddSubShader(SubShaders.SpriteLit(target)); } @@ -256,6 +260,7 @@ static class SpriteLitRequiredFields public static FieldCollection Normal = new FieldCollection() { + StructFields.Varyings.color, StructFields.Varyings.normalWS, StructFields.Varyings.tangentWS, }; diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs index 35a1c81935e..7a7c996443d 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs @@ -21,6 +21,10 @@ public UniversalSpriteUnlitSubTarget() public override void Setup(ref TargetSetupContext context) { context.AddAssetDependency(kSourceCodeGuid, AssetCollection.Flags.SourceDependency); + + var universalRPType = typeof(UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset); + var gui = typeof(ShaderGraphSpriteGUI); + context.AddCustomEditorForRenderPipeline(gui.FullName, universalRPType); context.AddSubShader(SubShaders.SpriteUnlit(target)); } diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ShadergraphSpriteGUI.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ShadergraphSpriteGUI.cs new file mode 100644 index 00000000000..0384ff111b0 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ShadergraphSpriteGUI.cs @@ -0,0 +1,30 @@ +using UnityEngine; + +namespace UnityEditor +{ + // Used for ShaderGraph Sprite shaders + class ShaderGraphSpriteGUI : BaseShaderGUI + { + protected override uint materialFilter => uint.MaxValue & ~(uint)Expandable.SurfaceOptions; + + MaterialProperty[] properties; + + // collect properties from the material properties + public override void FindProperties(MaterialProperty[] properties) + { + // save off the list of all properties for shadergraph + this.properties = properties; + + var material = materialEditor?.target as Material; + if (material == null) + return; + + base.FindProperties(properties); + } + + public override void DrawSurfaceInputs(Material material) + { + DrawShaderGraphProperties(material, properties); + } + } +} diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ShadergraphSpriteGUI.cs.meta b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ShadergraphSpriteGUI.cs.meta new file mode 100644 index 00000000000..23195832dd5 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGUI/ShadergraphSpriteGUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 478c8ec8473e14f4597a729050dc56f3 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs index b96573b4486..849a37905f8 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs @@ -1319,6 +1319,7 @@ static class CorePragmas { { Pragma.Target(ShaderModel.Target20) }, { Pragma.ExcludeRenderers(new[] { Platform.D3D9 }) }, + { Pragma.MultiCompileInstancing }, { Pragma.Vertex("vert") }, { Pragma.Fragment("frag") }, }; diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl new file mode 100644 index 00000000000..8e74198f155 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl @@ -0,0 +1,21 @@ +#ifndef INPUT_CORE_2D_INCLUDED +#define INPUT_CORE_2D_INCLUDED + +float3 UnityFlipSprite( in float3 pos, in float2 flip ) +{ + return float3(pos.xy * flip, pos.z); +} + +#ifdef UNITY_INSTANCING_ENABLED + UNITY_INSTANCING_BUFFER_START(PerDrawSprite) + // SpriteRenderer.Color while Non-Batched/Instanced. + UNITY_DEFINE_INSTANCED_PROP(float4, unity_SpriteRendererColorArray) + // this could be smaller but that's how bit each entry is regardless of type + UNITY_DEFINE_INSTANCED_PROP(float2, unity_SpriteFlipArray) + UNITY_INSTANCING_BUFFER_END(PerDrawSprite) + + #define unity_SpriteColor UNITY_ACCESS_INSTANCED_PROP(PerDrawSprite, unity_SpriteRendererColorArray) + #define unity_SpriteFlip UNITY_ACCESS_INSTANCED_PROP(PerDrawSprite, unity_SpriteFlipArray) +#endif // instancing + +#endif diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl.meta b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl.meta new file mode 100644 index 00000000000..c76a36e0dfc --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b1ab2a3655b2e554794f4f6338212e57 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: 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 66d9ba81523..505d7376d3a 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 @@ -28,10 +28,13 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" HLSLPROGRAM #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" #pragma vertex CombinedShapeLightVertex #pragma fragment CombinedShapeLightFragment + // GPU Instancing + #pragma multi_compile_instancing #pragma multi_compile USE_SHAPE_LIGHT_TYPE_0 __ #pragma multi_compile USE_SHAPE_LIGHT_TYPE_1 __ #pragma multi_compile USE_SHAPE_LIGHT_TYPE_2 __ @@ -90,6 +93,9 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); +#ifdef UNITY_INSTANCING_ENABLED + v.positionOS = UnityFlipSprite(v.positionOS, unity_SpriteFlip); +#endif o.positionCS = TransformObjectToHClip(v.positionOS); #if defined(DEBUG_DISPLAY) o.positionWS = TransformObjectToWorld(v.positionOS); @@ -98,6 +104,9 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" o.lightingUV = half2(ComputeScreenPos(o.positionCS / o.positionCS.w).xy); o.color = v.color * _Color * _RendererColor; +#ifdef UNITY_INSTANCING_ENABLED + o.color *= unity_SpriteColor; +#endif return o; } @@ -124,10 +133,14 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" HLSLPROGRAM #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" #pragma vertex NormalsRenderingVertex #pragma fragment NormalsRenderingFragment + // GPU Instancing + #pragma multi_compile_instancing + struct Attributes { float3 positionOS : POSITION; @@ -160,12 +173,18 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" UNITY_SETUP_INSTANCE_ID(attributes); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); +#ifdef UNITY_INSTANCING_ENABLED + attributes.positionOS = UnityFlipSprite(attributes.positionOS, unity_SpriteFlip); +#endif o.positionCS = TransformObjectToHClip(attributes.positionOS); o.uv = TRANSFORM_TEX(attributes.uv, _NormalMap); o.color = attributes.color; o.normalWS = -GetViewForwardDir(); o.tangentWS = TransformObjectToWorldDir(attributes.tangent.xyz); o.bitangentWS = cross(o.normalWS, o.tangentWS) * attributes.tangent.w; +#ifdef UNITY_INSTANCING_ENABLED + o.color *= unity_SpriteColor; +#endif return o; } @@ -187,10 +206,14 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" HLSLPROGRAM #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" #pragma vertex UnlitVertex #pragma fragment UnlitFragment + // GPU Instancing + #pragma multi_compile_instancing + struct Attributes { float3 positionOS : POSITION; @@ -222,12 +245,18 @@ Shader "Universal Render Pipeline/2D/Sprite-Lit-Default" UNITY_SETUP_INSTANCE_ID(attributes); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); +#ifdef UNITY_INSTANCING_ENABLED + attributes.positionOS = UnityFlipSprite(attributes.positionOS, unity_SpriteFlip); +#endif o.positionCS = TransformObjectToHClip(attributes.positionOS); #if defined(DEBUG_DISPLAY) o.positionWS = TransformObjectToWorld(v.positionOS); #endif o.uv = TRANSFORM_TEX(attributes.uv, _MainTex); o.color = attributes.color * _Color * _RendererColor; +#ifdef UNITY_INSTANCING_ENABLED + o.color *= unity_SpriteColor; +#endif return o; } diff --git a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Unlit-Default.shader b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Unlit-Default.shader index 72514a9ad3b..36671121765 100644 --- a/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Unlit-Default.shader +++ b/Packages/com.unity.render-pipelines.universal/Shaders/2D/Sprite-Unlit-Default.shader @@ -17,7 +17,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Unlit-Default" { Tags {"Queue" = "Transparent" "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" } - Blend SrcAlpha OneMinusSrcAlpha + Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha Cull Off ZWrite Off @@ -27,6 +27,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Unlit-Default" HLSLPROGRAM #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" #if defined(DEBUG_DISPLAY) #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/InputData2D.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/SurfaceData2D.hlsl" @@ -36,6 +37,8 @@ Shader "Universal Render Pipeline/2D/Sprite-Unlit-Default" #pragma vertex UnlitVertex #pragma fragment UnlitFragment + // GPU Instancing + #pragma multi_compile_instancing #pragma multi_compile _ DEBUG_DISPLAY struct Attributes @@ -69,12 +72,18 @@ Shader "Universal Render Pipeline/2D/Sprite-Unlit-Default" UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); +#ifdef UNITY_INSTANCING_ENABLED + v.positionOS = UnityFlipSprite(v.positionOS, unity_SpriteFlip); +#endif o.positionCS = TransformObjectToHClip(v.positionOS); #if defined(DEBUG_DISPLAY) o.positionWS = TransformObjectToWorld(v.positionOS); #endif o.uv = TRANSFORM_TEX(v.uv, _MainTex); o.color = v.color * _Color * _RendererColor; +#ifdef UNITY_INSTANCING_ENABLED + o.color *= unity_SpriteColor; +#endif return o; } @@ -108,6 +117,7 @@ Shader "Universal Render Pipeline/2D/Sprite-Unlit-Default" HLSLPROGRAM #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl" #if defined(DEBUG_DISPLAY) #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/InputData2D.hlsl" #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/SurfaceData2D.hlsl" @@ -117,6 +127,8 @@ Shader "Universal Render Pipeline/2D/Sprite-Unlit-Default" #pragma vertex UnlitVertex #pragma fragment UnlitFragment + // GPU Instancing + #pragma multi_compile_instancing #pragma multi_compile_fragment _ DEBUG_DISPLAY struct Attributes @@ -150,12 +162,18 @@ Shader "Universal Render Pipeline/2D/Sprite-Unlit-Default" UNITY_SETUP_INSTANCE_ID(attributes); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); +#ifdef UNITY_INSTANCING_ENABLED + attributes.positionOS = UnityFlipSprite(attributes.positionOS, unity_SpriteFlip); +#endif o.positionCS = TransformObjectToHClip(attributes.positionOS); #if defined(DEBUG_DISPLAY) o.positionWS = TransformObjectToWorld(attributes.positionOS); #endif o.uv = TRANSFORM_TEX(attributes.uv, _MainTex); o.color = attributes.color * _Color * _RendererColor; +#ifdef UNITY_INSTANCING_ENABLED + o.color *= unity_SpriteColor; +#endif return o; } diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.meta new file mode 100644 index 00000000000..ff9ded3e035 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d5c9b4bb39375d4d99538070f9869d6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.unity b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.unity new file mode 100644 index 00000000000..ca39747bf35 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.unity @@ -0,0 +1,2315 @@ +%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: 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: 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 &75676365 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 75676366} + m_Layer: 0 + m_Name: Sprite-Unlit-Shadergraph + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &75676366 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 75676365} + 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: 1315649601} + - {fileID: 1596896699} + - {fileID: 1880632342} + - {fileID: 274931737} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &123189903 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 123189905} + - component: {fileID: 123189904} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &123189904 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123189903} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 54c508a8fa8a70943bba0ba97baa4f27, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 0, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &123189905 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 123189903} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1191293558} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &236320669 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 236320671} + - component: {fileID: 236320670} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &236320670 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 236320669} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 54c508a8fa8a70943bba0ba97baa4f27, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 1 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &236320671 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 236320669} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1191293558} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &274931736 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 274931737} + - component: {fileID: 274931738} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &274931737 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 274931736} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 75676366} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &274931738 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 274931736} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 60737a90dff96a544ac8a87fe697150c, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 0, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &327740586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 327740588} + - component: {fileID: 327740587} + m_Layer: 0 + m_Name: Light 2D + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &327740587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 327740586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 073797afb82c5a1438f328866b10b3f0, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ComponentVersion: 2 + m_LightType: 4 + m_BlendStyleIndex: 0 + m_FalloffIntensity: 0.5 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 1 + m_LightVolumeIntensity: 1 + m_LightVolumeEnabled: 0 + m_ApplyToSortingLayers: eb0feddf00000000e980ef06 + m_LightCookieSprite: {fileID: 0} + m_DeprecatedPointLightCookieSprite: {fileID: 0} + m_LightOrder: 0 + m_AlphaBlendOnOverlap: 0 + m_OverlapOperation: 0 + m_NormalMapDistance: 3 + m_NormalMapQuality: 2 + m_UseNormalMap: 0 + m_ShadowsEnabled: 1 + m_ShadowIntensity: 0.75 + m_ShadowSoftness: 0.3 + m_ShadowSoftnessFalloffIntensity: 0.5 + m_ShadowVolumeIntensityEnabled: 0 + m_ShadowVolumeIntensity: 0.75 + m_LocalBounds: + m_Center: {x: 0, y: -0.00000011920929, z: 0} + m_Extent: {x: 0.9985302, y: 0.99853027, z: 0} + m_PointLightInnerAngle: 360 + m_PointLightOuterAngle: 360 + m_PointLightInnerRadius: 0.5316736 + m_PointLightOuterRadius: 3.8789914 + m_ShapeLightParametricSides: 5 + m_ShapeLightParametricAngleOffset: 0 + m_ShapeLightParametricRadius: 1 + m_ShapeLightFalloffSize: 0.5 + m_ShapeLightFalloffOffset: {x: 0, y: 0} + m_ShapePath: + - {x: -0.5, y: -0.5, z: 0} + - {x: 0.5, y: -0.5, z: 0} + - {x: 0.5, y: 0.5, z: 0} + - {x: -0.5, y: 0.5, z: 0} +--- !u!4 &327740588 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 327740586} + 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 &506165350 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 506165354} + - component: {fileID: 506165353} + - component: {fileID: 506165352} + - component: {fileID: 506165351} + - component: {fileID: 506165355} + - component: {fileID: 506165356} + 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 &506165351 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506165350} + 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!81 &506165352 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506165350} + m_Enabled: 1 +--- !u!20 &506165353 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506165350} + 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: -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 &506165354 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506165350} + 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 &506165355 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506165350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8c967615a7994bc49a3a77f079e6a859, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &506165356 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 506165350} + 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!1 &510396077 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 510396079} + - component: {fileID: 510396078} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &510396078 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 510396077} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 64b37b5f46246d84b9b80e34f8f9aa14, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 0, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &510396079 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 510396077} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1984448005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &600191481 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 600191482} + m_Layer: 0 + m_Name: Sprite-CustomLit-Shadergraph + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &600191482 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 600191481} + 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: 1273794227} + - {fileID: 1496790421} + - {fileID: 1963736875} + - {fileID: 1615199375} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &861940630 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 861940632} + - component: {fileID: 861940631} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &861940631 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861940630} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 26387240445e60a439a867c45582e036, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 0, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &861940632 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 861940630} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1558294035} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1007469336 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1007469338} + - component: {fileID: 1007469337} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1007469337 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007469336} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 64b37b5f46246d84b9b80e34f8f9aa14, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 1 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1007469338 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1007469336} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1984448005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1115111063 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1115111065} + - component: {fileID: 1115111064} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1115111064 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115111063} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 26387240445e60a439a867c45582e036, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 1 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1115111065 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1115111063} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1558294035} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1191293557 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1191293558} + m_Layer: 0 + m_Name: Sprite-Lit-Shadergraph + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1191293558 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1191293557} + 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: 1765849714} + - {fileID: 1768863408} + - {fileID: 236320671} + - {fileID: 123189905} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1222769616 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1222769618} + - component: {fileID: 1222769617} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1222769617 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222769616} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 64b37b5f46246d84b9b80e34f8f9aa14, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 1 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1222769618 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1222769616} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1984448005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1273794226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1273794227} + - component: {fileID: 1273794228} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1273794227 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273794226} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 600191482} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1273794228 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1273794226} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ac030f93a35cd0b428141a13774161c9, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 1 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1289862862 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1289862864} + - component: {fileID: 1289862863} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1289862863 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1289862862} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 64b37b5f46246d84b9b80e34f8f9aa14, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, 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.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1289862864 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1289862862} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1984448005} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1315649600 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1315649601} + - component: {fileID: 1315649602} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1315649601 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315649600} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 75676366} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1315649602 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1315649600} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 60737a90dff96a544ac8a87fe697150c, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 1 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1496790420 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1496790421} + - component: {fileID: 1496790422} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1496790421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496790420} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 600191482} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1496790422 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1496790420} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ac030f93a35cd0b428141a13774161c9, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, 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.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1558294034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1558294035} + m_Layer: 0 + m_Name: Sprite-Lit-Default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1558294035 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1558294034} + 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: 1682605768} + - {fileID: 2117563998} + - {fileID: 1115111065} + - {fileID: 861940632} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1596896698 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1596896699} + - component: {fileID: 1596896700} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1596896699 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1596896698} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 75676366} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1596896700 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1596896698} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 60737a90dff96a544ac8a87fe697150c, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, 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.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1615199374 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1615199375} + - component: {fileID: 1615199376} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1615199375 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1615199374} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 600191482} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1615199376 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1615199374} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ac030f93a35cd0b428141a13774161c9, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 0, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1682605766 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1682605768} + - component: {fileID: 1682605767} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1682605767 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682605766} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 26387240445e60a439a867c45582e036, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, 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.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1682605768 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1682605766} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1558294035} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1765849712 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1765849714} + - component: {fileID: 1765849713} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1765849713 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1765849712} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 54c508a8fa8a70943bba0ba97baa4f27, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 1 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1765849714 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1765849712} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1191293558} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1768863406 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1768863408} + - component: {fileID: 1768863407} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &1768863407 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768863406} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 54c508a8fa8a70943bba0ba97baa4f27, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, 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.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &1768863408 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1768863406} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1191293558} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1880632341 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1880632342} + - component: {fileID: 1880632343} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1880632342 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1880632341} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 75676366} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1880632343 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1880632341} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 60737a90dff96a544ac8a87fe697150c, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 1 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1963736874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1963736875} + - component: {fileID: 1963736876} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1963736875 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1963736874} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 600191482} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &1963736876 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1963736874} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ac030f93a35cd0b428141a13774161c9, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 1 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!1 &1984448004 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1984448005} + m_Layer: 0 + m_Name: Sprite-Unlit-Default + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1984448005 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1984448004} + 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: 1289862864} + - {fileID: 1007469338} + - {fileID: 1222769618} + - {fileID: 510396079} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2117563996 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2117563998} + - component: {fileID: 2117563997} + m_Layer: 0 + m_Name: BirdEnemyFlapSprite 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!212 &2117563997 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117563996} + 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_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 26387240445e60a439a867c45582e036, 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_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: 21300000, guid: 86ce912717672b8429c58e6960c12e25, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 1 + m_DrawMode: 0 + m_Size: {x: 1.28, y: 1.28} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!4 &2117563998 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2117563996} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1558294035} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 506165354} + - {fileID: 327740588} + - {fileID: 1558294035} + - {fileID: 1984448005} + - {fileID: 1191293558} + - {fileID: 75676366} + - {fileID: 600191482} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.unity.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.unity.meta new file mode 100644 index 00000000000..ae452e97b4b --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 67d46509b9dfceb43bf64d2d1ae052f5 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/DisableSRPBatching.cs b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/DisableSRPBatching.cs new file mode 100644 index 00000000000..ad57744dcb0 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/DisableSRPBatching.cs @@ -0,0 +1,11 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.Rendering; + +public class DisableSRPBatching : MonoBehaviour +{ + private void Update() + { + GraphicsSettings.useScriptableRenderPipelineBatching = false; + } +} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/DisableSRPBatching.cs.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/DisableSRPBatching.cs.meta new file mode 100644 index 00000000000..e3ab4135aca --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/DisableSRPBatching.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8c967615a7994bc49a3a77f079e6a859 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.mat new file mode 100644 index 00000000000..ccf761d399f --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.mat @@ -0,0 +1,60 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3707954424825515761 +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: SpriteCustomLit_Instance_ShaderGraph + m_Shader: {fileID: -6465566751694194690, guid: 6012e2c35ee3afc43b8c187cff7676b9, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + 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: [] + m_Colors: [] + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.mat.meta new file mode 100644 index 00000000000..f67770d71df --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ac030f93a35cd0b428141a13774161c9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.shadergraph new file mode 100644 index 00000000000..2946bdbdf33 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.shadergraph @@ -0,0 +1,874 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "edca098336694f4e8e5d79ee981d550c", + "m_Properties": [ + { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "e8cefefb20b44dd1a646e5cd2e99daa4" + } + ], + "m_Nodes": [ + { + "m_Id": "e5bf6f84ada84277a64b01061aa89c06" + }, + { + "m_Id": "b21e55d0094f49b1801195231ca066fd" + }, + { + "m_Id": "d76874d1b73d41ac884d9bbcd7a2f933" + }, + { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + { + "m_Id": "a0bfa02417034081be0f05a329b21d8d" + }, + { + "m_Id": "227e016c330f43ee9eed0921d8d719fc" + }, + { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + }, + { + "m_Id": "20499785980549ba8420783e238e015a" + }, + { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "20499785980549ba8420783e238e015a" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 7 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + }, + "m_SlotId": 0 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 0.0, + "y": 0.0 + }, + "m_Blocks": [ + { + "m_Id": "e5bf6f84ada84277a64b01061aa89c06" + }, + { + "m_Id": "b21e55d0094f49b1801195231ca066fd" + }, + { + "m_Id": "d76874d1b73d41ac884d9bbcd7a2f933" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 0.0, + "y": 200.0 + }, + "m_Blocks": [ + { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + { + "m_Id": "a0bfa02417034081be0f05a329b21d8d" + }, + { + "m_Id": "227e016c330f43ee9eed0921d8d719fc" + }, + { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + } + ] + }, + "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": "179b3d236eeb4157ab1354ad1a35e33a" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalSpriteCustomLitSubTarget", + "m_ObjectId": "0f5fc0248cac4a8d99ab1b26574cbc03" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot", + "m_ObjectId": "11245995f44e4584aa3f7731b8e897a8", + "m_Id": 0, + "m_DisplayName": "MainTex", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "13ba63987dc3432d93907976ebb0604c", + "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.NormalMaterialSlot", + "m_ObjectId": "148a977f0f74470186002631eab29f23", + "m_Id": 0, + "m_DisplayName": "Normal", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Normal", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "179b3d236eeb4157ab1354ad1a35e33a", + "m_Datas": [], + "m_ActiveSubTarget": { + "m_Id": "0f5fc0248cac4a8d99ab1b26574cbc03" + }, + "m_AllowMaterialOverride": false, + "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.PropertyNode", + "m_ObjectId": "20499785980549ba8420783e238e015a", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -507.0, + "y": 276.0, + "width": 129.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "11245995f44e4584aa3f7731b8e897a8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "227e016c330f43ee9eed0921d8d719fc", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.NormalTS", + "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": "ce5ac5a11c2e4bfbbcdab6763f229cd1" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.NormalTS" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "30b63c8f540343b585e6473d3d0d98eb", + "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.UVMaterialSlot", + "m_ObjectId": "3338abaacaab44dc8a5a665345615379", + "m_Id": 2, + "m_DisplayName": "UV", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "UV", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [], + "m_Channel": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "402e4b9015d64ac1a636a8f953924c41", + "m_Id": 7, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", + "m_ObjectId": "46f828400eed4803bdfc53bc413a45a6", + "m_Id": 0, + "m_DisplayName": "Position", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Position", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode", + "m_ObjectId": "4b4015a4164144d7aacb7fd10d46770f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Sample Texture 2D", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -304.0, + "y": 241.0, + "width": 208.0, + "height": 435.0 + } + }, + "m_Slots": [ + { + "m_Id": "d42b12d6adc7463da9bd25e61d1323ce" + }, + { + "m_Id": "6d17b051780e464299fda84ff6456631" + }, + { + "m_Id": "ba912fc08d834cfa82ec8cc05b145aa4" + }, + { + "m_Id": "9a309dc4d7054691affe5a416dfbcec1" + }, + { + "m_Id": "402e4b9015d64ac1a636a8f953924c41" + }, + { + "m_Id": "8a7625f64e1648d7b3ccccf35cf5d1fb" + }, + { + "m_Id": "3338abaacaab44dc8a5a665345615379" + }, + { + "m_Id": "fccc92d348e94401b8b537cea68d385d" + } + ], + "synonyms": [ + "tex2d" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_TextureType": 0, + "m_NormalMapSpace": 0, + "m_EnableGlobalMipBias": true, + "m_MipSamplingMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty", + "m_ObjectId": "4feb15a3b4b84a47819f4c5ec3e71395", + "m_Guid": { + "m_GuidSerialized": "b69033c1-cac6-419e-9661-fa56cd9d5744" + }, + "m_Name": "MainTex", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "MainTex", + "m_DefaultReferenceName": "_MainTex", + "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": { + "m_SerializedTexture": "", + "m_Guid": "" + }, + "isMainTexture": false, + "useTilingAndOffset": false, + "useTexelSize": true, + "m_Modifiable": true, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "6d17b051780e464299fda84ff6456631", + "m_Id": 4, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "89b9521b5c6d479a945fd6354ed91d99", + "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": "13ba63987dc3432d93907976ebb0604c" + } + ], + "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.Texture2DInputMaterialSlot", + "m_ObjectId": "8a7625f64e1648d7b3ccccf35cf5d1fb", + "m_Id": 1, + "m_DisplayName": "Texture", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Texture", + "m_StageCapability": 3, + "m_BareResource": false, + "m_Texture": { + "m_SerializedTexture": "", + "m_Guid": "" + }, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "9a309dc4d7054691affe5a416dfbcec1", + "m_Id": 6, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "a0bfa02417034081be0f05a329b21d8d", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.SpriteMask", + "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": "fc6ef53240774b07ae0ff9e06a417fdd" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.SpriteMask" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "a94fd9d382854c5b9d51a612e73dcf9a", + "m_Id": 0, + "m_DisplayName": "Tangent", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Tangent", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "aa5378b33e0f4c3fbaddea8a56cf1abd", + "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": "30b63c8f540343b585e6473d3d0d98eb" + } + ], + "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.BlockNode", + "m_ObjectId": "b21e55d0094f49b1801195231ca066fd", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Normal", + "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": "148a977f0f74470186002631eab29f23" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Normal" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "ba912fc08d834cfa82ec8cc05b145aa4", + "m_Id": 5, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "ce5ac5a11c2e4bfbbcdab6763f229cd1", + "m_Id": 0, + "m_DisplayName": "Normal (Tangent Space)", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "NormalTS", + "m_StageCapability": 2, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 3 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "d42b12d6adc7463da9bd25e61d1323ce", + "m_Id": 0, + "m_DisplayName": "RGBA", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "RGBA", + "m_StageCapability": 2, + "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.BlockNode", + "m_ObjectId": "d76874d1b73d41ac884d9bbcd7a2f933", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Tangent", + "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": "a94fd9d382854c5b9d51a612e73dcf9a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Tangent" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "e5bf6f84ada84277a64b01061aa89c06", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Position", + "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": "46f828400eed4803bdfc53bc413a45a6" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "e8cefefb20b44dd1a646e5cd2e99daa4", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBAMaterialSlot", + "m_ObjectId": "fc6ef53240774b07ae0ff9e06a417fdd", + "m_Id": 0, + "m_DisplayName": "Sprite Mask", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "SpriteMask", + "m_StageCapability": 2, + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_DefaultValue": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot", + "m_ObjectId": "fccc92d348e94401b8b537cea68d385d", + "m_Id": 3, + "m_DisplayName": "Sampler", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Sampler", + "m_StageCapability": 3, + "m_BareResource": false +} + diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.shadergraph.meta new file mode 100644 index 00000000000..a071d15759c --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteCustomLit_Instance_ShaderGraph.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6012e2c35ee3afc43b8c187cff7676b9 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance.mat new file mode 100644 index 00000000000..81ecbb9e8ef --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance.mat @@ -0,0 +1,50 @@ +%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: SpriteLit_Instance + m_Shader: {fileID: 4800000, guid: e260cfa7296ee7642b167f1eb5be5023, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + 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: + - _EnableExternalAlpha: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {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/083_GPU_Instancing/SpriteLit_Instance.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance.mat.meta new file mode 100644 index 00000000000..65b3c93c2d5 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 26387240445e60a439a867c45582e036 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.mat new file mode 100644 index 00000000000..de7346c302a --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.mat @@ -0,0 +1,60 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-132126536344340573 +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: SpriteLit_Instance_ShaderGraph + m_Shader: {fileID: -6465566751694194690, guid: 3639fa68d35226a4ea18a43192e5311e, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + 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: [] + m_Colors: [] + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.mat.meta new file mode 100644 index 00000000000..b63cb097cfa --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54c508a8fa8a70943bba0ba97baa4f27 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.shadergraph new file mode 100644 index 00000000000..201951db378 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.shadergraph @@ -0,0 +1,874 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "edca098336694f4e8e5d79ee981d550c", + "m_Properties": [ + { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "e8cefefb20b44dd1a646e5cd2e99daa4" + } + ], + "m_Nodes": [ + { + "m_Id": "e5bf6f84ada84277a64b01061aa89c06" + }, + { + "m_Id": "b21e55d0094f49b1801195231ca066fd" + }, + { + "m_Id": "d76874d1b73d41ac884d9bbcd7a2f933" + }, + { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + { + "m_Id": "a0bfa02417034081be0f05a329b21d8d" + }, + { + "m_Id": "227e016c330f43ee9eed0921d8d719fc" + }, + { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + }, + { + "m_Id": "20499785980549ba8420783e238e015a" + }, + { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "20499785980549ba8420783e238e015a" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 7 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + }, + "m_SlotId": 0 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 0.0, + "y": 0.0 + }, + "m_Blocks": [ + { + "m_Id": "e5bf6f84ada84277a64b01061aa89c06" + }, + { + "m_Id": "b21e55d0094f49b1801195231ca066fd" + }, + { + "m_Id": "d76874d1b73d41ac884d9bbcd7a2f933" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 0.0, + "y": 200.0 + }, + "m_Blocks": [ + { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + { + "m_Id": "a0bfa02417034081be0f05a329b21d8d" + }, + { + "m_Id": "227e016c330f43ee9eed0921d8d719fc" + }, + { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + } + ] + }, + "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": "179b3d236eeb4157ab1354ad1a35e33a" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalSpriteLitSubTarget", + "m_ObjectId": "09495cc4402d41fbac18ef22c0f8b7a3" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot", + "m_ObjectId": "11245995f44e4584aa3f7731b8e897a8", + "m_Id": 0, + "m_DisplayName": "MainTex", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "13ba63987dc3432d93907976ebb0604c", + "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.NormalMaterialSlot", + "m_ObjectId": "148a977f0f74470186002631eab29f23", + "m_Id": 0, + "m_DisplayName": "Normal", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Normal", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "179b3d236eeb4157ab1354ad1a35e33a", + "m_Datas": [], + "m_ActiveSubTarget": { + "m_Id": "09495cc4402d41fbac18ef22c0f8b7a3" + }, + "m_AllowMaterialOverride": false, + "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.PropertyNode", + "m_ObjectId": "20499785980549ba8420783e238e015a", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -497.0, + "y": 256.0, + "width": 128.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "11245995f44e4584aa3f7731b8e897a8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "227e016c330f43ee9eed0921d8d719fc", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.NormalTS", + "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": "ce5ac5a11c2e4bfbbcdab6763f229cd1" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.NormalTS" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "30b63c8f540343b585e6473d3d0d98eb", + "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.UVMaterialSlot", + "m_ObjectId": "3338abaacaab44dc8a5a665345615379", + "m_Id": 2, + "m_DisplayName": "UV", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "UV", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [], + "m_Channel": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "402e4b9015d64ac1a636a8f953924c41", + "m_Id": 7, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", + "m_ObjectId": "46f828400eed4803bdfc53bc413a45a6", + "m_Id": 0, + "m_DisplayName": "Position", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Position", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode", + "m_ObjectId": "4b4015a4164144d7aacb7fd10d46770f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Sample Texture 2D", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -304.0, + "y": 241.0, + "width": 208.0, + "height": 435.0 + } + }, + "m_Slots": [ + { + "m_Id": "d42b12d6adc7463da9bd25e61d1323ce" + }, + { + "m_Id": "6d17b051780e464299fda84ff6456631" + }, + { + "m_Id": "ba912fc08d834cfa82ec8cc05b145aa4" + }, + { + "m_Id": "9a309dc4d7054691affe5a416dfbcec1" + }, + { + "m_Id": "402e4b9015d64ac1a636a8f953924c41" + }, + { + "m_Id": "8a7625f64e1648d7b3ccccf35cf5d1fb" + }, + { + "m_Id": "3338abaacaab44dc8a5a665345615379" + }, + { + "m_Id": "fccc92d348e94401b8b537cea68d385d" + } + ], + "synonyms": [ + "tex2d" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_TextureType": 0, + "m_NormalMapSpace": 0, + "m_EnableGlobalMipBias": true, + "m_MipSamplingMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty", + "m_ObjectId": "4feb15a3b4b84a47819f4c5ec3e71395", + "m_Guid": { + "m_GuidSerialized": "b69033c1-cac6-419e-9661-fa56cd9d5744" + }, + "m_Name": "MainTex", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "MainTex", + "m_DefaultReferenceName": "_MainTex", + "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": { + "m_SerializedTexture": "", + "m_Guid": "" + }, + "isMainTexture": false, + "useTilingAndOffset": false, + "useTexelSize": true, + "m_Modifiable": true, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "6d17b051780e464299fda84ff6456631", + "m_Id": 4, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "89b9521b5c6d479a945fd6354ed91d99", + "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": "13ba63987dc3432d93907976ebb0604c" + } + ], + "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.Texture2DInputMaterialSlot", + "m_ObjectId": "8a7625f64e1648d7b3ccccf35cf5d1fb", + "m_Id": 1, + "m_DisplayName": "Texture", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Texture", + "m_StageCapability": 3, + "m_BareResource": false, + "m_Texture": { + "m_SerializedTexture": "", + "m_Guid": "" + }, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "9a309dc4d7054691affe5a416dfbcec1", + "m_Id": 6, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "a0bfa02417034081be0f05a329b21d8d", + "m_Group": { + "m_Id": "" + }, + "m_Name": "SurfaceDescription.SpriteMask", + "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": "fc6ef53240774b07ae0ff9e06a417fdd" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "SurfaceDescription.SpriteMask" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "a94fd9d382854c5b9d51a612e73dcf9a", + "m_Id": 0, + "m_DisplayName": "Tangent", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Tangent", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "aa5378b33e0f4c3fbaddea8a56cf1abd", + "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": "30b63c8f540343b585e6473d3d0d98eb" + } + ], + "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.BlockNode", + "m_ObjectId": "b21e55d0094f49b1801195231ca066fd", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Normal", + "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": "148a977f0f74470186002631eab29f23" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Normal" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "ba912fc08d834cfa82ec8cc05b145aa4", + "m_Id": 5, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.NormalMaterialSlot", + "m_ObjectId": "ce5ac5a11c2e4bfbbcdab6763f229cd1", + "m_Id": 0, + "m_DisplayName": "Normal (Tangent Space)", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "NormalTS", + "m_StageCapability": 2, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 3 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "d42b12d6adc7463da9bd25e61d1323ce", + "m_Id": 0, + "m_DisplayName": "RGBA", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "RGBA", + "m_StageCapability": 2, + "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.BlockNode", + "m_ObjectId": "d76874d1b73d41ac884d9bbcd7a2f933", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Tangent", + "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": "a94fd9d382854c5b9d51a612e73dcf9a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Tangent" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "e5bf6f84ada84277a64b01061aa89c06", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Position", + "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": "46f828400eed4803bdfc53bc413a45a6" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "e8cefefb20b44dd1a646e5cd2e99daa4", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBAMaterialSlot", + "m_ObjectId": "fc6ef53240774b07ae0ff9e06a417fdd", + "m_Id": 0, + "m_DisplayName": "Sprite Mask", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "SpriteMask", + "m_StageCapability": 2, + "m_Value": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_DefaultValue": { + "x": 1.0, + "y": 1.0, + "z": 1.0, + "w": 1.0 + }, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot", + "m_ObjectId": "fccc92d348e94401b8b537cea68d385d", + "m_Id": 3, + "m_DisplayName": "Sampler", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Sampler", + "m_StageCapability": 3, + "m_BareResource": false +} + diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.shadergraph.meta new file mode 100644 index 00000000000..bc8cc5ab542 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteLit_Instance_ShaderGraph.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 3639fa68d35226a4ea18a43192e5311e +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.mat new file mode 100644 index 00000000000..f3137db32f6 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.mat @@ -0,0 +1,60 @@ +%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: SpriteUnit_Instance_ShaderGraph + m_Shader: {fileID: -6465566751694194690, guid: 5c38180be583d024dabcb7eb258218f4, + type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _MainTex: + 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: [] + m_Colors: [] + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &7074310958015178815 +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 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.mat.meta new file mode 100644 index 00000000000..cf3c2eda812 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 60737a90dff96a544ac8a87fe697150c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.shadergraph b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.shadergraph new file mode 100644 index 00000000000..343177ddb40 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.shadergraph @@ -0,0 +1,745 @@ +{ + "m_SGVersion": 3, + "m_Type": "UnityEditor.ShaderGraph.GraphData", + "m_ObjectId": "edca098336694f4e8e5d79ee981d550c", + "m_Properties": [ + { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } + ], + "m_Keywords": [], + "m_Dropdowns": [], + "m_CategoryData": [ + { + "m_Id": "e8cefefb20b44dd1a646e5cd2e99daa4" + } + ], + "m_Nodes": [ + { + "m_Id": "e5bf6f84ada84277a64b01061aa89c06" + }, + { + "m_Id": "b21e55d0094f49b1801195231ca066fd" + }, + { + "m_Id": "d76874d1b73d41ac884d9bbcd7a2f933" + }, + { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + }, + { + "m_Id": "20499785980549ba8420783e238e015a" + }, + { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + } + ], + "m_GroupDatas": [], + "m_StickyNoteDatas": [], + "m_Edges": [ + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "20499785980549ba8420783e238e015a" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 1 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 0 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + "m_SlotId": 0 + } + }, + { + "m_OutputSlot": { + "m_Node": { + "m_Id": "4b4015a4164144d7aacb7fd10d46770f" + }, + "m_SlotId": 7 + }, + "m_InputSlot": { + "m_Node": { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + }, + "m_SlotId": 0 + } + } + ], + "m_VertexContext": { + "m_Position": { + "x": 0.0, + "y": 0.0 + }, + "m_Blocks": [ + { + "m_Id": "e5bf6f84ada84277a64b01061aa89c06" + }, + { + "m_Id": "b21e55d0094f49b1801195231ca066fd" + }, + { + "m_Id": "d76874d1b73d41ac884d9bbcd7a2f933" + } + ] + }, + "m_FragmentContext": { + "m_Position": { + "x": 0.0, + "y": 200.0 + }, + "m_Blocks": [ + { + "m_Id": "89b9521b5c6d479a945fd6354ed91d99" + }, + { + "m_Id": "aa5378b33e0f4c3fbaddea8a56cf1abd" + } + ] + }, + "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": "179b3d236eeb4157ab1354ad1a35e33a" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Texture2DMaterialSlot", + "m_ObjectId": "11245995f44e4584aa3f7731b8e897a8", + "m_Id": 0, + "m_DisplayName": "MainTex", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "Out", + "m_StageCapability": 3, + "m_BareResource": false +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.ColorRGBMaterialSlot", + "m_ObjectId": "13ba63987dc3432d93907976ebb0604c", + "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.NormalMaterialSlot", + "m_ObjectId": "148a977f0f74470186002631eab29f23", + "m_Id": 0, + "m_DisplayName": "Normal", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Normal", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 1, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalTarget", + "m_ObjectId": "179b3d236eeb4157ab1354ad1a35e33a", + "m_Datas": [], + "m_ActiveSubTarget": { + "m_Id": "a248db2d294b4517b499c3e201f3cc10" + }, + "m_AllowMaterialOverride": false, + "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.PropertyNode", + "m_ObjectId": "20499785980549ba8420783e238e015a", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Property", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -507.0, + "y": 276.0, + "width": 129.0, + "height": 34.0 + } + }, + "m_Slots": [ + { + "m_Id": "11245995f44e4584aa3f7731b8e897a8" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_Property": { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "30b63c8f540343b585e6473d3d0d98eb", + "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.UVMaterialSlot", + "m_ObjectId": "3338abaacaab44dc8a5a665345615379", + "m_Id": 2, + "m_DisplayName": "UV", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "UV", + "m_StageCapability": 3, + "m_Value": { + "x": 0.0, + "y": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0 + }, + "m_Labels": [], + "m_Channel": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "402e4b9015d64ac1a636a8f953924c41", + "m_Id": 7, + "m_DisplayName": "A", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "A", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.PositionMaterialSlot", + "m_ObjectId": "46f828400eed4803bdfc53bc413a45a6", + "m_Id": 0, + "m_DisplayName": "Position", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Position", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SampleTexture2DNode", + "m_ObjectId": "4b4015a4164144d7aacb7fd10d46770f", + "m_Group": { + "m_Id": "" + }, + "m_Name": "Sample Texture 2D", + "m_DrawState": { + "m_Expanded": true, + "m_Position": { + "serializedVersion": "2", + "x": -304.0, + "y": 241.0, + "width": 208.0, + "height": 435.0 + } + }, + "m_Slots": [ + { + "m_Id": "d42b12d6adc7463da9bd25e61d1323ce" + }, + { + "m_Id": "6d17b051780e464299fda84ff6456631" + }, + { + "m_Id": "ba912fc08d834cfa82ec8cc05b145aa4" + }, + { + "m_Id": "9a309dc4d7054691affe5a416dfbcec1" + }, + { + "m_Id": "402e4b9015d64ac1a636a8f953924c41" + }, + { + "m_Id": "8a7625f64e1648d7b3ccccf35cf5d1fb" + }, + { + "m_Id": "3338abaacaab44dc8a5a665345615379" + }, + { + "m_Id": "fccc92d348e94401b8b537cea68d385d" + } + ], + "synonyms": [ + "tex2d" + ], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_TextureType": 0, + "m_NormalMapSpace": 0, + "m_EnableGlobalMipBias": true, + "m_MipSamplingMode": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Internal.Texture2DShaderProperty", + "m_ObjectId": "4feb15a3b4b84a47819f4c5ec3e71395", + "m_Guid": { + "m_GuidSerialized": "b69033c1-cac6-419e-9661-fa56cd9d5744" + }, + "m_Name": "MainTex", + "m_DefaultRefNameVersion": 1, + "m_RefNameGeneratedByDisplayName": "MainTex", + "m_DefaultReferenceName": "_MainTex", + "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": { + "m_SerializedTexture": "", + "m_Guid": "" + }, + "isMainTexture": false, + "useTilingAndOffset": false, + "useTexelSize": true, + "m_Modifiable": true, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "6d17b051780e464299fda84ff6456631", + "m_Id": 4, + "m_DisplayName": "R", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "R", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "89b9521b5c6d479a945fd6354ed91d99", + "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": "13ba63987dc3432d93907976ebb0604c" + } + ], + "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.Texture2DInputMaterialSlot", + "m_ObjectId": "8a7625f64e1648d7b3ccccf35cf5d1fb", + "m_Id": 1, + "m_DisplayName": "Texture", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Texture", + "m_StageCapability": 3, + "m_BareResource": false, + "m_Texture": { + "m_SerializedTexture": "", + "m_Guid": "" + }, + "m_DefaultType": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "9a309dc4d7054691affe5a416dfbcec1", + "m_Id": 6, + "m_DisplayName": "B", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "B", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.Rendering.Universal.ShaderGraph.UniversalSpriteUnlitSubTarget", + "m_ObjectId": "a248db2d294b4517b499c3e201f3cc10" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.TangentMaterialSlot", + "m_ObjectId": "a94fd9d382854c5b9d51a612e73dcf9a", + "m_Id": 0, + "m_DisplayName": "Tangent", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Tangent", + "m_StageCapability": 1, + "m_Value": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_DefaultValue": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "m_Labels": [], + "m_Space": 0 +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "aa5378b33e0f4c3fbaddea8a56cf1abd", + "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": "30b63c8f540343b585e6473d3d0d98eb" + } + ], + "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.BlockNode", + "m_ObjectId": "b21e55d0094f49b1801195231ca066fd", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Normal", + "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": "148a977f0f74470186002631eab29f23" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Normal" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", + "m_ObjectId": "ba912fc08d834cfa82ec8cc05b145aa4", + "m_Id": 5, + "m_DisplayName": "G", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "G", + "m_StageCapability": 2, + "m_Value": 0.0, + "m_DefaultValue": 0.0, + "m_Labels": [] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.Vector4MaterialSlot", + "m_ObjectId": "d42b12d6adc7463da9bd25e61d1323ce", + "m_Id": 0, + "m_DisplayName": "RGBA", + "m_SlotType": 1, + "m_Hidden": false, + "m_ShaderOutputName": "RGBA", + "m_StageCapability": 2, + "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.BlockNode", + "m_ObjectId": "d76874d1b73d41ac884d9bbcd7a2f933", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Tangent", + "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": "a94fd9d382854c5b9d51a612e73dcf9a" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Tangent" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.BlockNode", + "m_ObjectId": "e5bf6f84ada84277a64b01061aa89c06", + "m_Group": { + "m_Id": "" + }, + "m_Name": "VertexDescription.Position", + "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": "46f828400eed4803bdfc53bc413a45a6" + } + ], + "synonyms": [], + "m_Precision": 0, + "m_PreviewExpanded": true, + "m_DismissedVersion": 0, + "m_PreviewMode": 0, + "m_CustomColors": { + "m_SerializableColors": [] + }, + "m_SerializedDescriptor": "VertexDescription.Position" +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.CategoryData", + "m_ObjectId": "e8cefefb20b44dd1a646e5cd2e99daa4", + "m_Name": "", + "m_ChildObjectList": [ + { + "m_Id": "4feb15a3b4b84a47819f4c5ec3e71395" + } + ] +} + +{ + "m_SGVersion": 0, + "m_Type": "UnityEditor.ShaderGraph.SamplerStateMaterialSlot", + "m_ObjectId": "fccc92d348e94401b8b537cea68d385d", + "m_Id": 3, + "m_DisplayName": "Sampler", + "m_SlotType": 0, + "m_Hidden": false, + "m_ShaderOutputName": "Sampler", + "m_StageCapability": 3, + "m_BareResource": false +} + diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.shadergraph.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.shadergraph.meta new file mode 100644 index 00000000000..1d8bda13f89 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnit_Instance_ShaderGraph.shadergraph.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 5c38180be583d024dabcb7eb258218f4 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3} diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnlit_Instance.mat b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnlit_Instance.mat new file mode 100644 index 00000000000..8011f40b340 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnlit_Instance.mat @@ -0,0 +1,51 @@ +%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: SpriteUnlit_Instance + m_Shader: {fileID: 4800000, guid: 13c02b14c4d048fa9653293d54f6e0e1, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 1 + 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} + - _RendererColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnlit_Instance.mat.meta b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnlit_Instance.mat.meta new file mode 100644 index 00000000000..1ca7c7d1226 --- /dev/null +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/Assets/Scenes/083_GPU_Instancing/SpriteUnlit_Instance.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 64b37b5f46246d84b9b80e34f8f9aa14 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset index 0afde97dac8..dcd17e306eb 100644 --- a/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset +++ b/Tests/SRPTests/Projects/UniversalGraphicsTest_2D/ProjectSettings/EditorBuildSettings.asset @@ -206,5 +206,8 @@ EditorBuildSettings: - enabled: 1 path: Assets/Scenes/073_FreeformLight2D.unity guid: 2cda990e2423bbf4892e6590ba056729 + - enabled: 1 + path: Assets/Scenes/083_GPU_Instancing.unity + guid: 67d46509b9dfceb43bf64d2d1ae052f5 m_configObjects: {} m_UseUCBPForAssetBundles: 0 From fe3c37abc8f5f0d056778df91be598cc4be32440 Mon Sep 17 00:00:00 2001 From: Kenny Tan Date: Thu, 27 Feb 2025 06:17:11 +0000 Subject: [PATCH 09/17] [2021.3][UUM-90792] Fix camera sorting layer not breaking batch for URP 2D --- .../Runtime/2D/InternalBridge.meta | 8 ++++ .../Runtime/2D/InternalBridge/AssemblyInfo.cs | 3 ++ .../2D/InternalBridge/AssemblyInfo.cs.meta | 11 +++++ .../2D/InternalBridge/InternalEngineBridge.cs | 17 ++++++++ .../InternalEngineBridge.cs.meta | 11 +++++ ...nderPipelines.Universal.2D.Internal.asmdef | 7 ++++ ...ipelines.Universal.2D.Internal.asmdef.meta | 7 ++++ .../Runtime/2D/Light2DManager.cs | 22 ++++++++++ .../Runtime/2D/Passes/Render2DLightingPass.cs | 40 ++++++++----------- .../Runtime/2D/Passes/Utility/LayerUtility.cs | 39 +++++++++++++++--- .../Runtime/2D/Renderer2D.cs | 3 ++ ...y.RenderPipelines.Universal.Runtime.asmdef | 3 +- 12 files changed, 141 insertions(+), 30 deletions(-) create mode 100644 Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge.meta create mode 100644 Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/AssemblyInfo.cs create mode 100644 Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/AssemblyInfo.cs.meta create mode 100644 Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/InternalEngineBridge.cs create mode 100644 Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/InternalEngineBridge.cs.meta create mode 100644 Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/Unity.RenderPipelines.Universal.2D.Internal.asmdef create mode 100644 Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/Unity.RenderPipelines.Universal.2D.Internal.asmdef.meta diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge.meta b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge.meta new file mode 100644 index 00000000000..843816c2664 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 609e524df3e15014fb5a6a6576d64b3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/AssemblyInfo.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/AssemblyInfo.cs new file mode 100644 index 00000000000..db473281a83 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.Runtime")] diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/AssemblyInfo.cs.meta b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/AssemblyInfo.cs.meta new file mode 100644 index 00000000000..4c548ec0201 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/AssemblyInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8cee5d271c90d444b9db4f9590a92c35 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/InternalEngineBridge.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/InternalEngineBridge.cs new file mode 100644 index 00000000000..0283d7e2952 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/InternalEngineBridge.cs @@ -0,0 +1,17 @@ +using System; + +namespace UnityEngine.Rendering.Universal +{ + internal static class InternalEngineBridge + { + internal static void AddOnLayerchangedCallback(Action callback) + { + SortingLayer.onLayerChanged += callback; + } + + internal static void RemoveOnLayerchangedCallback(Action callback) + { + SortingLayer.onLayerChanged -= callback; + } + } +} diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/InternalEngineBridge.cs.meta b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/InternalEngineBridge.cs.meta new file mode 100644 index 00000000000..98a7e0cabde --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/InternalEngineBridge.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e04c99c6b908b49428428bfedd4110b6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/Unity.RenderPipelines.Universal.2D.Internal.asmdef b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/Unity.RenderPipelines.Universal.2D.Internal.asmdef new file mode 100644 index 00000000000..da00580a754 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/Unity.RenderPipelines.Universal.2D.Internal.asmdef @@ -0,0 +1,7 @@ +{ + "name": "Unity.RenderPipelines.Universal.2D.Internal", + "references": [], + "optionalUnityReferences": [], + "includePlatforms": [], + "excludePlatforms": [] +} diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/Unity.RenderPipelines.Universal.2D.Internal.asmdef.meta b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/Unity.RenderPipelines.Universal.2D.Internal.asmdef.meta new file mode 100644 index 00000000000..6567a0ff4a1 --- /dev/null +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/InternalBridge/Unity.RenderPipelines.Universal.2D.Internal.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e870d46803eab3349b48383a7e1b877d +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DManager.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DManager.cs index ced721f24a4..9dfbc2234da 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DManager.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Light2DManager.cs @@ -8,6 +8,20 @@ internal static class Light2DManager public static List lights { get; } = new List(); + internal static void Initialize() + { +#if UNITY_EDITOR + InternalEngineBridge.AddOnLayerchangedCallback(OnSortingLayerChanged); +#endif + } + + internal static void Dispose() + { +#if UNITY_EDITOR + InternalEngineBridge.RemoveOnLayerchangedCallback(OnSortingLayerChanged); +#endif + } + // Called during OnEnable public static void RegisterLight(Light2D light) { @@ -113,5 +127,13 @@ public static SortingLayer[] GetCachedSortingLayer() #endif return s_SortingLayers; } + +#if UNITY_EDITOR + internal static void OnSortingLayerChanged() + { + // Update sorting layers that were added or removed or changed order + s_SortingLayers = SortingLayer.layers; + } +#endif } } 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 f65db9572ce..144d183a0a4 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 @@ -43,7 +43,7 @@ public Render2DLightingPass(Renderer2DData rendererData, Material blitMaterial, m_BlitMaterial = blitMaterial; m_SamplingMaterial = samplingMaterial; - m_CameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(); + m_CameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(m_Renderer2DData); } internal void Setup(bool useDepth) @@ -90,12 +90,12 @@ private void CopyCameraSortingLayerRenderTexture(ScriptableRenderContext context CommandBufferPool.Release(cmd); } - private short GetCameraSortingLayerBoundsIndex() + internal static short GetCameraSortingLayerBoundsIndex(Renderer2DData rendererData) { SortingLayer[] sortingLayers = Light2DManager.GetCachedSortingLayer(); for (short i = 0; i < sortingLayers.Length; i++) { - if (sortingLayers[i].id == m_Renderer2DData.cameraSortingLayerTextureBound) + if (sortingLayers[i].id == rendererData.cameraSortingLayerTextureBound) return (short)sortingLayers[i].value; } @@ -129,7 +129,7 @@ private void DetermineWhenToResolve(int startIndex, int batchesDrawn, int batchC if (m_Renderer2DData.useCameraSortingLayerTexture) { - var cameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(); + var cameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(m_Renderer2DData); var copyBatch = -1; for (int i = startIndex; i < startIndex + batchesDrawn; i++) { @@ -176,7 +176,6 @@ private int DrawLayerBatches( CommandBuffer cmd, ScriptableRenderContext context, ref RenderingData renderingData, - ref FilteringSettings filterSettings, ref DrawingSettings normalsDrawSettings, ref DrawingSettings drawSettings, ref RenderTextureDescriptor desc) @@ -210,7 +209,7 @@ private int DrawLayerBatches( if (layerBatch.lightStats.totalNormalMapUsage > 0) { - filterSettings.sortingLayerRange = layerBatch.layerRange; + LayerUtility.GetFilterSettings(m_Renderer2DData, ref layerBatch, out var filterSettings); var depthTarget = m_NeedsDepth ? depthAttachment : BuiltinRenderTextureType.None; this.RenderNormals(context, renderingData, normalsDrawSettings, filterSettings, depthTarget, cmd, layerBatch.lightStats); } @@ -277,30 +276,25 @@ private int DrawLayerBatches( context.ExecuteCommandBuffer(cmd); cmd.Clear(); - short cameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(); + short cameraSortingLayerBoundsIndex = GetCameraSortingLayerBoundsIndex(m_Renderer2DData); RenderBufferStoreAction copyStoreAction; if (msaaEnabled) copyStoreAction = resolveDuringBatch == i && resolveIsAfterCopy ? RenderBufferStoreAction.Resolve : RenderBufferStoreAction.StoreAndResolve; else copyStoreAction = RenderBufferStoreAction.Store; - // If our camera sorting layer texture bound is inside our batch we need to break up the DrawRenderers into two batches - if (cameraSortingLayerBoundsIndex >= layerBatch.layerRange.lowerBound && cameraSortingLayerBoundsIndex < layerBatch.layerRange.upperBound && m_Renderer2DData.useCameraSortingLayerTexture) - { - filterSettings.sortingLayerRange = new SortingLayerRange(layerBatch.layerRange.lowerBound, cameraSortingLayerBoundsIndex); - Render(context, cmd, ref renderingData, ref filterSettings, drawSettings); - CopyCameraSortingLayerRenderTexture(context, renderingData, copyStoreAction); - filterSettings.sortingLayerRange = new SortingLayerRange((short)(cameraSortingLayerBoundsIndex + 1), layerBatch.layerRange.upperBound); - Render(context, cmd, ref renderingData, ref filterSettings, drawSettings); - } - else - { - filterSettings.sortingLayerRange = new SortingLayerRange(layerBatch.layerRange.lowerBound, layerBatch.layerRange.upperBound); - Render(context, cmd, ref renderingData, ref filterSettings, drawSettings); - if (cameraSortingLayerBoundsIndex == layerBatch.layerRange.upperBound && m_Renderer2DData.useCameraSortingLayerTexture) + LayerUtility.GetFilterSettings(m_Renderer2DData, ref layerBatch, out var filterSettings); + + Render(context, cmd, ref renderingData, ref filterSettings, drawSettings); + + if (m_Renderer2DData.useCameraSortingLayerTexture) + { + if (cameraSortingLayerBoundsIndex >= layerBatch.layerRange.lowerBound && cameraSortingLayerBoundsIndex <= layerBatch.layerRange.upperBound) + { CopyCameraSortingLayerRenderTexture(context, renderingData, copyStoreAction); + } } // Draw light volumes @@ -373,11 +367,11 @@ public override void Execute(ScriptableRenderContext context, ref RenderingData var desc = this.GetBlendStyleRenderTextureDesc(renderingData); - var layerBatches = LayerUtility.CalculateBatches(m_Renderer2DData.lightCullResult, out var batchCount); + var layerBatches = LayerUtility.CalculateBatches(m_Renderer2DData, out var batchCount); var batchesDrawn = 0; for (var i = 0; i < batchCount; i += batchesDrawn) - batchesDrawn = DrawLayerBatches(layerBatches, batchCount, i, cmd, context, ref renderingData, ref filterSettings, ref normalsDrawSettings, ref combinedDrawSettings, ref desc); + batchesDrawn = DrawLayerBatches(layerBatches, batchCount, i, cmd, context, ref renderingData, ref normalsDrawSettings, ref combinedDrawSettings, ref desc); this.DisableAllKeywords(cmd); this.ReleaseRenderTextures(cmd); diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Utility/LayerUtility.cs b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Utility/LayerUtility.cs index a9280ee9df6..247af79a245 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Utility/LayerUtility.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Passes/Utility/LayerUtility.cs @@ -76,13 +76,31 @@ private static bool CanBatchLightsInLayer(int layerIndex1, int layerIndex2, Sort return true; } - private static int FindUpperBoundInBatch(int startLayerIndex, SortingLayer[] sortingLayers, ILight2DCullResult lightCullResult) + private static bool CanBatchCameraSortingLayer(int startLayerIndex, SortingLayer[] sortingLayers, Renderer2DData rendererData) { + if (rendererData.useCameraSortingLayerTexture) + { + var cameraSortingLayerBoundsIndex = Render2DLightingPass.GetCameraSortingLayerBoundsIndex(rendererData); + return sortingLayers[startLayerIndex].value == cameraSortingLayerBoundsIndex; + } + + return false; + } + + private static int FindUpperBoundInBatch(int startLayerIndex, SortingLayer[] sortingLayers, Renderer2DData rendererData) + { + // break layer if camera sorting layer is active + if (CanBatchCameraSortingLayer(startLayerIndex, sortingLayers, rendererData)) + return startLayerIndex; + // start checking at the next layer for (var i = startLayerIndex + 1; i < sortingLayers.Length; i++) { - if (!CanBatchLightsInLayer(startLayerIndex, i, sortingLayers, lightCullResult)) + if (!CanBatchLightsInLayer(startLayerIndex, i, sortingLayers, rendererData.lightCullResult)) return i - 1; + + if (CanBatchCameraSortingLayer(i, sortingLayers, rendererData)) + return i; } return sortingLayers.Length - 1; } @@ -114,7 +132,7 @@ private static void InitializeBatchInfos(SortingLayer[] cachedSortingLayers) } } - public static LayerBatch[] CalculateBatches(ILight2DCullResult lightCullResult, out int batchCount) + public static LayerBatch[] CalculateBatches(Renderer2DData rendererData, out int batchCount) { var cachedSortingLayers = Light2DManager.GetCachedSortingLayer(); InitializeBatchInfos(cachedSortingLayers); @@ -123,11 +141,11 @@ public static LayerBatch[] CalculateBatches(ILight2DCullResult lightCullResult, for (var i = 0; i < cachedSortingLayers.Length;) { var layerToRender = cachedSortingLayers[i].id; - var lightStats = lightCullResult.GetLightStatsByLayer(layerToRender); + var lightStats = rendererData.lightCullResult.GetLightStatsByLayer(layerToRender); ref var layerBatch = ref s_LayerBatches[batchCount++]; - // Find the highest layer that share the same set of lights as this layer. - var upperLayerInBatch = FindUpperBoundInBatch(i, cachedSortingLayers, lightCullResult); + // Find the highest layer that share the same set of lights and shadows as this layer. + var upperLayerInBatch = FindUpperBoundInBatch(i, cachedSortingLayers, rendererData); // Some renderers override their sorting layer value with short.MinValue or short.MaxValue. // When drawing the first sorting layer, we should include the range from short.MinValue to layerValue. @@ -150,5 +168,14 @@ public static LayerBatch[] CalculateBatches(ILight2DCullResult lightCullResult, return s_LayerBatches; } + + public static void GetFilterSettings(Renderer2DData rendererData, ref LayerBatch layerBatch, out FilteringSettings filterSettings) + { + filterSettings = FilteringSettings.defaultValue; + filterSettings.renderQueueRange = RenderQueueRange.all; + filterSettings.layerMask = -1; + filterSettings.renderingLayerMask = 0xFFFFFFFF; + filterSettings.sortingLayerRange = layerBatch.layerRange; + } } } 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 ed6d4842963..c2ceb877d0b 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs +++ b/Packages/com.unity.render-pipelines.universal/Runtime/2D/Renderer2D.cs @@ -73,11 +73,14 @@ public Renderer2D(Renderer2DData data) : base(data) m_LightCullResult = new Light2DCullResult(); m_Renderer2DData.lightCullResult = m_LightCullResult; + + Light2DManager.Initialize(); } protected override void Dispose(bool disposing) { m_PostProcessPasses.Dispose(); + Light2DManager.Dispose(); } public Renderer2DData GetRenderer2DData() diff --git a/Packages/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef b/Packages/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef index ea8506cb533..ec2f26f441d 100644 --- a/Packages/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef +++ b/Packages/com.unity.render-pipelines.universal/Runtime/Unity.RenderPipelines.Universal.Runtime.asmdef @@ -6,7 +6,8 @@ "GUID:ab67fb10353d84448ac887a7367cbda8", "GUID:7dbf32976982c98448af054f2512cb79", "GUID:d8b63aba1907145bea998dd612889d6b", - "GUID:2665a8d13d1b3f18800f46e256720795" + "GUID:2665a8d13d1b3f18800f46e256720795", + "GUID:e870d46803eab3349b48383a7e1b877d" ], "includePlatforms": [], "excludePlatforms": [], From d8dcdc25365059539cbf6301368af4ef1dc942aa Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 27 Feb 2025 06:17:23 +0000 Subject: [PATCH 10/17] [Port] [2021.3] [Port] [2022.3] Graphics docs feedback fixes February 2025 pt2 --- .../Documentation~/Ray-Tracing-Getting-Started.md | 1 + .../Documentation~/Ray-Tracing-Path-Tracing.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) 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 034956902e7..77b5235780e 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 @@ -283,6 +283,7 @@ HDRP ray tracing in Unity has the following limitations: - Ray tracing isn't supported when rendering [Reflection Probes](Reflection-Probe.md). - HDRP doesn't support [orthographic projection](HDRP-Camera.md). If you enable orthographic projection mode, you might experience rendering problems for Transparent Materials, volumetrics and planar reflections. - Ray Traced and Screen Space effects won't appear recursively in [Ray Traced Reflections](Ray-Traced-Reflections.md), [Ray Traced Global Illumination](Ray-Traced-Global-Illumination.md) or [Recursive Ray Tracing](Ray-Tracing-Recursive-Rendering.md). This means, for example, you won't be able to see [Screen Space Global Illumination](Override-Screen-Space-GI.md) in [ray-traced reflection](Ray-Traced-Reflections.md). +- Doesn't support water. ### Unsupported shader graph nodes for ray tracing diff --git a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Path-Tracing.md b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Path-Tracing.md index 30dd780db37..9cd9f740c88 100644 --- a/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Path-Tracing.md +++ b/Packages/com.unity.render-pipelines.high-definition/Documentation~/Ray-Tracing-Path-Tracing.md @@ -183,7 +183,8 @@ HDRP path tracing in Unity 2020.2 has the following limitations: - MSAA. - [Graphics.DrawMesh](https://docs.unity3d.com/ScriptReference/Graphics.DrawMesh.html). - [Streaming Virtual Texturing](https://docs.unity3d.com/Documentation/Manual/svt-streaming-virtual-texturing.html). - + - Vertex animation, for example wind deformation of vegetation. + ### Unsupported shader graph nodes for path tracing When building your custom shaders using shader graph, some nodes are incompatible with ray/path tracing. You need either to avoid using them or provide an alternative behavior using the [ray tracing shader node](SGNode-Raytracing-Quality). Here is the list of the incompatible nodes: From ae0ae24a7069764d09d9a4bb4dcbb3793742ece3 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 27 Feb 2025 06:17:32 +0000 Subject: [PATCH 11/17] [Port] [2021.3] DOCG-6644 Clarify URP shadows shader example --- .../Documentation~/use-built-in-shader-methods-shadows.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/use-built-in-shader-methods-shadows.md b/Packages/com.unity.render-pipelines.universal/Documentation~/use-built-in-shader-methods-shadows.md index 6ca9fe08616..bfde92ab0e1 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/use-built-in-shader-methods-shadows.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/use-built-in-shader-methods-shadows.md @@ -34,9 +34,9 @@ The following methods calculate shadows using shadow maps. To use these methods, ## Example -The following URP shader draws simple shadows onto a surface. +This code example is a simplified example of drawing shadows onto a surface. It might not work correctly with more than one [shadow cascade](../shadow-cascades). -To generate shadows, make sure there are objects in your scene that have a `ShadowCaster` shader pass, for example objects that use the `Universal Render Pipeline/Lit` shader. +To generate shadows, make sure there are objects in your scene that have a `ShadowCaster` shader pass, for example objects that use the `Universal Render Pipeline/Lit` shader. ```hlsl Shader "Custom/SimpleShadows" From 4dbbb8bf45281f4f2dc5d8ca8dcca3c1f0912719 Mon Sep 17 00:00:00 2001 From: Sai Prasad Gogulakonda Date: Mon, 3 Mar 2025 13:18:46 +0000 Subject: [PATCH 12/17] 2021.3: Fixed the generation of new artifact ID of ShaderGraph on every reimport. --- .../Editor/Generation/ShaderGraphVfxAsset.cs | 5 + .../Editor/Importers/ShaderGraphImporter.cs | 1 + .../Editor/Data/SG_Lit_VfxTarget.shadergraph | 658 ++++++++++++++++++ .../Data/SG_Lit_VfxTarget.shadergraph.meta | 10 + .../Tests/Editor/VFXCodeGenerationTest.cs | 29 + 5 files changed, 703 insertions(+) create mode 100644 Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/SG_Lit_VfxTarget.shadergraph create mode 100644 Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/Data/SG_Lit_VfxTarget.shadergraph.meta create mode 100644 Tests/SRPTests/Packages/com.unity.testing.visualeffectgraph/Tests/Editor/VFXCodeGenerationTest.cs diff --git a/Packages/com.unity.shadergraph/Editor/Generation/ShaderGraphVfxAsset.cs b/Packages/com.unity.shadergraph/Editor/Generation/ShaderGraphVfxAsset.cs index 847190982dd..a8622a96454 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/ShaderGraphVfxAsset.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/ShaderGraphVfxAsset.cs @@ -132,6 +132,11 @@ public string outputStructName internal set { m_OutputStructName = value; } } + internal void SetGUID(string guid) + { + m_Data.OverrideObjectId(guid, "SerializedVfxAssetData"); + } + public List properties { get diff --git a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs index 56d1ae7c792..eb2addbdee7 100644 --- a/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs +++ b/Packages/com.unity.shadergraph/Editor/Importers/ShaderGraphImporter.cs @@ -945,6 +945,7 @@ void AddCoordinateSpaceSnippets(InterpolatorType interpolatorType, Func Date: Mon, 3 Mar 2025 13:19:15 +0000 Subject: [PATCH 13/17] [Port] [2021.3] DOCG-5799 Clarify Sample Graphics Buffer and custom types --- .../Documentation~/Operator-SampleBuffer.md | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBuffer.md b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBuffer.md index f840c148fd4..28c6f9e88aa 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBuffer.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/Operator-SampleBuffer.md @@ -1,10 +1,10 @@ -# Sample Buffer +# Sample Graphics Buffer -**Menu Path : Operator > Sampling > Sample Buffer** +**Menu Path : Operator > Sampling > Sample Graphics Buffer** -The Sample Buffer Operator enables you to fetch and sample a structured buffer. A structured buffer is a [GraphicsBuffer](https://docs.unity3d.com/ScriptReference/GraphicsBuffer.html) created using the [Structured](https://docs.unity3d.com/ScriptReference/GraphicsBuffer.Target.Structured.html) target. +The Sample Graphics Buffer Operator enables you to fetch and sample a structured buffer. A structured buffer is a [GraphicsBuffer](https://docs.unity3d.com/ScriptReference/GraphicsBuffer.html) created using the [Structured](https://docs.unity3d.com/ScriptReference/GraphicsBuffer.Target.Structured.html) target. ## Operator settings @@ -17,7 +17,7 @@ The Sample Buffer Operator enables you to fetch and sample a structured buffer. | **Input** | **Type** | **Description** | | ---------- | --------------------------------------- | ------------------------------------------------------------ | | **Input** | [Configurable](#operator-configuration) | The structure type. | -| **Buffer** | GraphicsBuffer | The structured buffer to fetch. You can only connect an exposed property to this input port. | +| **Buffer** | Graphics Buffer [property](Properties.md)| The structured buffer to fetch. You can only connect an exposed property to this input port. | | **Index** | uint | The index of the element to fetch. | | **Output** | **Type** | **Description** | @@ -26,33 +26,35 @@ The Sample Buffer Operator enables you to fetch and sample a structured buffer. ## Operator configuration -To view the Operator's configuration, click the **cog** icon in the Operator's header. +To set the struct type, select the cog icon. The available types are: -### Available types -This Operator supports sampling structured buffers that use blittable types. The list of built-in blittable types is: - - bool - - float* - - int - - uint - - Vector2 - - Vector3 - - Vector4 - - Matrix4x4 +- bool +- float +- int +- uint +- Vector2 +- Vector3 +- Vector4 +- Matrix4x4 -You can also declare custom types. To do this, add the `[VFXType]` attribute to a struct, and use the `VFXTypeAttribute.Usage.GraphicsBuffer` type. For example: +### Add a custom type + +To add a custom type to the list, add the `[VFXType(VFXTypeAttribute.Usage.GraphicsBuffer)]` attribute to a struct. For example, the following script adds a **MyCustomData** type: ```c# using UnityEngine; using UnityEngine.VFX; [VFXType(VFXTypeAttribute.Usage.GraphicsBuffer)] -struct CustomData +struct MyCustomData { - public Vector3 color; - public Vector3 position; + public Vector3 myColor; + public Vector3 myPosition; } ``` +After you set a custom type, open the **s** dropdown to display the properties of the struct and connect them to other Operators and [Contexts](Contexts.md). + ## Limitations The Operator has the following limitations: From a6b5ac6961d6950043dd1a7674dba92a05e3dbc0 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 6 Mar 2025 10:17:27 +0000 Subject: [PATCH 14/17] [Port] [2021.3] Minor feedback fixes in Graphics package docs --- .../Documentation~/Shadows-in-URP.md | 2 +- .../cameras/apply-different-post-proc-to-cameras.md | 2 +- .../Documentation~/GettingStarted.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/Shadows-in-URP.md b/Packages/com.unity.render-pipelines.universal/Documentation~/Shadows-in-URP.md index 553c9625752..449243bca11 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/Shadows-in-URP.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/Shadows-in-URP.md @@ -16,7 +16,7 @@ Universal RP will try to use the best resolution according to the number of shad ## Shadow atlases -Universal RP renders all real-time shadows for a frame using one common shadow map atlas for all punctual light shadows (i.e shadows for Spot Lights and Point Lights), and an other shadow map atlas for Directional Light shadows. +Universal RP renders all real-time shadows for a frame using one common shadow map atlas for all punctual light shadows (i.e shadows for Spot Lights and Point Lights), and another shadow map atlas for Directional Light shadows. Set the size of these atlases in your Unity Project’s [Universal Render Pipeline Asset](universalrp-asset.md). The atlas size determines the maximum resolution of shadows in your Scene. diff --git a/Packages/com.unity.render-pipelines.universal/Documentation~/cameras/apply-different-post-proc-to-cameras.md b/Packages/com.unity.render-pipelines.universal/Documentation~/cameras/apply-different-post-proc-to-cameras.md index 73de81df8db..7831e223eb9 100644 --- a/Packages/com.unity.render-pipelines.universal/Documentation~/cameras/apply-different-post-proc-to-cameras.md +++ b/Packages/com.unity.render-pipelines.universal/Documentation~/cameras/apply-different-post-proc-to-cameras.md @@ -24,7 +24,7 @@ With the scene set up, the following steps show how to create and apply a post-p 3. Select the **Layer** dropdown and choose one of the layers created when you set up the scene. 4. Select the camera you want to apply this effect to. 5. In the Inspector window, go to **Environment** > **Volume Mask** and select the same layer that you chose for the GameObject. -6. Repeat stpes 1-5 for each GameObject and Camera pair that your scene requires. +6. Repeat steps 1-5 for each GameObject and Camera pair that your scene requires. > [!NOTE] > Some effects apply to all cameras in a scene by default. As a result of this, you might need to add the same effect to each volume. This overrides the effects from other volumes on individual cameras with the new values that you set. diff --git a/Packages/com.unity.visualeffectgraph/Documentation~/GettingStarted.md b/Packages/com.unity.visualeffectgraph/Documentation~/GettingStarted.md index f4bec2d49c0..bc80dd93288 100644 --- a/Packages/com.unity.visualeffectgraph/Documentation~/GettingStarted.md +++ b/Packages/com.unity.visualeffectgraph/Documentation~/GettingStarted.md @@ -48,7 +48,7 @@ To do so, you can: When you’ve added the Visual Effect Graph Asset to you Hierarchy, Unity attaches the Asset to a [Visual Effect Component](VisualEffectComponent.md), which references the Asset. ## Editing a Visual Effect Graph -To edit Visual Effect Graph Assets in the [Visual Effect Graph window](VisualEffectGraphWindow.md) : +To edit Visual Effect Graph Assets in the [Visual Effect Graph window](VisualEffectGraphWindow.md): * Open the Visual Effect Graph window (menu: __Window___ > __Visual Effects__) with an empty graph. This prompts you to open a Visual Effect Graph Asset. * Select an existing Visual Effect Graph Asset, and click the __Edit__ button in the Inspector. This opens the Visual Effect Graph window with the graph contained in this Asset. From 0351a45e46053cc7c485fc37f022a8e1323e517d Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Thu, 6 Mar 2025 10:17:28 +0000 Subject: [PATCH 15/17] [Port] [2021.3] [2d] Fix Case UUM-90726 --- .../Editor/2D/ShapeEditor/EditorTool/PathEditorTool.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShapeEditor/EditorTool/PathEditorTool.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShapeEditor/EditorTool/PathEditorTool.cs index d4e1a24d786..9ab3e1d260d 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShapeEditor/EditorTool/PathEditorTool.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShapeEditor/EditorTool/PathEditorTool.cs @@ -380,6 +380,8 @@ void IDuringSceneGuiTool.DuringSceneGui(SceneView sceneView) { if (m_GUIState.eventType == EventType.Layout) m_Controller.ClearClosestPath(); + else if (m_GUIState.eventType == EventType.ValidateCommand) + return; m_RectSelector.OnGUI(); From 90eb487a535458fbeda460d9346879dc1a733aa5 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Tue, 18 Mar 2025 10:43:35 +0000 Subject: [PATCH 16/17] [Port] [2021.3] ShaderGraph: remove duplicate LIGHTMAP_ON and DIRLIGHTMAP_COMBINED variants for builtin-deferred --- .../BuiltIn/Editor/ShaderGraph/Targets/BuiltInLitSubTarget.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Targets/BuiltInLitSubTarget.cs b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Targets/BuiltInLitSubTarget.cs index bcfa8ad4e31..7ecd3eb6e9d 100644 --- a/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Targets/BuiltInLitSubTarget.cs +++ b/Packages/com.unity.shadergraph/Editor/Generation/Targets/BuiltIn/Editor/ShaderGraph/Targets/BuiltInLitSubTarget.cs @@ -576,8 +576,6 @@ static class LitKeywords public static readonly KeywordCollection Deferred = new KeywordCollection { - { CoreKeywordDescriptors.Lightmap }, - { CoreKeywordDescriptors.DirectionalLightmapCombined }, { CoreKeywordDescriptors.MainLightShadows }, { CoreKeywordDescriptors.ShadowsSoft }, { CoreKeywordDescriptors.LightmapShadowMixing }, From f6cd568ea6aaea1c014ccbb09c2e185cf32dafe0 Mon Sep 17 00:00:00 2001 From: Reach Platform Support Date: Tue, 18 Mar 2025 10:43:37 +0000 Subject: [PATCH 17/17] [Port] [2021.3] [UUM-85456] Fix missing fog parameters in sprite subtargets --- .../2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs | 2 ++ .../2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs | 2 ++ .../2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs | 2 ++ .../Editor/ShaderGraph/Targets/UniversalTarget.cs | 1 + 4 files changed, 7 insertions(+) diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs index 90c9c8479db..d4ae768e641 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteCustomLitSubTarget.cs @@ -134,6 +134,7 @@ static class SpriteLitPasses // Conditional State renderStates = CoreRenderStates.Default, pragmas = CorePragmas._2DDefault, + defines = new DefineCollection() { CoreDefines.UseFragmentFog }, keywords = SpriteLitKeywords.Lit, includes = SpriteLitIncludes.Lit, }; @@ -190,6 +191,7 @@ static class SpriteLitPasses // Conditional State renderStates = CoreRenderStates.Default, pragmas = CorePragmas._2DDefault, + defines = new DefineCollection() { CoreDefines.UseFragmentFog }, includes = SpriteLitIncludes.Forward, // Custom Interpolator Support diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs index 9f475730a8e..3a47374e998 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteLitSubTarget.cs @@ -156,6 +156,7 @@ static class SpriteLitPasses // Conditional State renderStates = CoreRenderStates.Default, pragmas = CorePragmas._2DDefault, + defines = new DefineCollection() { CoreDefines.UseFragmentFog }, keywords = SpriteLitKeywords.Lit, includes = SpriteLitIncludes.Lit, @@ -218,6 +219,7 @@ static class SpriteLitPasses // Conditional State renderStates = CoreRenderStates.Default, pragmas = CorePragmas._2DDefault, + defines = new DefineCollection() { CoreDefines.UseFragmentFog }, includes = SpriteLitIncludes.Forward, // Custom Interpolator Support diff --git a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs index 7a7c996443d..342b6123c7c 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/2D/ShaderGraph/Targets/UniversalSpriteUnlitSubTarget.cs @@ -151,6 +151,7 @@ static class SpriteUnlitPasses // Conditional State renderStates = CoreRenderStates.Default, pragmas = CorePragmas._2DDefault, + defines = new DefineCollection() { CoreDefines.UseFragmentFog }, keywords = SpriteUnlitKeywords.Unlit, includes = SpriteUnlitIncludes.Unlit, @@ -182,6 +183,7 @@ static class SpriteUnlitPasses // Conditional State renderStates = CoreRenderStates.Default, pragmas = CorePragmas._2DDefault, + defines = new DefineCollection() { CoreDefines.UseFragmentFog }, keywords = SpriteUnlitKeywords.Unlit, includes = SpriteUnlitIncludes.Unlit, diff --git a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs index 849a37905f8..bb0da61f541 100644 --- a/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs +++ b/Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Targets/UniversalTarget.cs @@ -1320,6 +1320,7 @@ static class CorePragmas { Pragma.Target(ShaderModel.Target20) }, { Pragma.ExcludeRenderers(new[] { Platform.D3D9 }) }, { Pragma.MultiCompileInstancing }, + { Pragma.MultiCompileFog }, { Pragma.Vertex("vert") }, { Pragma.Fragment("frag") }, };